From 39c5dca0b65ab22e26d5a4cf1401a93b91558d65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20K=C3=B6tte?= Date: Fri, 22 May 2020 17:53:33 -0700 Subject: [PATCH] Fix metaData not copied when creating TransactionPosting --- SwiftBeanCountModel/TransactionPosting.swift | 2 +- SwiftBeanCountModelTests/TransactionPostingTests.swift | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/SwiftBeanCountModel/TransactionPosting.swift b/SwiftBeanCountModel/TransactionPosting.swift index 8df52ab..fc169e1 100644 --- a/SwiftBeanCountModel/TransactionPosting.swift +++ b/SwiftBeanCountModel/TransactionPosting.swift @@ -58,7 +58,7 @@ public class TransactionPosting: Posting { /// - transaction: the `Transaction` the posting is in - an *unowned* reference will be stored init(posting: Posting, transaction: Transaction) { self.transaction = transaction - super.init(accountName: posting.accountName, amount: posting.amount, price: posting.price, cost: posting.cost) + super.init(accountName: posting.accountName, amount: posting.amount, price: posting.price, cost: posting.cost, metaData: posting.metaData) } } diff --git a/SwiftBeanCountModelTests/TransactionPostingTests.swift b/SwiftBeanCountModelTests/TransactionPostingTests.swift index 309bc4a..6d9fe85 100644 --- a/SwiftBeanCountModelTests/TransactionPostingTests.swift +++ b/SwiftBeanCountModelTests/TransactionPostingTests.swift @@ -29,6 +29,16 @@ class TransactionPostingTests: XCTestCase { posting1 = Posting(accountName: accountName1, amount: amount1!) } + func testInitTransactionPosting() { + let transaction = Transaction(metaData: TransactionMetaData(date: Date(timeIntervalSince1970: 1_496_991_600), payee: "", narration: "", flag: .complete, tags: [])) + let posting = Posting(accountName: accountName1, amount: amount1!, metaData: ["A": "B"]) + let transactionPosting = TransactionPosting(posting: posting, transaction: transaction) + XCTAssertEqual(posting.accountName, transactionPosting.accountName) + XCTAssertEqual(posting.amount, transactionPosting.amount) + XCTAssertEqual(posting.metaData, transactionPosting.metaData) + XCTAssertEqual(transaction, transactionPosting.transaction) + } + func testDescription() { let amount = Amount(number: Decimal(1), commodity: Commodity(symbol: "💵")) let posting = Posting(accountName: accountName2, amount: amount)