blob: 72e743ad1817de99e724a8a1e8bae1c8600fc56f [file] [log] [blame] [edit]
//
// NSStringRACKeyPathUtilitiesSpec.m
// ReactiveCocoa
//
// Created by Uri Baghin on 05/05/2013.
// Copyright (c) 2013 GitHub, Inc. All rights reserved.
//
#import "NSString+RACKeyPathUtilities.h"
SpecBegin(NSStringRACKeyPathUtilities)
describe(@"-keyPathComponents", ^{
it(@"should return components in the key path", ^{
expect(@"self.test.key.path".rac_keyPathComponents).to.equal((@[@"self", @"test", @"key", @"path"]));
});
it(@"should return nil if given an empty string", ^{
expect(@"".rac_keyPathComponents).to.beNil();
});
});
describe(@"-keyPathByDeletingLastKeyPathComponent", ^{
it(@"should return the parent key path", ^{
expect(@"grandparent.parent.child".rac_keyPathByDeletingLastKeyPathComponent).to.equal(@"grandparent.parent");
});
it(@"should return nil if given an empty string", ^{
expect(@"".rac_keyPathByDeletingLastKeyPathComponent).to.beNil();
});
it(@"should return nil if given a key path with only one component", ^{
expect(@"self".rac_keyPathByDeletingLastKeyPathComponent).to.beNil();
});
});
describe(@"-keyPathByDeletingFirstKeyPathComponent", ^{
it(@"should return the remaining key path", ^{
expect(@"first.second.third".rac_keyPathByDeletingFirstKeyPathComponent).to.equal(@"second.third");
});
it(@"should return nil if given an empty string", ^{
expect(@"".rac_keyPathByDeletingFirstKeyPathComponent).to.beNil();
});
it(@"should return nil if given a key path with only one component", ^{
expect(@"self".rac_keyPathByDeletingFirstKeyPathComponent).to.beNil();
});
});
SpecEnd