22using System . Collections ;
33using System . Collections . Generic ;
44using System . IO ;
5- using System . Linq ;
65using System . Text ;
6+ using System . Threading ;
77using System . Threading . Tasks ;
88
99using Aliencube . AzureFunctions . Extensions . Common . Tests . Models ;
@@ -48,7 +48,7 @@ public void Given_InvalidType_When_To_Invoked_Then_It_Should_Throw_Exception(Sou
4848 }
4949
5050 [ DataTestMethod ]
51- [ DataRow ( "key1 " , "value1 " ) ]
51+ [ DataRow ( "x-secret-key " , "hello-world " ) ]
5252 public async Task Given_Header_When_To_Invoked_Then_It_Should_Return_Result ( string key , string value )
5353 {
5454 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
5757 var req = new Mock < HttpRequest > ( ) ;
5858 req . SetupGet ( p => p . Headers ) . Returns ( headers ) ;
5959
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 ) ;
6161
6262 result . Should ( ) . NotBeNull ( ) ;
63- result . Should ( ) . HaveCount ( store . Count ) ;
64- result . Should ( ) . ContainKey ( store . First ( ) . Key ) ;
63+ result . SecretKey . Should ( ) . Be ( value ) ;
6564 }
6665
6766 [ DataTestMethod ]
68- [ DataRow ( "key1 " , "value1 " ) ]
67+ [ DataRow ( "key " , "value " ) ]
6968 public async Task Given_Query_When_To_Invoked_Then_It_Should_Return_Result ( string key , string value )
7069 {
7170 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
7473 var req = new Mock < HttpRequest > ( ) ;
7574 req . SetupGet ( p => p . Query ) . Returns ( queries ) ;
7675
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 ) ;
7877
7978 result . Should ( ) . NotBeNull ( ) ;
80- result . Should ( ) . HaveCount ( store . Count ) ;
81- result . Should ( ) . ContainKey ( store . First ( ) . Key ) ;
79+ result . Key . Should ( ) . Be ( value ) ;
8280 }
8381
8482 [ DataTestMethod ]
@@ -101,5 +99,46 @@ public async Task Given_Payload_When_To_Invoked_Then_It_Should_Return_Result(str
10199
102100 await stream . DisposeAsync ( ) . ConfigureAwait ( false ) ;
103101 }
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+ }
104143 }
105144}
0 commit comments