public void 存在しない販売コードでは決済できない() { var r = new Memory商品在庫Repository(); var x = new 硬貨自動販売機(r, new 硬貨支払機()); try { x.決済(new 販売コード("AYBABTU")); } catch (自動販売機該当商品なしException) { return; } Assert.Fail(); }
public void 販売コードがNullでは決済できない() { var r = new Memory商品在庫Repository(); var x = new 硬貨自動販売機(r, new 硬貨支払機()); try { x.決済(null); } catch (ArgumentNullException) { return; } Assert.Fail(); }
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(); }
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(); }
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)); }