Skip to content

Commit 1ab4295

Browse files
committed
[Test] Add TypeInferenceTests.
1 parent 1ed0169 commit 1ab4295

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

SwiftTask.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
4822F0E019D00B2300F5F572 /* RetainCycleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48511C5A19C17563002FE03C /* RetainCycleTests.swift */; };
2222
4822F0E319D00B3100F5F572 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F0E282319C1DEA0005EF467 /* Async.swift */; };
2323
48511C5B19C17563002FE03C /* RetainCycleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48511C5A19C17563002FE03C /* RetainCycleTests.swift */; };
24+
485C31F11A1D619A00040DA3 /* TypeInferenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 485C31F01A1D619A00040DA3 /* TypeInferenceTests.swift */; };
25+
485C31F21A1D619A00040DA3 /* TypeInferenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 485C31F01A1D619A00040DA3 /* TypeInferenceTests.swift */; };
2426
48797D6619B42CEF0085D80F /* SwiftState.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FA4634319A8D70A00DD8729 /* SwiftState.framework */; };
2527
48797D6719B42CF30085D80F /* SwiftState.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1FA4634319A8D70A00DD8729 /* SwiftState.framework */; };
2628
48CD5A3C19AEEBDF0042B9F1 /* SwiftTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F46DEFA199EDF8100F97868 /* SwiftTask.swift */; };
@@ -74,6 +76,7 @@
7476
1FA4633019A8D70A00DD8729 /* SwiftState.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = SwiftState.xcodeproj; sourceTree = "<group>"; };
7577
4822F0D019D00ABF00F5F572 /* SwiftTask-iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "SwiftTask-iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
7678
48511C5A19C17563002FE03C /* RetainCycleTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RetainCycleTests.swift; sourceTree = "<group>"; };
79+
485C31F01A1D619A00040DA3 /* TypeInferenceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TypeInferenceTests.swift; sourceTree = "<group>"; };
7780
48CD5A0C19AEE3570042B9F1 /* SwiftTask.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftTask.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7881
/* End PBXFileReference section */
7982

@@ -167,6 +170,7 @@
167170
1F20250119ADA8FD00DE0495 /* BasicTests.swift */,
168171
1F46DEE3199EDF1000F97868 /* SwiftTaskTests.swift */,
169172
48511C5A19C17563002FE03C /* RetainCycleTests.swift */,
173+
485C31F01A1D619A00040DA3 /* TypeInferenceTests.swift */,
170174
1F5FA35619A374E600975FB9 /* AlamofireTests.swift */,
171175
1F46DEE1199EDF1000F97868 /* Supporting Files */,
172176
);
@@ -446,6 +450,7 @@
446450
1F20250219ADA8FD00DE0495 /* BasicTests.swift in Sources */,
447451
1F0E284019C1DEA0005EF467 /* Async.swift in Sources */,
448452
1F6A8CA319A4E4F200369A5D /* SwiftTaskTests.swift in Sources */,
453+
485C31F11A1D619A00040DA3 /* TypeInferenceTests.swift in Sources */,
449454
48511C5B19C17563002FE03C /* RetainCycleTests.swift in Sources */,
450455
1F46DEFD199EE2C200F97868 /* _TestCase.swift in Sources */,
451456
);
@@ -458,6 +463,7 @@
458463
4822F0DE19D00B2300F5F572 /* SwiftTaskTests.swift in Sources */,
459464
4822F0DD19D00B2300F5F572 /* BasicTests.swift in Sources */,
460465
4822F0E319D00B3100F5F572 /* Async.swift in Sources */,
466+
485C31F21A1D619A00040DA3 /* TypeInferenceTests.swift in Sources */,
461467
4822F0DC19D00B2300F5F572 /* _TestCase.swift in Sources */,
462468
4822F0E019D00B2300F5F572 /* RetainCycleTests.swift in Sources */,
463469
);
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
//
2+
// TypeInferenceTests.swift
3+
// SwiftTask
4+
//
5+
// Created by Yasuhiro Inami on 2014/11/20.
6+
// Copyright (c) 2014年 Yasuhiro Inami. All rights reserved.
7+
//
8+
9+
import SwiftTask
10+
import XCTest
11+
12+
class TypeInferenceTests: _TestCase
13+
{
14+
func testTypeInference()
15+
{
16+
Task<Float, String, ErrorString> { progress, fulfill, reject, configure in
17+
fulfill("OK")
18+
}.progress { oldPrgoress, newProgress in
19+
// do nothing
20+
}.success { value -> [String] in // NOTE: although explicitly adding closure-returning type is required, closure-argument type can be omitted
21+
return ["Looks", "good", "to", "me"]
22+
}.failure { errorInfo -> [String] in
23+
return ["Looks", "bad"] // recover by returning value as [String] to fulfill
24+
}.failure { error, isCancelled -> [String] in // NOTE: errorInfo = (error, isCancelled)
25+
XCTFail("Because of preceding failure-recovering, this failure should never be performed (just added for type-inference test)")
26+
return ["You", "shall", "not", "pass"]
27+
}.then { value, errorInfo -> String in
28+
return join(" ", value!)
29+
}.then { value, errorInfo -> Void in
30+
XCTAssertEqual(value!, "Looks good to me")
31+
return
32+
}
33+
34+
// NOTE: you can't write like this
35+
// .then { value, (error, isCancelled) -> Void in
36+
//
37+
// }
38+
}
39+
}

0 commit comments

Comments
 (0)