From 5c5a0bb4f1dbdfa405015cbf92e2eaad8ec3d60e Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Sat, 5 Sep 2020 21:01:23 -0700 Subject: [PATCH] Fixes typing in Language initializer. Fixes default initializer of Language model. Adds tests for Language model. --- iOS/MonsterCards.xcodeproj/project.pbxproj | 4 ++ iOS/MonsterCards/Models/Language.h | 2 +- iOS/MonsterCards/Models/Language.m | 11 +++- iOS/MonsterCardsTests/Models/LanguageTests.m | 56 ++++++++++++++++++++ 4 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 iOS/MonsterCardsTests/Models/LanguageTests.m diff --git a/iOS/MonsterCards.xcodeproj/project.pbxproj b/iOS/MonsterCards.xcodeproj/project.pbxproj index 2d07625..78662b3 100644 --- a/iOS/MonsterCards.xcodeproj/project.pbxproj +++ b/iOS/MonsterCards.xcodeproj/project.pbxproj @@ -32,6 +32,7 @@ E2FD91E425047C4400D5E935 /* AbilityTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2FD91E325047C4400D5E935 /* AbilityTests.m */; }; E2FD91E6250481F300D5E935 /* ActionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2FD91E5250481F300D5E935 /* ActionTests.m */; }; E2FD91E82504832A00D5E935 /* DamageTypeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2FD91E72504832A00D5E935 /* DamageTypeTests.m */; }; + E2FD91EA250493C000D5E935 /* LanguageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E2FD91E9250493C000D5E935 /* LanguageTests.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -98,6 +99,7 @@ E2FD91E325047C4400D5E935 /* AbilityTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AbilityTests.m; sourceTree = ""; }; E2FD91E5250481F300D5E935 /* ActionTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ActionTests.m; sourceTree = ""; }; E2FD91E72504832A00D5E935 /* DamageTypeTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DamageTypeTests.m; sourceTree = ""; }; + E2FD91E9250493C000D5E935 /* LanguageTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LanguageTests.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -237,6 +239,7 @@ E2FD91E325047C4400D5E935 /* AbilityTests.m */, E2FD91E5250481F300D5E935 /* ActionTests.m */, E2FD91E72504832A00D5E935 /* DamageTypeTests.m */, + E2FD91E9250493C000D5E935 /* LanguageTests.m */, ); path = Models; sourceTree = ""; @@ -395,6 +398,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + E2FD91EA250493C000D5E935 /* LanguageTests.m in Sources */, E2FD91E82504832A00D5E935 /* DamageTypeTests.m in Sources */, E2FD91E6250481F300D5E935 /* ActionTests.m in Sources */, E2FD91E425047C4400D5E935 /* AbilityTests.m in Sources */, diff --git a/iOS/MonsterCards/Models/Language.h b/iOS/MonsterCards/Models/Language.h index 612b1e8..2b5c5f4 100644 --- a/iOS/MonsterCards/Models/Language.h +++ b/iOS/MonsterCards/Models/Language.h @@ -15,7 +15,7 @@ NS_ASSUME_NONNULL_BEGIN @property NSString* name; @property BOOL speaks; --(id)initWithName: (NSString*)name andSpeaks: (NSString*)canSpeak; +-(id)initWithName: (NSString*)name andSpeaks: (BOOL)canSpeak; @end diff --git a/iOS/MonsterCards/Models/Language.m b/iOS/MonsterCards/Models/Language.m index 7bb840f..a903b99 100644 --- a/iOS/MonsterCards/Models/Language.m +++ b/iOS/MonsterCards/Models/Language.m @@ -10,7 +10,16 @@ @implementation Language --(id)initWithName: (NSString*)name andSpeaks: (NSString*)canSpeak { +-(id)init { + self = [super init]; + + self.name = @""; + self.speaks = YES; + + return self; +} + +-(id)initWithName: (NSString*)name andSpeaks: (BOOL)canSpeak { self = [super init]; self.name = name; diff --git a/iOS/MonsterCardsTests/Models/LanguageTests.m b/iOS/MonsterCardsTests/Models/LanguageTests.m new file mode 100644 index 0000000..bd021f3 --- /dev/null +++ b/iOS/MonsterCardsTests/Models/LanguageTests.m @@ -0,0 +1,56 @@ +// +// Language.m +// MonsterCardsTests +// +// Created by Tom Hicks on 9/5/20. +// Copyright © 2020 Tom Hicks. All rights reserved. +// + +#import +#import "Language.h" + +@interface LanguageTests : XCTestCase + +@end + +@implementation LanguageTests { + Language *_language; + NSString *_name; + BOOL _canSpeak; +} + +- (void)setUp { + _language = [[Language alloc] init]; + _name = @"English"; + _canSpeak = YES; +} + +- (void)tearDown { + // Put teardown code here. This method is called after the invocation of each test method in the class. +} + +- (void)testDefaultInitializer { + XCTAssertNotNil(_language); + XCTAssertEqualObjects(@"", _language.name); + XCTAssertEqual(YES, _language.speaks); +} + +- (void)testInitWithNameAndSpeaks { + _language = [[Language alloc] initWithName:_name andSpeaks:_canSpeak]; + + XCTAssertNotNil(_language); + XCTAssertEqualObjects(_name, _language.name); + XCTAssertEqual(_canSpeak, _language.speaks); +} + +- (void)testNameGetterAndSetter { + _language.name = _name; + XCTAssertEqualObjects(_name, _language.name); +} + +- (void)testSpeaksGetterAndSetter { + _language.speaks = NO; + XCTAssertEqual(NO, _language.speaks); +} + +@end