@@ -164,9 +164,7 @@ - (void)testDictionaryWithUnserializableKey {
164164
165165- (void )testDictionaryWithDateAsUnixTimestamp {
166166 NSDate *inputDate = [NSDate date ];
167- NSDictionary *inputDictionary = @{
168- @" date" : inputDate
169- };
167+ NSDictionary *inputDictionary = @{ @" date" : inputDate };
170168 NSString *desiredString = [NSString stringWithFormat: @" date=%@ " , @((NSInteger )[inputDate timeIntervalSince1970 ])];
171169
172170 NSString *actualString = [CMDQueryStringSerialization queryStringWithDictionary: inputDictionary];
@@ -219,4 +217,59 @@ - (void)testDateAsISO8601String {
219217 XCTAssertEqualObjects (actualString, desiredString, @" Query parameters are incorrect." );
220218}
221219
220+ - (void )testNSURLQueryDictionary {
221+ NSDictionary *desiredDictionary = @{
222+ @" key_one" : @" value_one" ,
223+ @" key_two" : @" value_two"
224+ };
225+
226+ NSURL *URL = [NSURL URLWithString: @" http://apple.com" ];
227+ URL = [URL cmd_URLWithQueryDictionary: desiredDictionary];
228+
229+ NSDictionary *actualDictionary = URL.cmd_queryDictionary ;
230+ XCTAssertEqualObjects (actualDictionary, desiredDictionary, @" Query parameters are incorrect." );
231+ }
232+
233+ - (void )testNSURLReplaceQueryDictionary {
234+ NSURL *URL = [NSURL URLWithString: @" http://apple.com" ];
235+
236+ NSDictionary *firstDictionary = @{
237+ @" key_one" : @" value_one" ,
238+ @" key_two" : @" value_two"
239+ };
240+ NSDictionary *secondDictionary = @{
241+ @" key_three" : @" value_one" ,
242+ @" key_four" : @" value_two"
243+ };
244+
245+ URL = [URL cmd_URLWithQueryDictionary: firstDictionary];
246+ XCTAssertEqualObjects (URL.cmd_queryDictionary , firstDictionary, @" Query parameters are incorrect." );
247+
248+ URL = [URL cmd_URLWithQueryDictionary: secondDictionary];
249+ XCTAssertEqualObjects (URL.cmd_queryDictionary , secondDictionary, @" Query parameters are incorrect." );
250+ }
251+
252+ - (void )testNSURLAddQueryDictionary {
253+ NSURL *URL = [NSURL URLWithString: @" http://apple.com" ];
254+
255+ NSDictionary *firstDictionary = @{
256+ @" key_one" : @" value_one" ,
257+ @" key_two" : @" value_two"
258+ };
259+ NSDictionary *secondDictionary = @{
260+ @" key_three" : @" value_one" ,
261+ @" key_four" : @" value_two"
262+ };
263+
264+ NSMutableDictionary *mergedDictionary = [[NSMutableDictionary alloc ] init ];
265+ [mergedDictionary addEntriesFromDictionary: firstDictionary];
266+ [mergedDictionary addEntriesFromDictionary: secondDictionary];
267+
268+ URL = [URL cmd_URLByAddingQueryDictionary: firstDictionary];
269+ XCTAssertEqualObjects (URL.cmd_queryDictionary , firstDictionary, @" Query parameters are incorrect." );
270+
271+ URL = [URL cmd_URLByAddingQueryDictionary: secondDictionary];
272+ XCTAssertEqualObjects (URL.cmd_queryDictionary , mergedDictionary, @" Query parameters are incorrect." );
273+ }
274+
222275@end
0 commit comments