Exemplo n.º 1
0
 public Transaction ToExpenseTransaction()
 {
     return(new Transaction(
                Type == "Money Transfer" ? TransactionType.MoneyTransfer : TransactionType.Other,
                CurrencyAmount.FromCopper(Amount),
                Player,
                OtherPlayer,
                DateTimeOffset.FromUnixTimeSeconds(Time)));
 }
Exemplo n.º 2
0
 public IReadOnlyList <Transaction> GetTransactionHistory()
 {
     return(_txns.Transactions
            .Select(tx =>
                    new Transaction(
                        tx.Type,
                        CurrencyAmount.FromCopper(tx.CopperAmount),
                        tx.PlayerFrom,
                        tx.PlayerTo,
                        tx.WhenServerTime
                        )).ToList());
 }
Exemplo n.º 3
0
        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));
        }