Mercurial > public > simoleon
annotate SimoleonTests/SimoleonTests.swift @ 166:e4cbb1eea394
Implement FavoritesView
author | Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com> |
---|---|
date | Sat, 11 Sep 2021 16:30:32 +0200 |
parents | 3913aff613e8 |
children | ad8c6567539d |
rev | line source |
---|---|
0
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
1 // |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
2 // SimoleonTests.swift |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
3 // SimoleonTests |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
4 // |
157
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
5 // Created by Dennis Concepción Martín on 27/8/21. |
0
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
6 // |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
7 |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
8 import XCTest |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
9 @testable import Simoleon |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
10 |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
11 class SimoleonTests: XCTestCase { |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
12 |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
13 override func setUpWithError() throws { |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
14 // Put setup code here. This method is called before the invocation of each test method in the class. |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
15 } |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
16 |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
17 override func tearDownWithError() throws { |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
18 // Put teardown code here. This method is called after the invocation of each test method in the class. |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
19 } |
151
bdedd0cc6cd1
Add test flag existence
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
120
diff
changeset
|
20 |
157
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
21 func testGetAllCurrencies() throws { |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
22 // Create test cases |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
23 let testCases = [1: ["USD/GBP", "EUR/AED"], 2: ["USD/GBP", "USD/EUR"]] |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
24 let expectedResults = [1: ["USD", "EUR"], 2: ["USD"]] |
151
bdedd0cc6cd1
Add test flag existence
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
120
diff
changeset
|
25 |
157
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
26 // Test |
161
3913aff613e8
Fix bug that didn't request API on symbol change
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
160
diff
changeset
|
27 let currencySelector = CurrencySelector(currencyConversion: CurrencyConversion()) |
157
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
28 for testCaseNumber in testCases.keys { |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
29 print("Testing case: \(testCaseNumber)") |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
30 let mockData = testCases[testCaseNumber]! |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
31 let allCurrencies = currencySelector.get(currencyType: .all, from: mockData) |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
32 |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
33 // Assert |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
34 XCTAssertEqual(allCurrencies, expectedResults[testCaseNumber]) |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
35 } |
151
bdedd0cc6cd1
Add test flag existence
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
120
diff
changeset
|
36 } |
bdedd0cc6cd1
Add test flag existence
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
120
diff
changeset
|
37 |
157
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
38 func testGetCompatibleCurrencies() throws { |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
39 // Create test cases |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
40 let testCases = [1: ["USD/GBP", "EUR/AED"], 2: ["USD/GBP", "USD/EUR"], 3: ["EUR/AED"]] |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
41 let expectedResults = [1: ["GBP"], 2: ["GBP", "EUR"], 3: []] |
151
bdedd0cc6cd1
Add test flag existence
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
120
diff
changeset
|
42 |
157
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
43 // Test |
161
3913aff613e8
Fix bug that didn't request API on symbol change
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
160
diff
changeset
|
44 let currencySelector = CurrencySelector(currencyConversion: CurrencyConversion()) |
157
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
45 for testCaseNumber in testCases.keys { |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
46 print("Testing case: \(testCaseNumber)") |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
47 let mockData = testCases[testCaseNumber]! |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
48 let compatibleCurrencies = |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
49 currencySelector.get( |
161
3913aff613e8
Fix bug that didn't request API on symbol change
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
160
diff
changeset
|
50 currencyType: .compatible(with: currencySelector.currencyConversion.baseSymbol), from: mockData |
157
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
51 ) |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
52 |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
53 // Assert |
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
54 XCTAssertEqual(compatibleCurrencies, expectedResults[testCaseNumber]) |
151
bdedd0cc6cd1
Add test flag existence
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
120
diff
changeset
|
55 } |
bdedd0cc6cd1
Add test flag existence
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
120
diff
changeset
|
56 } |
0
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
57 |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
58 func testPerformanceExample() throws { |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
59 // This is an example of a performance test case. |
157
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
60 measure { |
0
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
61 // Put the code you want to measure the time of here. |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
62 } |
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
63 } |
157
8c3bbd640103
Implement Currency Selector
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
154
diff
changeset
|
64 |
0
e0c2bda6c51f
first commit
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
65 } |