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

@segiddins

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 = [NSDictionary dictionaryWithObject:@"value1" forKey:@"key1"];
    NSDictionary *dictionary = [NSDictionary dictionaryWithObject: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 = [NSArray arrayWithObjects: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 = [NSArray arrayWithObjects:@"item1", @"item2", nil];
    NSArray *recursiveArray2 = [NSArray arrayWithObject:recursiveArray3];
    NSArray *recursiveArray1 = [NSArray arrayWithObject:recursiveArray2];
    NSDictionary *dictionary = [NSDictionary dictionaryWithObject: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