-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add flags to each currency #14 #14 * Add flags to each currency #14 #14 * [-] removed unused optional unwrapping with empty string [+] added "₿" for future implementation in currency core [+] added CurrencySceneViewModelTests (test the title for currency) * [f] xcode pbproj fixes
- Loading branch information
Showing
6 changed files
with
167 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
56 changes: 56 additions & 0 deletions
56
GemTests/Settings/ViewModels/CurrencySceneViewModelTests.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
import XCTest | ||
import Primitives | ||
@testable import Gem | ||
|
||
final class CurrencySceneViewModelTests: XCTestCase { | ||
func testCurrencyText() { | ||
let usdCurrency = CurrencySceneViewModelTests.nativeCurrency(currency: .usd) | ||
|
||
let usdCurrencyTitle = usdCurrency?.title | ||
let mockUsdCurrencyTitle = "🇺🇸 USD - US Dollar" | ||
XCTAssertEqual(usdCurrencyTitle, mockUsdCurrencyTitle) | ||
|
||
let uahCurrency = CurrencySceneViewModelTests.nativeCurrency(identifier: "UAH") | ||
let uahCurrencyTitle = uahCurrency?.title | ||
|
||
let mockUAHCurrencyTitle = "🇺🇦 UAH - Ukrainian Hryvnia" | ||
XCTAssertEqual(uahCurrencyTitle, mockUAHCurrencyTitle) | ||
} | ||
|
||
func testCurrencyTextWithXDREmojiFlag() { | ||
let xdrCurrency = CurrencySceneViewModelTests.nativeCurrency(identifier: "XDR") | ||
let xdrCurrencyTitle = xdrCurrency?.title | ||
|
||
let mockXdrCurrencyTitle = "🏳️ XDR - Special Drawing Rights" | ||
XCTAssertEqual(xdrCurrencyTitle, mockXdrCurrencyTitle) | ||
} | ||
|
||
func testUnknownCurrency() { | ||
let unknownCurrency = CurrencySceneViewModelTests.nativeCurrency(identifier: "XYZ") | ||
let unknownCurrencyTitle = unknownCurrency?.title | ||
|
||
// unknown currency not supported, it's managed by Currency raw vlaue from primitives | ||
XCTAssertEqual(unknownCurrencyTitle, nil) | ||
} | ||
|
||
func testBitcoinCurrency() { | ||
let btcCurrency = CurrencySceneViewModelTests.nativeCurrency(identifier: "BTC") | ||
let btcCurrencyTitle = btcCurrency?.title | ||
|
||
/* not supported yet | ||
let mockBtcCurrencyTitle = "₿ BTC - Bitcoin" | ||
XCTAssertEqual(btcCurrencyTitle, mockBtcCurrencyTitle) | ||
*/ | ||
XCTAssertEqual(btcCurrencyTitle, nil) | ||
} | ||
} | ||
|
||
extension CurrencySceneViewModelTests { | ||
static func nativeCurrency(identifier: String.ID) -> Locale.Currency? { | ||
Currency.nativeCurrencies.first(where: { $0.identifier == identifier }) | ||
} | ||
|
||
static func nativeCurrency(currency: Currency) -> Locale.Currency? { | ||
Currency.nativeCurrencies.first(where: { $0.identifier == currency.rawValue }) | ||
} | ||
} |