public void 在庫があって十分な金額であれば成功する()
        {
            var c = new 販売コード("COLA-001");
            var r = new Memory商品在庫Repository();
            var x = new 硬貨自動販売機(r, new 硬貨支払機());
            var u = new 硬貨自動販売機ユーザUseCase(x);

            r.Register商品(c, new 販売商品(new 商品名("コーラ"), new 通貨(120)));
            r.Add数量(c, 1);
            u.Insert貨幣(new 自動販売機Insert貨幣Command(500));
            var y = u.決済(new 自動販売機決済Command(c));

            Assert.IsTrue(y is 自動販売機決済SuccessCommandResult);
        }
        public void 該当商品なしだと失敗する()
        {
            var c = new 販売コード("COLA-001");
            var r = new Memory商品在庫Repository();
            var x = new 硬貨自動販売機(r, new 硬貨支払機());
            var u = new 硬貨自動販売機ユーザUseCase(x);

            r.Register商品(c, new 販売商品(new 商品名("コーラ"), new 通貨(120)));
            u.Insert貨幣(new 自動販売機Insert貨幣Command(500));
            var y = u.決済(new 自動販売機決済Command(new 販売コード("WATR-002")));

            Assert.IsTrue(y is 自動販売機決済FailureCommandResult);
            var z = y as 自動販売機決済FailureCommandResult;

            Assert.IsTrue(z.Reason == 自動販売機決済FailureReason.該当商品なし);
        }