Eject() public method

public Eject ( CashDeal inCash, CreditPool inChangePool ) : CreditPool
inCash CashDeal
inChangePool CreditPool
return CreditPool
Ejemplo n.º 1
0
        public void _何も購入せずお金を排出する(Money inMoney, int inRepeat)
        {
            var role = new CoinMeckRole ();
            var received = new CashDeal();
            var pool = TestHelper.InitInfinityReservedChange();

            for (var i = 0; i < inRepeat; ++i) {
                role.Receive(received, inMoney);
            }

            var changed = role.Eject(received, pool)
                .GroupBy(m => m)
                .ToDictionary(g => g.Key, g => g)
            ;

            Assert.That(received.RecevedMoney.Count, Is.EqualTo(0));

            Assert.That(changed.Count, Is.EqualTo(1));
            Assert.True(changed.ContainsKey(inMoney));
            Assert.That(changed[inMoney].Count(), Is.EqualTo(inRepeat));
        }
Ejemplo n.º 2
0
        public void _何も購入せずお金を排出する(Money inMoney, int inRepeat)
        {
            var role = new CoinMeckRole ();
            var received = new CashDeal();
            var pool = TestHelper.InitInfinityReservedChange();

            role.Receive(received, inMoney, inRepeat);

            var expectReceived = received.RecevedMoney.TotalAmount();

            var changes = role.Eject(received, pool).Credits
                .Where(c => c.Value > 0)
                .ToDictionary(g => g.Key, g => g.Value)
            ;

            Assert.That(received.RecevedMoney.TotalAmount(), Is.EqualTo(expectReceived));

            Assert.That(changes.Count, Is.EqualTo(1));
            Assert.True(changes.ContainsKey(inMoney));
            Assert.That(changes[inMoney], Is.EqualTo(inRepeat));
        }
Ejemplo n.º 3
0
        public void _商品購入後お金を排出する(
			    [ValueSource(typeof(_商品購入後お金を排出するParams), "Source")] 
			    _商品購入後お金を排出するParams.Parameter inParameter)
        {
            var role = new CoinMeckRole();
            var received = new CashDeal();
            var pool = TestHelper.InitInfinityReservedChange();

            foreach (var m in inParameter.ReceivedMoney) {
                for (var i = 0; i < m.Item2; ++i) {
                    role.Receive (received, m.Item1);
                }
            }

            Assert.True(role.Purchase(received, 100));

            var changed = role.Eject(received, pool)
                .GroupBy(m => m)
                .ToDictionary(g => g.Key, g => g)
            ;

            var lookup = inParameter.ChangedMoney.ToDictionary(m => m.Item1, m => m.Item2);

            Assert.That(received.RecevedMoney.Count, Is.EqualTo(0));

            Assert.That(received.UsedAmount, Is.EqualTo(100));

            Assert.That(changed.Count, Is.EqualTo(lookup.Count), "count money type (id = {0})", inParameter.Id);

            foreach (var pair in changed) {
                Assert.True(lookup.ContainsKey(pair.Key), "money ({0}) should be contained (id = {1})", pair.Key, inParameter.Id);
                Assert.That(pair.Value.Count(), Is.EqualTo (lookup[pair.Key]), "money ({0}) count should be equaled (id = {1})", pair.Key, inParameter.Id);
            }
        }
Ejemplo n.º 4
0
        public void _商品購入後お金を排出する(
			    [ValueSource(typeof(_商品購入後お金を排出するParams), "Source")] 
			    _商品購入後お金を排出するParams.Parameter inParameter)
        {
            var role = new CoinMeckRole();
            var received = new CashDeal();
            var pool = TestHelper.InitInfinityReservedChange();

            foreach (var m in inParameter.ReceivedMoney) {
                for (var i = 0; i < m.Item2; ++i) {
                    role.Receive (received, m.Item1, 1);
                }
            }

            var newReceives = new CashDeal(role.CalcChanges(received, pool, 100));
            var changes = role.Eject(newReceives, pool)
                .Credits
                .Where(c => c.Value > 0)
                .ToDictionary(g => g.Key, g => g.Value)
            ;

            var lookup = inParameter.ChangedMoney.ToDictionary(m => m.Item1, m => m.Item2);

            Assert.That(changes.Count, Is.EqualTo(lookup.Count), "count money type (id = {0})", inParameter.Id);

            foreach (var pair in changes) {
                Assert.True(lookup.ContainsKey(pair.Key), "money ({0}) should be contained (id = {1})", pair.Key, inParameter.Id);
                Assert.That(pair.Value, Is.EqualTo (lookup[pair.Key]), "money ({0}) count should be equaled (id = {1})", pair.Key, inParameter.Id);
            }
        }
Ejemplo n.º 5
0
 public IEnumerable <Money> Eject()
 {
     return(mCoinMeckRole.Eject(mDealAmount, mChanges));
 }