Create helper extensions for Block and update tests for the Block helper model

Closes: https://github.com/damus-io/damus/pull/1528
Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
Grimless
2023-09-01 11:32:01 -04:00
committed by William Casarin
parent a64f898df7
commit 6ee0be40e9
8 changed files with 205 additions and 89 deletions

View File

@@ -8,6 +8,19 @@
import XCTest
@testable import damus
extension Block {
var asInvoice: Invoice? {
switch self {
case .invoice(let invoice):
return invoice
default:
return nil
}
}
}
final class InvoiceTests: XCTestCase {
override func setUpWithError() throws {
@@ -24,8 +37,9 @@ final class InvoiceTests: XCTestCase {
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)
XCTAssertNotNil(parsed[0].is_invoice)
guard let invoice = parsed[0].is_invoice else {
let invoiceOrNil = parsed[0].asInvoice
XCTAssertNotNil(invoiceOrNil)
guard let invoice = invoiceOrNil else {
return
}
XCTAssertEqual(invoice.amount, .any)
@@ -42,9 +56,10 @@ LNBC1P3MR5UJSP5G7SA48YD4JWTTPCHWMY4QYN4UWZQCJQ8NMWKD6QE3HCRVYTDLH9SPP57YM9TSA9NN
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 2)
XCTAssertNotNil(parsed[0].is_invoice)
XCTAssertEqual(parsed[1].is_text, " hi there")
guard let invoice = parsed[0].is_invoice else {
let invoiceOrNil = parsed[0].asInvoice
XCTAssertNotNil(invoiceOrNil)
XCTAssertEqual(parsed[1].asText, " hi there")
guard let invoice = invoiceOrNil else {
return
}
XCTAssertEqual(invoice.amount, .any)
@@ -58,8 +73,9 @@ LNBC1P3MR5UJSP5G7SA48YD4JWTTPCHWMY4QYN4UWZQCJQ8NMWKD6QE3HCRVYTDLH9SPP57YM9TSA9NN
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)
XCTAssertNotNil(parsed[0].is_invoice)
guard let invoice = parsed[0].is_invoice else {
let invoiceOrNil = parsed[0].asInvoice
XCTAssertNotNil(invoiceOrNil)
guard let invoice = invoiceOrNil else {
return
}
XCTAssertEqual(invoice.amount, .specific(10000))
@@ -74,7 +90,7 @@ LNBC1P3MR5UJSP5G7SA48YD4JWTTPCHWMY4QYN4UWZQCJQ8NMWKD6QE3HCRVYTDLH9SPP57YM9TSA9NN
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)
XCTAssertNotNil(parsed[0].is_invoice)
XCTAssertNotNil(parsed[0].asInvoice)
}
func testParseInvoiceWithPrefixCapitalized() throws {
@@ -83,7 +99,7 @@ LNBC1P3MR5UJSP5G7SA48YD4JWTTPCHWMY4QYN4UWZQCJQ8NMWKD6QE3HCRVYTDLH9SPP57YM9TSA9NN
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)
XCTAssertNotNil(parsed[0].is_invoice)
XCTAssertNotNil(parsed[0].asInvoice)
}
func testParseInvoice() throws {
@@ -92,8 +108,9 @@ LNBC1P3MR5UJSP5G7SA48YD4JWTTPCHWMY4QYN4UWZQCJQ8NMWKD6QE3HCRVYTDLH9SPP57YM9TSA9NN
XCTAssertNotNil(parsed)
XCTAssertEqual(parsed.count, 1)
XCTAssertNotNil(parsed[0].is_invoice)
guard let invoice = parsed[0].is_invoice else {
let invoiceOrNil = parsed[0].asInvoice
XCTAssertNotNil(invoiceOrNil)
guard let invoice = invoiceOrNil else {
return
}
XCTAssertEqual(invoice.amount, .specific(10000))