From d60fab67a9dcab8e55cd6d381ef6d0b3b5e681c2 Mon Sep 17 00:00:00 2001 From: Kevin Renskers Date: Tue, 18 Dec 2012 23:25:49 +0000 Subject: [PATCH] Testing the prefix behaviour --- Example/Example.xcodeproj/project.pbxproj | 18 ++++-- Example/ExampleTests/ExampleTests.m | 21 ++++--- Example/ExampleTests/NoPrefixTests.h | 13 ++++ Example/ExampleTests/NoPrefixTests.m | 62 +++++++++++++++++++ ...lts+Mine.h => GVUserDefaults+Properties.h} | 4 +- ...lts+Mine.m => GVUserDefaults+Properties.m} | 6 +- README.md | 6 +- 7 files changed, 107 insertions(+), 23 deletions(-) create mode 100644 Example/ExampleTests/NoPrefixTests.h create mode 100644 Example/ExampleTests/NoPrefixTests.m rename Example/{GVUserDefaults+Mine.h => GVUserDefaults+Properties.h} (75%) rename Example/{GVUserDefaults+Mine.m => GVUserDefaults+Properties.m} (66%) diff --git a/Example/Example.xcodeproj/project.pbxproj b/Example/Example.xcodeproj/project.pbxproj index 3f48552..612d885 100644 --- a/Example/Example.xcodeproj/project.pbxproj +++ b/Example/Example.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 0A0AA2A61681314800F83F09 /* NoPrefixTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A0AA2A51681314800F83F09 /* NoPrefixTests.m */; }; 0AD6F3601680DCD400E13802 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AD6F35F1680DCD400E13802 /* UIKit.framework */; }; 0AD6F3621680DCD400E13802 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AD6F3611680DCD400E13802 /* Foundation.framework */; }; 0AD6F3641680DCD400E13802 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AD6F3631680DCD400E13802 /* CoreGraphics.framework */; }; @@ -22,7 +23,7 @@ 0AD6F3B31680DDD000E13802 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 0AD6F3A81680DDD000E13802 /* Default@2x.png */; }; 0AD6F3B51680DDD000E13802 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AD6F3AE1680DDD000E13802 /* main.m */; }; 0AD6F3B91680DE0600E13802 /* GVUserDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AD6F3B81680DE0600E13802 /* GVUserDefaults.m */; }; - 0AD6F3C41680DF3900E13802 /* GVUserDefaults+Mine.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AD6F3C31680DF3800E13802 /* GVUserDefaults+Mine.m */; }; + 0AD6F3C41680DF3900E13802 /* GVUserDefaults+Properties.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AD6F3C31680DF3800E13802 /* GVUserDefaults+Properties.m */; }; 0AD6F3DD168123C900E13802 /* CHANGELOG in Resources */ = {isa = PBXBuildFile; fileRef = 0AD6F3DA168123C800E13802 /* CHANGELOG */; }; 0AD6F3DE168123C900E13802 /* GVUserDefaults.podspec in Resources */ = {isa = PBXBuildFile; fileRef = 0AD6F3DB168123C800E13802 /* GVUserDefaults.podspec */; }; 0AD6F3DF168123C900E13802 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 0AD6F3DC168123C800E13802 /* README.md */; }; @@ -39,6 +40,8 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 0A0AA2A41681314800F83F09 /* NoPrefixTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NoPrefixTests.h; sourceTree = ""; }; + 0A0AA2A51681314800F83F09 /* NoPrefixTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NoPrefixTests.m; sourceTree = ""; }; 0AD6F35B1680DCD400E13802 /* Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 0AD6F35F1680DCD400E13802 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 0AD6F3611680DCD400E13802 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; @@ -60,8 +63,8 @@ 0AD6F3AE1680DDD000E13802 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = SOURCE_ROOT; }; 0AD6F3B71680DE0600E13802 /* GVUserDefaults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GVUserDefaults.h; sourceTree = ""; }; 0AD6F3B81680DE0600E13802 /* GVUserDefaults.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GVUserDefaults.m; sourceTree = ""; }; - 0AD6F3C21680DF3800E13802 /* GVUserDefaults+Mine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "GVUserDefaults+Mine.h"; sourceTree = ""; }; - 0AD6F3C31680DF3800E13802 /* GVUserDefaults+Mine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "GVUserDefaults+Mine.m"; sourceTree = ""; }; + 0AD6F3C21680DF3800E13802 /* GVUserDefaults+Properties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "GVUserDefaults+Properties.h"; sourceTree = ""; }; + 0AD6F3C31680DF3800E13802 /* GVUserDefaults+Properties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "GVUserDefaults+Properties.m"; sourceTree = ""; }; 0AD6F3DA168123C800E13802 /* CHANGELOG */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CHANGELOG; path = ../CHANGELOG; sourceTree = ""; }; 0AD6F3DB168123C800E13802 /* GVUserDefaults.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = GVUserDefaults.podspec; path = ../GVUserDefaults.podspec; sourceTree = ""; }; 0AD6F3DC168123C800E13802 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = README.md; path = ../README.md; sourceTree = ""; }; @@ -128,8 +131,8 @@ 0AD6F3651680DCD400E13802 /* Example */ = { isa = PBXGroup; children = ( - 0AD6F3C21680DF3800E13802 /* GVUserDefaults+Mine.h */, - 0AD6F3C31680DF3800E13802 /* GVUserDefaults+Mine.m */, + 0AD6F3C21680DF3800E13802 /* GVUserDefaults+Properties.h */, + 0AD6F3C31680DF3800E13802 /* GVUserDefaults+Properties.m */, 0AD6F3A41680DDD000E13802 /* AppDelegate.h */, 0AD6F3A51680DDD000E13802 /* AppDelegate.m */, 0AD6F3A61680DDD000E13802 /* Default-568h@2x.png */, @@ -148,6 +151,8 @@ children = ( 0AD6F3891680DCD400E13802 /* ExampleTests.h */, 0AD6F38A1680DCD400E13802 /* ExampleTests.m */, + 0A0AA2A41681314800F83F09 /* NoPrefixTests.h */, + 0A0AA2A51681314800F83F09 /* NoPrefixTests.m */, 0AD6F3841680DCD400E13802 /* Supporting Files */, ); path = ExampleTests; @@ -295,7 +300,7 @@ 0AD6F3B01680DDD000E13802 /* AppDelegate.m in Sources */, 0AD6F3B51680DDD000E13802 /* main.m in Sources */, 0AD6F3B91680DE0600E13802 /* GVUserDefaults.m in Sources */, - 0AD6F3C41680DF3900E13802 /* GVUserDefaults+Mine.m in Sources */, + 0AD6F3C41680DF3900E13802 /* GVUserDefaults+Properties.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -304,6 +309,7 @@ buildActionMask = 2147483647; files = ( 0AD6F38B1680DCD400E13802 /* ExampleTests.m in Sources */, + 0A0AA2A61681314800F83F09 /* NoPrefixTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Example/ExampleTests/ExampleTests.m b/Example/ExampleTests/ExampleTests.m index ddd0222..a54f107 100644 --- a/Example/ExampleTests/ExampleTests.m +++ b/Example/ExampleTests/ExampleTests.m @@ -7,42 +7,45 @@ // #import "ExampleTests.h" -#import "GVUserDefaults+Mine.h" +#import "GVUserDefaults+Properties.h" @implementation ExampleTests - (void)setUp { [super setUp]; - + NSDictionary *defaults = @{ @"NSUSerDefault:userName": @"default", @"NSUSerDefault:userId": @1 }; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"NSUSerDefault:userName"]; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"NSUSerDefault:userId"]; [[NSUserDefaults standardUserDefaults] registerDefaults:defaults]; } - (void)tearDown { - // Tear-down code here. + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"NSUSerDefault:userName"]; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"NSUSerDefault:userId"]; [super tearDown]; } - (void)testDefaults { - STAssertEquals([GVUserDefaults standardUserDefaults].userName, @"default", @"username equals default"); - STAssertEquals([GVUserDefaults standardUserDefaults].userId, @1, @"userId equals 1"); + STAssertEqualObjects([GVUserDefaults standardUserDefaults].userName, @"default", nil); + STAssertEqualObjects([GVUserDefaults standardUserDefaults].userId, @1, nil); } - (void)testSetters { [GVUserDefaults standardUserDefaults].userName = @"changed"; [GVUserDefaults standardUserDefaults].userId = @2; - STAssertEquals([GVUserDefaults standardUserDefaults].userName, @"changed", @"username equals changed"); - STAssertEquals([GVUserDefaults standardUserDefaults].userId, @2, @"userId equals 2"); + STAssertEqualObjects([GVUserDefaults standardUserDefaults].userName, @"changed", nil); + STAssertEqualObjects([GVUserDefaults standardUserDefaults].userId, @2, nil); } - (void)testGetters { - STAssertEquals([GVUserDefaults standardUserDefaults].userName, [[NSUserDefaults standardUserDefaults] objectForKey:@"NSUSerDefault:userName"], @"username equals username"); - STAssertEquals([GVUserDefaults standardUserDefaults].userId, [[NSUserDefaults standardUserDefaults] objectForKey:@"NSUSerDefault:userId"], @"userId equals userId"); + STAssertEqualObjects([GVUserDefaults standardUserDefaults].userName, [[NSUserDefaults standardUserDefaults] objectForKey:@"NSUSerDefault:userName"], nil); + STAssertEqualObjects([GVUserDefaults standardUserDefaults].userId, [[NSUserDefaults standardUserDefaults] objectForKey:@"NSUSerDefault:userId"], nil); } @end diff --git a/Example/ExampleTests/NoPrefixTests.h b/Example/ExampleTests/NoPrefixTests.h new file mode 100644 index 0000000..e2dbc01 --- /dev/null +++ b/Example/ExampleTests/NoPrefixTests.h @@ -0,0 +1,13 @@ +// +// NoPrefixTests.h +// Example +// +// Created by Kevin Renskers on 18-12-12. +// Copyright (c) 2012 Gangverk. All rights reserved. +// + +#import + +@interface NoPrefixTests : SenTestCase + +@end diff --git a/Example/ExampleTests/NoPrefixTests.m b/Example/ExampleTests/NoPrefixTests.m new file mode 100644 index 0000000..818ff03 --- /dev/null +++ b/Example/ExampleTests/NoPrefixTests.m @@ -0,0 +1,62 @@ +// +// NoPrefixTests.m +// Example +// +// Created by Kevin Renskers on 18-12-12. +// Copyright (c) 2012 Gangverk. All rights reserved. +// + +#import "NoPrefixTests.h" +#import "GVUserDefaults.h" + +@interface GVUserDefaults (NoPrefix) +@property NSString *userName; +@property NSNumber *userId; +@end + +@implementation GVUserDefaults (NoPrefix) +@dynamic userName; +@dynamic userId; +@end + + +@implementation NoPrefixTests + +- (void)setUp { + [super setUp]; + + NSDictionary *defaults = @{ + @"userName": @"default", + @"userId": @1 + }; + + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"userName"]; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"userId"]; + [[NSUserDefaults standardUserDefaults] registerDefaults:defaults]; +} + +- (void)tearDown { + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"userName"]; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"userId"]; + [super tearDown]; +} + +- (void)testDefaults { + STAssertEqualObjects([GVUserDefaults standardUserDefaults].userName, @"default", nil); + STAssertEqualObjects([GVUserDefaults standardUserDefaults].userId, @1, nil); +} + +- (void)testSetters { + [GVUserDefaults standardUserDefaults].userName = @"changed"; + [GVUserDefaults standardUserDefaults].userId = @2; + + STAssertEqualObjects([GVUserDefaults standardUserDefaults].userName, @"changed", nil); + STAssertEqualObjects([GVUserDefaults standardUserDefaults].userId, @2, nil); +} + +- (void)testGetters { + STAssertEqualObjects([GVUserDefaults standardUserDefaults].userName, [[NSUserDefaults standardUserDefaults] objectForKey:@"userName"], nil); + STAssertEqualObjects([GVUserDefaults standardUserDefaults].userId, [[NSUserDefaults standardUserDefaults] objectForKey:@"userId"], nil); +} + +@end diff --git a/Example/GVUserDefaults+Mine.h b/Example/GVUserDefaults+Properties.h similarity index 75% rename from Example/GVUserDefaults+Mine.h rename to Example/GVUserDefaults+Properties.h index 33e21f3..edbce51 100644 --- a/Example/GVUserDefaults+Mine.h +++ b/Example/GVUserDefaults+Properties.h @@ -1,5 +1,5 @@ // -// GVUserDefaults+Mine.h +// GVUserDefaults+Properties.h // GVUserDefaults // // Created by Kevin Renskers on 18-12-12. @@ -8,7 +8,7 @@ #import "GVUserDefaults.h" -@interface GVUserDefaults (Mine) +@interface GVUserDefaults (Properties) @property NSString *userName; @property NSNumber *userId; diff --git a/Example/GVUserDefaults+Mine.m b/Example/GVUserDefaults+Properties.m similarity index 66% rename from Example/GVUserDefaults+Mine.m rename to Example/GVUserDefaults+Properties.m index 6f28f9e..604d1a9 100644 --- a/Example/GVUserDefaults+Mine.m +++ b/Example/GVUserDefaults+Properties.m @@ -1,14 +1,14 @@ // -// GVUserDefaults+Mine.m +// GVUserDefaults+Properties.m // GVUserDefaults // // Created by Kevin Renskers on 18-12-12. // Copyright (c) 2012 Gangverk. All rights reserved. // -#import "GVUserDefaults+Mine.h" +#import "GVUserDefaults+Properties.h" -@implementation GVUserDefaults (Mine) +@implementation GVUserDefaults (Properties) - (NSString *)prefix { return @"NSUSerDefault:"; diff --git a/README.md b/README.md index a9be3a5..005166c 100644 --- a/README.md +++ b/README.md @@ -6,18 +6,18 @@ Tired of writing all that code to get and set defaults in NSUserDefaults? Want t Create a category on `GVUserDefaults`, add some properties in the .h file and make them `@dynamic` in the .m file. // .h - @interface GVUserDefaults (Mine) + @interface GVUserDefaults (Properties) @property NSString *userName; @property NSNumber *userId; @end // .m - @implementation GVUserDefaults (Mine) + @implementation GVUserDefaults (Properties) @dynamic userName; @dynamic userId; @end -Now, instead of using `[[NSUserDefaults standardUserDefaults] objectForKey:@"NSUSerDefault:userName"]`, you can simply use `[GVUserDefaults standardUserDefaults].userName`. +Now, instead of using `[[NSUserDefaults standardUserDefaults] objectForKey:@"userName"]`, you can simply use `[GVUserDefaults standardUserDefaults].userName`. You can even save defaults by setting the property: