From 22e9bbff609a7a741d0d33794ad715612e9768c1 Mon Sep 17 00:00:00 2001 From: Syo Ikeda Date: Mon, 23 Feb 2015 19:11:23 +0900 Subject: [PATCH 1/2] Introduce Assertions.framework for test target Use the fork for Swift 1.1 support: https://github.com/neilpa/Assertions/tree/swift-1.1 --- .gitmodules | 2 ++ APIKit.xcodeproj/project.pbxproj | 12 ++++++++++ APIKitTests/RequestBodyBuilderTests.swift | 27 ++++++++++++----------- APIKitTests/ResponseBodyParserTests.swift | 27 ++++++++++++----------- Cartfile.private | 1 + Cartfile.resolved | 1 + Carthage/Checkouts/Assertions | 1 + 7 files changed, 45 insertions(+), 26 deletions(-) create mode 100644 Cartfile.private create mode 160000 Carthage/Checkouts/Assertions diff --git a/.gitmodules b/.gitmodules index 1974b0c8..0f56426e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,5 @@ [submodule "Carthage/Checkouts/LlamaKit"] path = Carthage/Checkouts/LlamaKit url = https://github.com/LlamaKit/LlamaKit.git +[submodule "Carthage/Checkouts/Assertions"] + url = https://github.com/neilpa/Assertions.git diff --git a/APIKit.xcodeproj/project.pbxproj b/APIKit.xcodeproj/project.pbxproj index cae5280c..8e828704 100644 --- a/APIKit.xcodeproj/project.pbxproj +++ b/APIKit.xcodeproj/project.pbxproj @@ -38,6 +38,10 @@ 7FEC5A1A1A96FE2600B1D3C0 /* APIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F45FCDD1A94D02C006863BB /* APIKit.framework */; }; 7FEC5A211A96FFD300B1D3C0 /* LlamaKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F45FD1C1A94D1B4006863BB /* LlamaKit.framework */; }; 7FEC5A231A97001D00B1D3C0 /* LlamaKit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7F45FD1C1A94D1B4006863BB /* LlamaKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CDB0CCDB1A9B2ECD00BADAC5 /* Assertions.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CDB0CCDA1A9B2ECD00BADAC5 /* Assertions.framework */; }; + CDB0CCDC1A9B2ED600BADAC5 /* Assertions.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CDB0CCDA1A9B2ECD00BADAC5 /* Assertions.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CDB0CCDE1A9B2F6100BADAC5 /* Assertions.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CDB0CCDD1A9B2F6100BADAC5 /* Assertions.framework */; }; + CDB0CCDF1A9B2F6700BADAC5 /* Assertions.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CDB0CCDD1A9B2F6100BADAC5 /* Assertions.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -71,6 +75,7 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( + CDB0CCDF1A9B2F6700BADAC5 /* Assertions.framework in CopyFiles */, 7F0869A41A9787E3001AD3E1 /* LlamaKit.framework in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; @@ -93,6 +98,7 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( + CDB0CCDC1A9B2ED600BADAC5 /* Assertions.framework in CopyFiles */, 7FEC5A231A97001D00B1D3C0 /* LlamaKit.framework in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; @@ -124,6 +130,8 @@ 7FEC5A141A96FE2600B1D3C0 /* APIKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = APIKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 7FEC5A171A96FE2600B1D3C0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 7FEC5A181A96FE2600B1D3C0 /* ResponseBodyParserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResponseBodyParserTests.swift; sourceTree = ""; }; + CDB0CCDA1A9B2ECD00BADAC5 /* Assertions.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Assertions.framework; sourceTree = ""; }; + CDB0CCDD1A9B2F6100BADAC5 /* Assertions.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Assertions.framework; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -132,6 +140,7 @@ buildActionMask = 2147483647; files = ( 7F08699A1A978790001AD3E1 /* APIKit.framework in Frameworks */, + CDB0CCDE1A9B2F6100BADAC5 /* Assertions.framework in Frameworks */, 7F0869A31A9787E1001AD3E1 /* LlamaKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -166,6 +175,7 @@ buildActionMask = 2147483647; files = ( 7FEC5A1A1A96FE2600B1D3C0 /* APIKit.framework in Frameworks */, + CDB0CCDB1A9B2ECD00BADAC5 /* Assertions.framework in Frameworks */, 7FEC5A211A96FFD300B1D3C0 /* LlamaKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -237,6 +247,7 @@ 7F45FD1B1A94D1B4006863BB /* iOS */ = { isa = PBXGroup; children = ( + CDB0CCDA1A9B2ECD00BADAC5 /* Assertions.framework */, 7F45FD1C1A94D1B4006863BB /* LlamaKit.framework */, ); path = iOS; @@ -245,6 +256,7 @@ 7F45FD1D1A94D1B4006863BB /* Mac */ = { isa = PBXGroup; children = ( + CDB0CCDD1A9B2F6100BADAC5 /* Assertions.framework */, 7F45FD1E1A94D1B4006863BB /* LlamaKit.framework */, ); path = Mac; diff --git a/APIKitTests/RequestBodyBuilderTests.swift b/APIKitTests/RequestBodyBuilderTests.swift index dc17c08a..a7af59e9 100644 --- a/APIKitTests/RequestBodyBuilderTests.swift +++ b/APIKitTests/RequestBodyBuilderTests.swift @@ -1,12 +1,13 @@ import Foundation import APIKit +import Assertions import LlamaKit import XCTest class RequestBodyBuilderTests: XCTestCase { func testJSONHeader() { let builder = RequestBodyBuilder.JSON(writingOptions: nil) - XCTAssertEqual(builder.contentTypeHeader, "application/json") + assertEqual(builder.contentTypeHeader, "application/json") } func testJSONSuccess() { @@ -16,9 +17,9 @@ class RequestBodyBuilderTests: XCTestCase { switch builder.buildBodyFromObject(object) { case .Success(let box): let dictionary = NSJSONSerialization.JSONObjectWithData(box.unbox, options: nil, error: nil) as [String: Int] - XCTAssertEqual(dictionary["foo"]!, 1) - XCTAssertEqual(dictionary["bar"]!, 2) - XCTAssertEqual(dictionary["baz"]!, 3) + assertEqual(dictionary["foo"], 1) + assertEqual(dictionary["bar"], 2) + assertEqual(dictionary["baz"], 3) case .Failure: XCTFail() @@ -35,14 +36,14 @@ class RequestBodyBuilderTests: XCTestCase { case .Failure(let box): let error = box.unbox - XCTAssertEqual(error.domain, APIKitRequestBodyBuidlerErrorDomain) - XCTAssertEqual(error.code, 0) + assertEqual(error.domain, APIKitRequestBodyBuidlerErrorDomain) + assertEqual(error.code, 0) } } func testURLHeader() { let builder = RequestBodyBuilder.URL(encoding: NSUTF8StringEncoding) - XCTAssertEqual(builder.contentTypeHeader, "application/x-www-form-urlencoded") + assertEqual(builder.contentTypeHeader, "application/x-www-form-urlencoded") } func testURLSuccess() { @@ -52,9 +53,9 @@ class RequestBodyBuilderTests: XCTestCase { switch builder.buildBodyFromObject(object) { case .Success(let box): let dictionary = URLEncodedSerialization.objectFromData(box.unbox, encoding: NSUTF8StringEncoding, error: nil) as [String: String] - XCTAssertEqual(dictionary["foo"]!, "1") - XCTAssertEqual(dictionary["bar"]!, "2") - XCTAssertEqual(dictionary["baz"]!, "3") + assertEqual(dictionary["foo"], "1") + assertEqual(dictionary["bar"], "2") + assertEqual(dictionary["baz"], "3") case .Failure: XCTFail() @@ -63,7 +64,7 @@ class RequestBodyBuilderTests: XCTestCase { func testCustomHeader() { let builder = RequestBodyBuilder.Custom(contentTypeHeader: "foo", buildBodyFromObject: { o in success(o as NSData) }) - XCTAssertEqual(builder.contentTypeHeader, "foo") + assertEqual(builder.contentTypeHeader, "foo") } func testCustomSuccess() { @@ -75,7 +76,7 @@ class RequestBodyBuilderTests: XCTestCase { switch builder.buildBodyFromObject(string) { case .Success(let box): - XCTAssertEqual(box.unbox, expectedData) + assertEqual(box.unbox, expectedData) case .Failure: XCTFail() @@ -94,7 +95,7 @@ class RequestBodyBuilderTests: XCTestCase { XCTFail() case .Failure(let box): - XCTAssertEqual(box.unbox, expectedError) + assertEqual(box.unbox, expectedError) } } } diff --git a/APIKitTests/ResponseBodyParserTests.swift b/APIKitTests/ResponseBodyParserTests.swift index 48f43079..52ceccc6 100644 --- a/APIKitTests/ResponseBodyParserTests.swift +++ b/APIKitTests/ResponseBodyParserTests.swift @@ -1,12 +1,13 @@ import Foundation import APIKit +import Assertions import LlamaKit import XCTest class ResponseBodyParserTests: XCTestCase { func testJSONAcceptHeader() { let parser = ResponseBodyParser.JSON(readingOptions: nil) - XCTAssertEqual(parser.acceptHeader, "application/json") + assertEqual(parser.acceptHeader, "application/json") } func testJSONSuccess() { @@ -17,9 +18,9 @@ class ResponseBodyParserTests: XCTestCase { switch parser.parseData(data) { case .Success(let box): let dictionary = box.unbox as [String: Int] - XCTAssertEqual(dictionary["foo"]!, 1) - XCTAssertEqual(dictionary["bar"]!, 2) - XCTAssertEqual(dictionary["baz"]!, 3) + assertEqual(dictionary["foo"], 1) + assertEqual(dictionary["bar"], 2) + assertEqual(dictionary["baz"], 3) case .Failure: XCTFail() @@ -37,14 +38,14 @@ class ResponseBodyParserTests: XCTestCase { case .Failure(let box): let error = box.unbox - XCTAssertEqual(error.domain, NSCocoaErrorDomain) - XCTAssertEqual(error.code, 3840) + assert(error.domain, ==, NSCocoaErrorDomain) + assertEqual(error.code, 3840) } } func testURLAcceptHeader() { let parser = ResponseBodyParser.URL(encoding: NSUTF8StringEncoding) - XCTAssertEqual(parser.acceptHeader, "application/x-www-form-urlencoded") + assertEqual(parser.acceptHeader, "application/x-www-form-urlencoded") } func testURLSuccess() { @@ -55,9 +56,9 @@ class ResponseBodyParserTests: XCTestCase { switch parser.parseData(data) { case .Success(let box): let dictionary = box.unbox as [String: String] - XCTAssertEqual(dictionary["foo"]!, "1") - XCTAssertEqual(dictionary["bar"]!, "2") - XCTAssertEqual(dictionary["baz"]!, "3") + assertEqual(dictionary["foo"], "1") + assertEqual(dictionary["bar"], "2") + assertEqual(dictionary["baz"], "3") case .Failure: XCTFail() @@ -66,7 +67,7 @@ class ResponseBodyParserTests: XCTestCase { func testCustomAcceptHeader() { let parser = ResponseBodyParser.Custom(acceptHeader: "foo", parseData: { d in success(d) }) - XCTAssertEqual(parser.acceptHeader, "foo") + assertEqual(parser.acceptHeader, "foo") } func testCustomSuccess() { @@ -79,7 +80,7 @@ class ResponseBodyParserTests: XCTestCase { switch parser.parseData(data) { case .Success(let box): let dictionary = box.unbox as [String: Int] - XCTAssertEqual(dictionary, expectedDictionary) + assertEqual(dictionary, expectedDictionary) case .Failure: XCTFail() @@ -98,7 +99,7 @@ class ResponseBodyParserTests: XCTestCase { XCTFail() case .Failure(let box): - XCTAssertEqual(box.unbox, expectedError) + assertEqual(box.unbox, expectedError) } } } diff --git a/Cartfile.private b/Cartfile.private new file mode 100644 index 00000000..5d4accd4 --- /dev/null +++ b/Cartfile.private @@ -0,0 +1 @@ +github "neilpa/Assertions" "swift-1.1" diff --git a/Cartfile.resolved b/Cartfile.resolved index a7bacc22..748040fa 100644 --- a/Cartfile.resolved +++ b/Cartfile.resolved @@ -1 +1,2 @@ +github "neilpa/Assertions" "15e61d79e8858b811d2e061a1bf51e19f533f699" github "LlamaKit/LlamaKit" "v0.5.0" diff --git a/Carthage/Checkouts/Assertions b/Carthage/Checkouts/Assertions new file mode 160000 index 00000000..15e61d79 --- /dev/null +++ b/Carthage/Checkouts/Assertions @@ -0,0 +1 @@ +Subproject commit 15e61d79e8858b811d2e061a1bf51e19f533f699 From e3bda33baee76537d36c5ada721a076b1cae8e3b Mon Sep 17 00:00:00 2001 From: Syo Ikeda Date: Mon, 23 Feb 2015 19:22:11 +0900 Subject: [PATCH 2/2] Add .gitignore --- .gitignore | 37 +++++++++++++++++++ .../contents.xcworkspacedata | 7 ++++ 2 files changed, 44 insertions(+) create mode 100644 .gitignore create mode 100644 APIKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..6328f9b5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +### https://raw.github.com/github/gitignore/557c62cd54524fe6f7559cab042d91553bb0755e/Swift.gitignore + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control +# +# Pods/ + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts + +Carthage/Build + + diff --git a/APIKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/APIKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..f5c56d90 --- /dev/null +++ b/APIKit.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + +