public VendingMachine()
 {
     this._rack = new CommodityRack();
     this._coinMech = new CoinMech();
     this._controller = new Controller(_coinMech, _rack);
     this.CommodityTray = new List<Juice>();
 }
        public void GetBinがレッドブルを格納したビンを返すことを確認する()
        {
            CommodityRack rack = new CommodityRack();
            rack.AddStock(Juice.RedBull, 5);

            Assert.AreEqual(Juice.RedBull, rack.GetBin(Juice.RedBull).Commodity);
            //Assert.AreEqual(5, rack.GetBin(Juice.RedBull).Stock);
        }
        internal CommodityRack _rack; //←追加

        #endregion Fields

        #region Constructors

        internal Controller(CoinMech coinMech, CommodityRack rack)
        {
            this._coinMech = coinMech;
            this._rack = rack;	//←追加
        }
        public void 水を提供すると水の在庫だけが減る()
        {
            CommodityRack rack = new CommodityRack();
            rack.AddStock(Juice.Water, 5);
            Assert.IsTrue(rack.HasStock(Juice.Cola));	//確認
            Assert.IsTrue(rack.HasStock(Juice.Water));	//確認

            for (int i = 0; i < 5; i++)
            {
                rack.Supply(Juice.Water);	//水の在庫だけを0にする
            }

            Assert.IsTrue(rack.HasStock(Juice.Cola));
            Assert.IsFalse(rack.HasStock(Juice.Water));
        }
        public void 在庫のある商品のリストを取得する()
        {
            CommodityRack rack = new CommodityRack();	//初期状態でコーラは在庫がある
            rack.AddStock(Juice.RedBull, 1);
            rack.Supply(Juice.RedBull);	//レッドブルの在庫が0になる
            rack.AddStock(Juice.Water, 3);

            CollectionAssert.AreEqual(
                new List<Juice>(){Juice.Cola ,Juice.Water},
                rack.StockedJuice
            );
        }
        public void 商品ラックのビンに初期状態でコーラが5本格納されている()
        {
            CommodityRack rack = new CommodityRack();

            Assert.AreEqual(5, rack.GetBin(Juice.Cola).Stock);
            Assert.AreEqual("コーラ", rack.GetBin(Juice.Cola).Commodity.Name);

            //すぐにbinは複数になるがひとまずこれで
        }
 public void レッドブルの在庫を追加できることを確認する()
 {
     CommodityRack rack = new CommodityRack();
     for (int i = 0; i < 5; i++)
     {
         rack.Supply(Juice.Cola);	//コーラの在庫を0にする
     }
     rack.AddStock(Juice.RedBull, 5);
     Assert.IsTrue(rack.HasStock(Juice.RedBull));
 }
        public void レッドブルと水の在庫が追加できることを確認する()
        {
            CommodityRack rack = new CommodityRack();
            rack.AddStock(Juice.RedBull, 5);
            rack.AddStock(Juice.Water, 3);

            Assert.AreEqual(5, rack.GetBin(Juice.RedBull).Stock);
            Assert.AreEqual(3, rack.GetBin(Juice.Water).Stock);
        }
 public void コーラを1本提供すると在庫が1個減る()
 {
     CommodityRack rack = new CommodityRack(); // 初期状態でコーラが5本
     //Assert.AreEqual(Juice.Cola.Name, rack.Supply(Juice.Cola).Name);
     Assert.AreEqual(Juice.Cola, rack.Supply(Juice.Cola));
     Assert.AreEqual(4, rack.GetBin(Juice.Cola).Stock);
 }
 public void コーラの在庫があるか()
 {
     CommodityRack rack = new CommodityRack();
     Assert.IsTrue(rack.HasStock(Juice.Cola));
 }