public void Test_ImportFromSplitwise_Update_NotPaid_NoShare() { this.GenerateSplitwiseUser(); var splitwiseTransaction = this.context.GenerateSplitwiseTransaction( 1, "Description", DateTime.Today.ToLocalDate(), false, DateTime.UtcNow.AddHours(-1), 0, 10); // Add update to expense where user is no longer part of it. var expense = this.SplitwiseContextMock.GenerateExpense( 1, "Description", DateTime.Today.ToLocalDate(), false, DateTime.UtcNow, 0, 0); this.SplitwiseManager.ImportFromSplitwise(); this.RefreshContext(); Wv8Assert.IsNone( this.context.SplitwiseTransactions.SingleOrNone(st => st.Id == splitwiseTransaction.Id)); }
public void Test_ImportFromSplitwise_Removed_Paid() { // Add processed Splitwise transaction to database. this.GenerateSplitwiseUser(); var user2 = this.SplitwiseContextMock.GenerateUser(2, "USER2"); var user3 = this.SplitwiseContextMock.GenerateUser(3, "USER3"); var(account, _) = this.context.GenerateAccount(); var split1 = this.context.GenerateSplitDetail(user2.Id, 15); var split2 = this.context.GenerateSplitDetail(user3.Id, 25); var splits = new List <SplitDetailEntity> { split1, split2 }; var(splitwiseAccount, _) = this.context.GenerateAccount(AccountType.Splitwise); var category = this.context.GenerateCategory(); var splitwiseTransaction = this.context.GenerateSplitwiseTransaction( 1, updatedAt: DateTime.Now.AddDays(-7), paidAmount: 50, personalAmount: 10, date: DateTime.Today.ToLocalDate(), description: "Description", imported: true, splits: splits); this.context.GenerateTransaction( splitwiseAccount, TransactionType.Expense, splitwiseTransaction.Description, splitwiseTransaction.Date, splitwiseTransaction.PaidAmount, category, splitwiseTransaction: splitwiseTransaction, splitDetails: splits); this.SaveAndProcess(); // Add new version to mock. Deleted. var expense = this.SplitwiseContextMock.GenerateExpense( 1, updatedAt: DateTime.UtcNow, paidAmount: splitwiseTransaction.PaidAmount, personalAmount: splitwiseTransaction.PersonalAmount, date: splitwiseTransaction.Date, description: splitwiseTransaction.Description, splits: splitwiseTransaction.SplitDetails.Select(sd => sd.AsSplit()).ToList(), isDeleted: true); this.SplitwiseManager.ImportFromSplitwise(); // Verify revert this.RefreshContext(); var accountBalance = this.context.Accounts.Single(a => a.Id == splitwiseAccount.Id).CurrentBalance; Assert.Equal(0, accountBalance); splitwiseTransaction = this.context.SplitwiseTransactions.Single(st => st.Id == splitwiseTransaction.Id); Assert.True(splitwiseTransaction.IsDeleted); Assert.False(splitwiseTransaction.Imported); Wv8Assert.IsNone(this.context.Transactions.SingleOrNone(t => t.SplitwiseTransactionId == splitwiseTransaction.Id)); }