Initial commit
This commit is contained in:
72
SatsPriceTests/SatsViewModelTests.swift
Normal file
72
SatsPriceTests/SatsViewModelTests.swift
Normal file
@@ -0,0 +1,72 @@
|
||||
//
|
||||
// SatsViewModelTests.swift
|
||||
// SatsPriceTests
|
||||
//
|
||||
// Created by Terry Yiu on 2/19/24.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
import BigDecimal
|
||||
@testable import SatsPrice
|
||||
|
||||
final class SatsViewModelTests: XCTestCase {
|
||||
|
||||
override func setUpWithError() throws {
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
override func tearDownWithError() throws {
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
func testSatsViewModel() {
|
||||
let satsViewModel = SatsViewModel()
|
||||
satsViewModel.btcToUsdString = "54321"
|
||||
|
||||
// Test BTC updates.
|
||||
satsViewModel.btcString = "1"
|
||||
XCTAssertEqual(satsViewModel.btc, BigDecimal("1"))
|
||||
XCTAssertEqual(satsViewModel.btcString, "1")
|
||||
XCTAssertEqual(satsViewModel.sats, BigDecimal("100000000"))
|
||||
XCTAssertEqual(satsViewModel.satsString, "100000000")
|
||||
XCTAssertEqual(satsViewModel.usd, BigDecimal("54321"))
|
||||
XCTAssertEqual(satsViewModel.usdString, "54321")
|
||||
|
||||
// Test Sats updates.
|
||||
satsViewModel.satsString = "200000000"
|
||||
XCTAssertEqual(satsViewModel.btc, BigDecimal("2"))
|
||||
XCTAssertEqual(satsViewModel.btcString, "2")
|
||||
XCTAssertEqual(satsViewModel.sats, BigDecimal("200000000"))
|
||||
XCTAssertEqual(satsViewModel.satsString, "200000000")
|
||||
XCTAssertEqual(satsViewModel.usd, BigDecimal("108642"))
|
||||
XCTAssertEqual(satsViewModel.usdString, "108642")
|
||||
|
||||
// Test USD updates.
|
||||
satsViewModel.usdString = "162963"
|
||||
XCTAssertEqual(satsViewModel.btc, BigDecimal("3"))
|
||||
XCTAssertEqual(satsViewModel.btcString, "3")
|
||||
XCTAssertEqual(satsViewModel.sats, BigDecimal("300000000"))
|
||||
XCTAssertEqual(satsViewModel.satsString, "300000000")
|
||||
XCTAssertEqual(satsViewModel.usd, BigDecimal("162963"))
|
||||
XCTAssertEqual(satsViewModel.usdString, "162963")
|
||||
|
||||
// Test fractional amounts.
|
||||
satsViewModel.usdString = "1"
|
||||
XCTAssertEqual(satsViewModel.btc, BigDecimal("0.000018409086725207562452"))
|
||||
XCTAssertEqual(satsViewModel.btcString, "0.000018409086725207562452")
|
||||
XCTAssertEqual(satsViewModel.sats, BigDecimal("1840.9086725207562452"))
|
||||
XCTAssertEqual(satsViewModel.satsString, "1840.9086725207562452")
|
||||
XCTAssertEqual(satsViewModel.usd, BigDecimal("1"))
|
||||
XCTAssertEqual(satsViewModel.usdString, "1")
|
||||
|
||||
// Test large amounts that exceed the cap of 21M BTC.
|
||||
satsViewModel.usdString = "11407419999999"
|
||||
XCTAssertEqual(satsViewModel.btc, BigDecimal("210000184.09084884298"))
|
||||
XCTAssertEqual(satsViewModel.btcString, "210000184.09084884298")
|
||||
XCTAssertEqual(satsViewModel.sats, BigDecimal("21000018409084884.298"))
|
||||
XCTAssertEqual(satsViewModel.satsString, "21000018409084884.298")
|
||||
XCTAssertEqual(satsViewModel.usd, BigDecimal("11407419999999"))
|
||||
XCTAssertEqual(satsViewModel.usdString, "11407419999999")
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user