コード例 #1
0
        public void 存在しない販売コードでは決済できない()
        {
            var r = new Memory商品在庫Repository();
            var x = new 硬貨自動販売機(r, new 硬貨支払機());

            try {
                x.決済(new 販売コード("AYBABTU"));
            }
            catch (自動販売機該当商品なしException) {
                return;
            }
            Assert.Fail();
        }
コード例 #2
0
        public void 販売コードがNullでは決済できない()
        {
            var r = new Memory商品在庫Repository();
            var x = new 硬貨自動販売機(r, new 硬貨支払機());

            try {
                x.決済(null);
            }
            catch (ArgumentNullException) {
                return;
            }
            Assert.Fail();
        }
コード例 #3
0
        public void 在庫切れの商品では決済できない()
        {
            var c = new 販売コード("COLA-001");
            var r = new Memory商品在庫Repository();
            var x = new 硬貨自動販売機(r, new 硬貨支払機());

            r.Register商品(c, new 販売商品(new 商品名("コーラ"), new 通貨(100)));
            try {
                x.決済(c);
            }
            catch (自動販売機在庫切れException) {
                return;
            }
            Assert.Fail();
        }
コード例 #4
0
        public void 投入金額不足では決済できない()
        {
            var c = new 販売コード("COLA-001");
            var r = new Memory商品在庫Repository();
            var x = new 硬貨自動販売機(r, new 硬貨支払機());

            r.Register商品(c, new 販売商品(new 商品名("コーラ"), new 通貨(110)));
            r.Add数量(c, 1);
            x.Insert貨幣(new 硬貨(100));
            try {
                x.決済(c);
            }
            catch (自動販売機金額不足Exception) {
                return;
            }
            Assert.Fail();
        }
コード例 #5
0
        public void 投入金額が十分であれば決済できる()
        {
            var c = new 販売コード("COLA-001");
            var r = new Memory商品在庫Repository();
            var x = new 硬貨自動販売機(r, new 硬貨支払機());

            r.Register商品(c, new 販売商品(new 商品名("コーラ"), new 通貨(140)));
            r.Add数量(c, 1);
            x.Insert貨幣(new 硬貨(500));
            var y = x.決済(c);

            Assert.IsTrue(y.商品.商品名.Equals(new 商品名("コーラ")));
            var t = y.釣銭.OrderBy(x => x.Value).ToList();

            Assert.IsTrue(t[0] == new 硬貨(10));
            Assert.IsTrue(t[1] == new 硬貨(50));
            Assert.IsTrue(t[2] == new 硬貨(100));
            Assert.IsTrue(t[3] == new 硬貨(100));
            Assert.IsTrue(t[4] == new 硬貨(100));
        }