public void ReturnChangeTest3() { TradeParticipant customer = new TradeParticipant("customer"); Coin coin = new Coin(3); Coin coin1 = new Coin(5); Coin coin2 = new Coin(2); customer.Wallet.AddItem(coin); customer.Wallet.AddItem(coin1); customer.Wallet.AddItem(coin2); TradeParticipant vmachine = new TradeParticipant("vmachine"); GoodsItem item = new GoodsItem(10, "coffee"); vmachine.GoodsStorage.AddItem(item); customer.Buy(vmachine, null, new List <Coin>() { coin, coin1, coin2 }); Assert.AreEqual(10, customer.Wallet.MoneyAmount, "customer wallet"); Assert.AreEqual(3, customer.Wallet.GetItems(a => a.Value > 0, -1).Count, "customer wallet"); Coin coin3 = new Coin(10); vmachine.Wallet.AddItem(coin3); customer.Buy(vmachine, null, new List <Coin>() { coin, coin1, coin2 }); Assert.AreEqual(10, customer.Wallet.MoneyAmount, "customer wallet"); Assert.AreEqual(1, customer.Wallet.GetItems(a => a.Value == 10, -1).Count, "customer wallet"); Assert.AreEqual(10, vmachine.Wallet.MoneyAmount, "vm wallet"); Assert.AreEqual(3, vmachine.Wallet.GetItems(a => a.Value > 0, -1).Count, "vm wallet"); }
public void NomoneyBuyTest() { TradeParticipant customer = new TradeParticipant("customer"); Coin coin = new Coin(5); customer.Wallet.AddItem(coin); TradeParticipant vmachine = new TradeParticipant("vmachine"); GoodsItem item = new GoodsItem(10, "coffee"); vmachine.GoodsStorage.AddItem(item); customer.Buy(vmachine, item, new List <Coin>() { coin }); Assert.AreEqual(5, customer.Wallet.MoneyAmount, "customer wallet"); Assert.AreEqual(0, customer.GoodsStorage.GoodsCount, "customer goods storage"); Assert.AreEqual(0, vmachine.Wallet.MoneyAmount, "vm wallet"); Assert.AreEqual(1, vmachine.GoodsStorage.GoodsCount, "vm goods storage"); }
public void DoesHaveEnoughChangeTest() { TradeParticipant customer = new TradeParticipant("customer"); Coin coin = new Coin(10); Coin coin1 = new Coin(5); customer.Wallet.AddItem(coin); customer.Wallet.AddItem(coin1); TradeParticipant vmachine = new TradeParticipant("vmachine"); GoodsItem item = new GoodsItem(7, "green tea"); vmachine.GoodsStorage.AddItem(item); customer.Buy(vmachine, item, new List <Coin>() { coin, coin1 }); Assert.AreEqual(15, customer.Wallet.MoneyAmount, "customer wallet"); Assert.AreEqual(0, customer.GoodsStorage.GoodsCount, "customer goods storage"); Assert.AreEqual(0, vmachine.Wallet.MoneyAmount, "vm wallet"); Assert.AreEqual(1, vmachine.GoodsStorage.GoodsCount, "vm goods storage"); }
public void ReturnChangeTest2() { TradeParticipant customer = new TradeParticipant("customer"); Coin coin = new Coin(10); Coin coin1 = new Coin(5); customer.Wallet.AddItem(coin); customer.Wallet.AddItem(coin1); TradeParticipant vmachine = new TradeParticipant("vmachine"); GoodsItem item = new GoodsItem(10, "coffee"); vmachine.GoodsStorage.AddItem(item); customer.Buy(vmachine, null, new List <Coin>() { coin, coin1 }); Assert.AreEqual(15, customer.Wallet.MoneyAmount, "customer wallet"); Assert.AreEqual(0, customer.GoodsStorage.GoodsCount, "customer goods storage"); Assert.AreEqual(0, vmachine.Wallet.MoneyAmount, "vm wallet"); Assert.AreEqual(1, vmachine.GoodsStorage.GoodsCount, "vm goods storage"); }
public void BaseBuyTest() { TradeParticipant customer = new TradeParticipant("customer"); Coin coin = new Coin(10); Coin coin1 = new Coin(10); Coin coin2 = new Coin(10); Coin coin3 = new Coin(5); Coin coin4 = new Coin(3); Coin coin5 = new Coin(2); Coin coin6 = new Coin(1); customer.Wallet.AddItems(new List <Coin> { coin, coin1, coin2, coin3, coin4, coin5, coin6 }); TradeParticipant vmachine = new TradeParticipant("vmachine"); GoodsItem item = new GoodsItem(10, "coffee"); GoodsItem item1 = new GoodsItem(10, "coffee"); GoodsItem item2 = new GoodsItem(10, "coffee"); GoodsItem item3 = new GoodsItem(10, "coffee"); GoodsItem item4 = new GoodsItem(7, "green tea"); GoodsItem item5 = new GoodsItem(3, "tea"); GoodsItem item6 = new GoodsItem(3, "tea"); GoodsItem item7 = new GoodsItem(1, "napkin"); GoodsItem item8 = new GoodsItem(1, "napkin"); vmachine.GoodsStorage.AddItems(new List <GoodsItem> { item, item1, item2, item3, item4, item5, item6, item7, item8, item }); Coin coin0 = new Coin(10); Coin coin01 = new Coin(10); Coin coin02 = new Coin(10); Coin coin03 = new Coin(5); Coin coin04 = new Coin(3); Coin coin05 = new Coin(2); Coin coin06 = new Coin(1); vmachine.Wallet.AddItems(new List <Coin> { coin0, coin01, coin02, coin03, coin04, coin05, coin06 }); var cmoney_amount = customer.Wallet.MoneyAmount; var cgoods_amount = customer.GoodsStorage.GoodsCount; var vmoney_amount = vmachine.Wallet.MoneyAmount; var vgoods_count = vmachine.GoodsStorage.GoodsCount; customer.Buy(vmachine, item4, new List <Coin>() { coin3, coin4 }); //8-1 coin06 in Assert.AreEqual(cmoney_amount - 7, customer.Wallet.MoneyAmount, "customer wallet"); Assert.AreEqual(vgoods_count - 1, vmachine.GoodsStorage.GoodsCount, "vm goods storage"); Assert.AreEqual(vmoney_amount + 7, vmachine.Wallet.MoneyAmount, "vm wallet"); customer.Buy(vmachine, item5, new List <Coin>() { coin5, coin6 }); // 0 customer.Buy(vmachine, item1, new List <Coin>() { coin1 }); // customer.Sell(vmachine, item4, new List <Coin>() { coin05, coin03 }); // Assert.AreEqual(cmoney_amount - 7 - 3 - 10 + 7, customer.Wallet.MoneyAmount, "customer wallet"); Assert.AreEqual(2, customer.GoodsStorage.GoodsCount, "customer goods storage"); }