예제 #1
0
 public void 自動販売機クラスのコンストラクタのテスト()
 {
     //初期状態でコーラを5本格納している
     var vendingMachine = new VendingMachine();
     Assert.AreEqual(5, vendingMachine.GetStock(Juice.Cola));
 }
예제 #2
0
        public void VendingMachineのシナリオテスト()
        {
            //在庫を追加
            var vm = new VendingMachine();
            vm.AddStock(Juice.RedBull, 5);
            vm.AddStock(Juice.Water, 5);

            //購入
            Assert.AreEqual(0, vm.Deposit);
            CollectionAssert.IsEmpty(vm.CommodityTray);
            Assert.AreEqual(0, vm.ChangeTray);

            //お金を投入する
            vm.InsertMoney(100);
            vm.InsertMoney(100);
            vm.InsertMoney(10);
            vm.InsertMoney(10);
            vm.InsertMoney(10);
            vm.InsertMoney(1);
            vm.InsertMoney(5);
            Assert.AreEqual(230, vm.Deposit);
            Assert.AreEqual(6, vm.ChangeTray);

            //購入
            vm.Purchase(Juice.Cola);
            Assert.AreEqual(110, vm.Deposit);
            CollectionAssert.AreEqual(
                new List<Juice>() { Juice.Cola, },
                vm.CommodityTray
            );
            Assert.AreEqual(6, vm.ChangeTray);

            vm.Purchase(Juice.RedBull);	//残金110円では購入不可
            Assert.AreEqual(110, vm.Deposit);
            CollectionAssert.AreEqual(
                new List<Juice>() { Juice.Cola, },
                vm.CommodityTray
            );
            Assert.AreEqual(6, vm.ChangeTray);

            vm.Purchase(Juice.Water);
            Assert.AreEqual(10, vm.Deposit);
            CollectionAssert.AreEqual(
                new List<Juice>() { Juice.Cola, Juice.Water, },
                vm.CommodityTray
            );
            Assert.AreEqual(6, vm.ChangeTray);

            //返金
            vm.ReturnChange();
            Assert.AreEqual(0, vm.Deposit);
            CollectionAssert.AreEqual(
                new List<Juice>() { Juice.Cola, Juice.Water, },
                vm.CommodityTray
            );
            Assert.AreEqual(16, vm.ChangeTray);

            //購入後の状態
            Assert.AreEqual(4, vm.GetStock(Juice.Cola));
            Assert.AreEqual(5, vm.GetStock(Juice.RedBull));
            Assert.AreEqual(4, vm.GetStock(Juice.Water));
            Assert.AreEqual(220, vm.Proceeds);
        }