Skip to content
This repository was archived by the owner on Sep 30, 2024. It is now read-only.

Commit de12ecf

Browse files
authored
Merge pull request #14 from GoodRequest/fix/GRResult
fix: GRResult isFailure condition
2 parents aa8f2fd + 726e803 commit de12ecf

5 files changed

Lines changed: 80 additions & 5 deletions

File tree

Sources/GoodStructs/Either&Result.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ public enum GRResult<V, E> {
191191

192192
public var isFailure: Bool {
193193
switch self {
194-
case .success:
194+
case .failure:
195195
return true
196196

197197
default:

Tests/GoodCompatibleTests/BaseTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import GRCompatible
44
final class BaseTests: XCTestCase {
55

66
func testBaseType() {
7-
assert("Hello".gr.base != nil)
7+
XCTAssert("Hello".gr.base != nil)
88
}
99

1010
}

Tests/GoodRequestManagerTests/GRSessionTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ final class GRSessionTests: XCTestCase {
4545

4646
func testGRSession() {
4747
let session = GRSession<Endpoint, Base>(configuration: .default, baseURL: .base)
48-
assert(true)
48+
XCTAssert(true)
4949
}
5050

5151
}

Tests/GoodStructsTests/EitherTests.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ final class EitherTests: XCTestCase {
55

66
func testEither() {
77
let value = Either<Int,String>.left(5)
8-
assert(try! value.unwrapLeft() == 5)
8+
XCTAssert(try! value.unwrapLeft() == 5)
99
let value2 = Either<Int,String>.right("Hello")
10-
assert(try! value2.unwrap() == "Hello")
10+
XCTAssert(try! value2.unwrap() == "Hello")
1111
}
1212

1313
static var allTests = [
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
//
2+
// GRResultTests.swift
3+
//
4+
//
5+
// Created by Dominik Pethö on 12/8/21.
6+
//
7+
import XCTest
8+
import GoodStructs
9+
10+
final class GRResultTests: XCTestCase {
11+
12+
enum TestError: Error, Equatable {
13+
14+
case invalid
15+
case unknown
16+
17+
}
18+
19+
let grSuccessResult = GRResult<Int, TestError>.success(10)
20+
let grFailureResult = GRResult<Int, TestError>.failure(.invalid)
21+
let grLoadingResult = GRResult<Int, TestError>.loading
22+
23+
func testUnwrapSuccessValueFromSuccessResult() {
24+
let value = try? grSuccessResult.unwrapSuccess()
25+
XCTAssert(value == 10)
26+
}
27+
28+
func testUnwrapSuccessValueFromFailureResult() {
29+
let value = try? grFailureResult.unwrapSuccess()
30+
XCTAssert(value == nil)
31+
}
32+
33+
func testUnwrapFailureValueFromSuccessResult() {
34+
let value = try? grSuccessResult.unwrapFailure()
35+
XCTAssert(value == nil)
36+
}
37+
38+
func testUnwrapFailureValueFromFailureResult() {
39+
let value = try? grFailureResult.unwrapFailure()
40+
XCTAssert(value == .invalid)
41+
}
42+
43+
func testIsSuccessConditionsForAllTypeOfResults() {
44+
XCTAssert(grSuccessResult.isSuccess && !grFailureResult.isSuccess && !grLoadingResult.isSuccess)
45+
}
46+
47+
func testIsFailureConditionsForAllTypeOfResults() {
48+
XCTAssert(!grSuccessResult.isFailure && grFailureResult.isFailure && !grLoadingResult.isFailure)
49+
}
50+
51+
func testIsLoadingConditionsForAllTypeOfResults() {
52+
XCTAssert(!grSuccessResult.isLoading && !grFailureResult.isLoading && grLoadingResult.isLoading)
53+
}
54+
55+
func testMapFunctionForSuccessType() {
56+
let value = try? grSuccessResult.map { $0 * 2 }.unwrapSuccess()
57+
XCTAssert(value == 20)
58+
}
59+
60+
func testMapFunctionForFailureType() {
61+
let value = try? grFailureResult.map { $0 * 2 }.unwrapSuccess()
62+
XCTAssert(value == nil)
63+
}
64+
65+
func testMapErrorFunctionForSuccessType() {
66+
let error = try? grSuccessResult.mapError { _ in TestError.unknown }.unwrapFailure()
67+
XCTAssert(error == nil)
68+
}
69+
70+
func testMapErrorFunctionForFailureType() {
71+
let error = try? grFailureResult.mapError { _ in TestError.unknown }.unwrapFailure()
72+
XCTAssert(error == .unknown)
73+
}
74+
75+
}

0 commit comments

Comments
 (0)