public void Flow_ExampleProvidedInTaskDescription_Test() { var dataSource = PumpkinDealListRepository.Instance; var target = new PumpkinTradeService(dataSource); var result1 = target.Buy("A", 10); var result2 = target.Buy("B", 11); var result3 = target.Sell("C", 15); var result4 = target.Sell("D", 9); var result5 = target.Buy("E", 10); var result6 = target.Sell("F", 10); var result7 = target.Buy("G", 100); Assert.Multiple(() => { Assert.False(result1); Assert.False(result2); Assert.False(result3); Assert.True(result4); Assert.False(result5); Assert.True(result6); Assert.True(result7); }); Console.Write(target.GetProcessedTrades()); }
public void Buy_PriceMatchingProposal_DealMadeAsBuyWithBuyerPrice_Test() { var targetProposal = new PumpkinDeal() { Buyer = null, BuyPrice = null, Seller = "Test seller", SellPrice = 10, DealPrice = null, DealType = null, SubmitionTime = DateTime.UtcNow }; var dataSource = Substitute.For <IRepository <PumpkinDeal> >(); dataSource.Get().Returns( new List <PumpkinDeal>() { targetProposal }.AsQueryable()); var target = new PumpkinTradeService(dataSource); var result = target.Buy("Test buyer", 18); Assert.Multiple(() => { Assert.True(result); Assert.True(targetProposal.DealType == EDealType.Buy); Assert.True(targetProposal.BuyPrice == targetProposal.DealPrice); }); Console.Write(target.GetProcessedTrades()); }
public void Buy_NoProposals_TradeNotProcessed_Test() { var dataSource = Substitute.For <IRepository <PumpkinDeal> >(); dataSource.Get().Returns( new List <PumpkinDeal>() .AsQueryable()); var target = new PumpkinTradeService(dataSource); var result = target.Buy("Test buyer", 8); Assert.False(result); }
public void Buy_PriceMuchThenProposal_TradeProcessed_Test() { var dataSource = Substitute.For <IRepository <PumpkinDeal> >(); dataSource.Get().Returns( new List <PumpkinDeal>() { new PumpkinDeal() { Buyer = null, BuyPrice = null, Seller = "Test seller", SellPrice = 10, DealPrice = null, DealType = null, SubmitionTime = DateTime.UtcNow } }.AsQueryable()); var target = new PumpkinTradeService(dataSource); var result = target.Buy("Test buyer", 18); Assert.True(result); }