public Transaction ToExpenseTransaction() { return(new Transaction( Type == "Money Transfer" ? TransactionType.MoneyTransfer : TransactionType.Other, CurrencyAmount.FromCopper(Amount), Player, OtherPlayer, DateTimeOffset.FromUnixTimeSeconds(Time))); }
public IReadOnlyList <Transaction> GetTransactionHistory() { return(_txns.Transactions .Select(tx => new Transaction( tx.Type, CurrencyAmount.FromCopper(tx.CopperAmount), tx.PlayerFrom, tx.PlayerTo, tx.WhenServerTime )).ToList()); }
public void BuildReport_WhenMoneySentToBanker_MailboxFeesIncreaseBy30Copper() { var firstRateStart = new DateTimeOffset(2020, 06, 24, 0, 0, 0, TimeSpan.FromHours(1)); var now = firstRateStart.AddDays(14); var tariff = new Tariff { History = new [] { new TariffItem { Amount = CurrencyAmount.FromGold(40), BeginsOn = firstRateStart, RepeatInterval = TimeSpan.FromDays(7) } } }; var roster = new Roster() .Add(new Player("Neffer")); IReadOnlyList <Transaction> transactions = new [] { new Transaction( TransactionType.MoneyTransfer, CurrencyAmount.FromGold(40), "Neffer", "Frozengold", firstRateStart.AddDays(1)), new Transaction( TransactionType.MoneyTransfer, CurrencyAmount.FromGold(20), "Frozengold", "Frozbank", firstRateStart.AddDays(9)), new Transaction( TransactionType.MoneyTransfer, CurrencyAmount.FromGold(5), "Frozengold", "Frozbank", firstRateStart.AddDays(9)), }; A.CallTo(() => _dataSource.GetRoster()).Returns(roster); A.CallTo(() => _dataSource.GetTariff()).Returns(tariff); A.CallTo(() => _dataSource.NowServerTime).Returns(now); A.CallTo(() => _dataSource.GetTransactionHistory()).Returns(transactions); var sut = CreateSut(); sut.BuildReport(); sut.MailboxFees.Should().Be(CurrencyAmount.FromCopper(60)); }