Skip to content
This repository was archived by the owner on Aug 16, 2023. It is now read-only.
This repository was archived by the owner on Aug 16, 2023. It is now read-only.

Support for nested collections #9

Description

@segiddins

All three of the following tests dealing with nested collections fail, even under 0.3.0.

NSString *RKURLEncodedStringFromDictionaryWithEncoding(NSDictionary *dictionary, NSStringEncoding encoding)
{
return [CMDQueryStringSerialization queryStringWithDictionary:dictionary];
}
- (void)testShouldEncodeDictionaries
{
NSDictionary *subDictionary = [NSDictionarydictionaryWithObject:@"value1"forKey:@"key1"];
NSDictionary *dictionary = [NSDictionarydictionaryWithObject:subDictionary forKey:@"aDictionary"];
NSString *expected = @"aDictionary[key1]=value1";
NSString *actual = RKURLEncodedStringFromDictionaryWithEncoding(dictionary, NSUTF8StringEncoding);
expect(actual).to.equal(expected);
}
- (void)testShouldEncodeArrayOfDictionaries
{
NSDictionary *dictA = @{@"a": @"x", @"b": @"y"};
NSDictionary *dictB = @{@"a": @"1", @"b": @"2"};
NSArray *array = [NSArrayarrayWithObjects:dictA, dictB, nil];
NSDictionary *dictRoot = @{@"root" : array};
NSString *expected = @"root[][a]=x&root[][b]=y&root[][a]=1&root[][b]=2";
NSString *actual = RKURLEncodedStringFromDictionaryWithEncoding(dictRoot, NSUTF8StringEncoding);
expect(actual).to.equal(expected);
}
- (void)testShouldEncodeRecursiveArrays
{
NSArray *recursiveArray3 = [NSArrayarrayWithObjects:@"item1", @"item2", nil];
NSArray *recursiveArray2 = [NSArrayarrayWithObject:recursiveArray3];
NSArray *recursiveArray1 = [NSArrayarrayWithObject:recursiveArray2];
NSDictionary *dictionary = [NSDictionarydictionaryWithObject:recursiveArray1 forKey:@"recursiveArray"];
NSString *expected = @"recursiveArray[][][]=item1&recursiveArray[][][]=item2";
NSString *actual = RKURLEncodedStringFromDictionaryWithEncoding(dictionary, NSUTF8StringEncoding);
expect(actual).to.equal(expected);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions