2
2
using System . Collections ;
3
3
using System . Collections . Generic ;
4
4
using System . IO ;
5
- using System . Linq ;
6
5
using System . Text ;
6
+ using System . Threading ;
7
7
using System . Threading . Tasks ;
8
8
9
9
using Aliencube . AzureFunctions . Extensions . Common . Tests . Models ;
@@ -48,7 +48,7 @@ public void Given_InvalidType_When_To_Invoked_Then_It_Should_Throw_Exception(Sou
48
48
}
49
49
50
50
[ DataTestMethod ]
51
- [ DataRow ( "key1 " , "value1 " ) ]
51
+ [ DataRow ( "x-secret-key " , "hello-world " ) ]
52
52
public async Task Given_Header_When_To_Invoked_Then_It_Should_Return_Result ( string key , string value )
53
53
{
54
54
var store = new Dictionary < string , StringValues > ( ) { { key , value } } ;
@@ -57,15 +57,14 @@ public async Task Given_Header_When_To_Invoked_Then_It_Should_Return_Result(stri
57
57
var req = new Mock < HttpRequest > ( ) ;
58
58
req . SetupGet ( p => p . Headers ) . Returns ( headers ) ;
59
59
60
- var result = await HttpRequestExtensions . To < IHeaderDictionary > ( req . Object , SourceFrom . Header ) . ConfigureAwait ( false ) ;
60
+ var result = await HttpRequestExtensions . To < FakeRequestHeader > ( req . Object , SourceFrom . Header ) . ConfigureAwait ( false ) ;
61
61
62
62
result . Should ( ) . NotBeNull ( ) ;
63
- result . Should ( ) . HaveCount ( store . Count ) ;
64
- result . Should ( ) . ContainKey ( store . First ( ) . Key ) ;
63
+ result . SecretKey . Should ( ) . Be ( value ) ;
65
64
}
66
65
67
66
[ DataTestMethod ]
68
- [ DataRow ( "key1 " , "value1 " ) ]
67
+ [ DataRow ( "key " , "value " ) ]
69
68
public async Task Given_Query_When_To_Invoked_Then_It_Should_Return_Result ( string key , string value )
70
69
{
71
70
var store = new Dictionary < string , StringValues > ( ) { { key , value } } ;
@@ -74,11 +73,10 @@ public async Task Given_Query_When_To_Invoked_Then_It_Should_Return_Result(strin
74
73
var req = new Mock < HttpRequest > ( ) ;
75
74
req . SetupGet ( p => p . Query ) . Returns ( queries ) ;
76
75
77
- var result = await HttpRequestExtensions . To < IQueryCollection > ( req . Object , SourceFrom . Query ) . ConfigureAwait ( false ) ;
76
+ var result = await HttpRequestExtensions . To < FakeRequestQuery > ( req . Object , SourceFrom . Query ) . ConfigureAwait ( false ) ;
78
77
79
78
result . Should ( ) . NotBeNull ( ) ;
80
- result . Should ( ) . HaveCount ( store . Count ) ;
81
- result . Should ( ) . ContainKey ( store . First ( ) . Key ) ;
79
+ result . Key . Should ( ) . Be ( value ) ;
82
80
}
83
81
84
82
[ DataTestMethod ]
@@ -101,5 +99,46 @@ public async Task Given_Payload_When_To_Invoked_Then_It_Should_Return_Result(str
101
99
102
100
await stream . DisposeAsync ( ) . ConfigureAwait ( false ) ;
103
101
}
102
+
103
+ [ TestMethod ]
104
+ public async Task Given_Null_Payload_When_ToMultipartFormDataContent_Invoked_Then_It_Should_Return_Null ( )
105
+ {
106
+ var files = new FormFileCollection ( ) ;
107
+
108
+ var form = new Mock < IFormCollection > ( ) ;
109
+ form . SetupGet ( p => p . Files ) . Returns ( files ) ;
110
+
111
+ var req = new Mock < HttpRequest > ( ) ;
112
+ req . SetupGet ( p => p . Form ) . Returns ( form . Object ) ;
113
+
114
+ var result = await HttpRequestExtensions . ToMultipartFormDataContent ( req . Object ) . ConfigureAwait ( false ) ;
115
+
116
+ result . Should ( ) . BeNull ( ) ;
117
+ }
118
+
119
+ [ DataTestMethod ]
120
+ [ DataRow ( "hello" , "world.jpg" ) ]
121
+ public async Task Given_Payload_When_ToMultipartFormDataContent_Invoked_Then_It_Should_Return_Result ( string name , string filename )
122
+ {
123
+ var file = new Mock < IFormFile > ( ) ;
124
+ file . SetupGet ( p => p . Name ) . Returns ( name ) ;
125
+ file . SetupGet ( p => p . FileName ) . Returns ( filename ) ;
126
+ file . Setup ( p => p . CopyToAsync ( It . IsAny < Stream > ( ) , It . IsAny < CancellationToken > ( ) ) ) . Returns ( Task . CompletedTask ) ;
127
+
128
+ var files = new FormFileCollection
129
+ {
130
+ file . Object
131
+ } ;
132
+
133
+ var form = new Mock < IFormCollection > ( ) ;
134
+ form . SetupGet ( p => p . Files ) . Returns ( files ) ;
135
+
136
+ var req = new Mock < HttpRequest > ( ) ;
137
+ req . SetupGet ( p => p . Form ) . Returns ( form . Object ) ;
138
+
139
+ var result = await HttpRequestExtensions . ToMultipartFormDataContent ( req . Object ) . ConfigureAwait ( false ) ;
140
+
141
+ result . Should ( ) . NotBeNull ( ) ;
142
+ }
104
143
}
105
144
}
0 commit comments