Exemplo n.º 1
0
        public void 複数の投入金額を正当に判定できる(MoneyKind kind1, MoneyKind kind2, int money)
        {
            _sut.InsertMoney(new Money(kind1));
            _sut.InsertMoney(new Money(kind2));

            _sut.TotalAmount.Is(money);
        }
Exemplo n.º 2
0
        public void 複数の投入金額を正当に判定できる(MoneyKind kind1, MoneyKind kind2, int money)
        {
            _sut.InsertMoney(new Money(kind1));
            _sut.InsertMoney(new Money(kind2));

            _sut.TotalAmount.Is(money);
        }
Exemplo n.º 3
0
        /// <summary>
        /// コインメックにお金を追加する
        /// </summary>
        /// <param name="kind"></param>
        public void Add(MoneyKind kind)
        {
            // 1円、5円、2000円、5000円、10000円は受け付けない
            // これは業務ルール

            if (kind == MoneyKind.ONE)
            {
                return;
            }
            if (kind == MoneyKind.FIVE)
            {
                return;
            }
            if (kind == MoneyKind.TWO_THOUSAND)
            {
                return;
            }
            if (kind == MoneyKind.FIVE_THOUSAND)
            {
                return;
            }
            if (kind == MoneyKind.TEN_THOUSAND)
            {
                return;
            }

            // 貨幣在庫にお金を保管する
            coinStrage.Stock(kind);

            // 入れた貨幣の金額をキャッシュする
            cache.Add(kind.GetPrice());
        }
Exemplo n.º 4
0
 /// <summary>
 /// お釣りに追加する
 /// </summary>
 /// <param name="kind"></param>
 /// <param name="amount"></param>
 public void Add(MoneyKind kind, int amount = 1)
 {
     for (int i = 0; i < amount; i++)
     {
         moneys.Add(kind);
     }
 }
Exemplo n.º 5
0
        public void お金種別の取り扱い可否を判定テスト(MoneyKind.Kind kind,bool expected)
        {
            var target = new Jihanki.Cashier.HandingMoney();

            var yen = new Money(kind);
            var actual = target.IsHandling(yen);
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 6
0
        public void ドリンクが購入可能か判定テスト(MoneyKind.Kind kind,int num,bool expected)
        {
            //お金を投入
            var money = new Money(kind);
            money.Add(num);
            this.target.ReceiptMoney(money);

            var actual = this.target.IsBuy();
            Assert.AreEqual(expected, actual);
        }
        public void 金額を投入してジュースを購入するとジュースの金額分を除いた払い戻しが行われる(
            MoneyKind moneyKind, string drinkName, int payBack)
        {
            _sut.SelectedMoney = moneyKind;
            _sut.InsertMoney();

            _sut.TotalMoneyAmount.Is(new Money(moneyKind).Amount);

            _sut.BuyDrink(drinkName);

            _sut.TotalMoneyAmount.Is(payBack);

            _sut.MoneyBacked += (s, e) => e.BackedMoneyList.Sum(m => m.Amount).Is(payBack);

            _sut.PayBack();
        }
        public void 金額を投入してジュースを購入するとジュースの金額分を除いた払い戻しが行われる(
            MoneyKind moneyKind, string drinkName, int payBack)
        {
            _sut.SelectedMoney = moneyKind;
            _sut.InsertMoney();

            _sut.TotalMoneyAmount.Is(new Money(moneyKind).Amount);

            _sut.BuyDrink(drinkName);

            _sut.TotalMoneyAmount.Is(payBack);

            _sut.MoneyBacked += (s, e) => e.BackedMoneyList.Sum(m => m.Amount).Is(payBack);

            _sut.PayBack();
        }
Exemplo n.º 9
0
        public Money(MoneyKind kind)
        {
            Kind = kind;

            switch (kind)
            {
            case MoneyKind.Yen1:
                Amount = 1;
                break;

            case MoneyKind.Yen5:
                Amount = 5;
                break;

            case MoneyKind.Yen10:
                Amount = 10;
                break;

            case MoneyKind.Yen50:
                Amount = 50;
                break;

            case MoneyKind.Yen100:
                Amount = 100;
                break;

            case MoneyKind.Yen500:
                Amount = 500;
                break;

            case MoneyKind.Yen1000:
                Amount = 1000;
                break;

            case MoneyKind.Yen5000:
                Amount = 5000;
                break;

            case MoneyKind.Yen10000:
                Amount = 10000;
                break;

            default:
                throw new ArgumentOutOfRangeException("kind");
            }
        }
Exemplo n.º 10
0
        public Money(MoneyKind kind)
        {
            Kind = kind;

            switch (kind)
            {
                case MoneyKind.Yen1:
                    Amount = 1;
                    break;
                case MoneyKind.Yen5:
                    Amount = 5;
                    break;
                case MoneyKind.Yen10:
                    Amount = 10;
                    break;
                case MoneyKind.Yen50:
                    Amount = 50;
                    break;
                case MoneyKind.Yen100:
                    Amount = 100;
                    break;
                case MoneyKind.Yen500:
                    Amount = 500;
                    break;
                case MoneyKind.Yen1000:
                    Amount = 1000;
                    break;
                case MoneyKind.Yen5000:
                    Amount = 5000;
                    break;
                case MoneyKind.Yen10000:
                    Amount = 10000;
                    break;
                default:
                    throw new ArgumentOutOfRangeException("kind");
            }
        }
Exemplo n.º 11
0
 public void 投入金額が正当に判定できる(MoneyKind kind, int money)
 {
     _sut.InsertMoney(new Money(kind));
     _sut.TotalAmount.Is(money);
 }
Exemplo n.º 12
0
 public MoneyStockInfo(MoneyKind kind, int count)
 {
     Kind  = kind;
     Count = count;
 }
Exemplo n.º 13
0
 public int Count(MoneyKind kind)
 {
     return(stocker[kind].Count());
 }
Exemplo n.º 14
0
 public Money(MoneyKind.Kind kind)
 {
     this.kind = kind;
 }
Exemplo n.º 15
0
 /// <summary>
 /// 入金する
 /// </summary>
 /// <param name="kind"></param>
 public void PutMoney(MoneyKind kind)
 {
     coinMech.Add(kind);
 }
Exemplo n.º 16
0
        /// <summary>
        /// 列挙体の要素の数を返します。MAXとか自前で用意していないときに便利
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="enumerator"></param>
        /// <returns></returns>
        public static int Count(this MoneyKind enumerator)
        {
            string[] names = Enum.GetNames(enumerator.GetType());

            return(names.Count());
        }
Exemplo n.º 17
0
 public MoneyStockInfo(MoneyKind kind, int count)
 {
     Kind = kind;
     Count = count;
 }
Exemplo n.º 18
0
 /// <summary>
 /// 指定した種類のお金があるか
 /// </summary>
 /// <param name="kind"></param>
 /// <returns></returns>
 public bool IsStock(MoneyKind kind, int count = 1)
 {
     return(stocker[kind].Count() >= count);
 }
Exemplo n.º 19
0
 public void 投入金額が正当に判定できる(MoneyKind kind, int money)
 {
     _sut.InsertMoney(new Money(kind));
     _sut.TotalAmount.Is(money);
 }
Exemplo n.º 20
0
 /// <summary>
 /// 指定した金額をストックする
 /// </summary>
 /// <param name="kind"></param>
 public void Stock(MoneyKind kind, int amount = 1)
 {
     stocker[kind].Add(amount);
 }
Exemplo n.º 21
0
 public void 金額種別ごとの合計金額計算(MoneyKind.Kind kind,int addCount,int sum)
 {
     var target = new Jihanki.Cashier.Base.Money(kind);
     target.Add(addCount);
     Assert.AreEqual(target.Sum(), sum);
 }