public void DoesNotAllowReceiveNewBidWhenAuctionIsClosed( int quantityBidsExpected, double[] amounts) { //Arranje var evaluation = new UpperAmount(); var auction = new Auction("Van Gogh", evaluation); var johnDoe = new Interested("John Doe"); var janeDoe = new Interested("Jane Doe"); auction.StartAuction(); for (int i = 0; i < amounts.Length; i++) { var amount = amounts[i]; if ((i % 2) == 0) { auction.ReceiveBid(johnDoe, amount); } else { auction.ReceiveBid(janeDoe, amount); } } auction.FinishAuction(); //Act auction.ReceiveBid(johnDoe, 1000); //Assert Assert.Equal(quantityBidsExpected, auction.Bids.Count()); }
public void ReturnMaxAmountWhenHaveAtLastOneBid(double expectedAmount, double[] amounts) { //Arrange var modality = new UpperAmount(); var auction = new Auction("Van Gogh", modality); var johnDoe = new Interested("John Doe"); var janeDoe = new Interested("Jane Doe"); auction.StartAuction(); for (int i = 0; i < amounts.Length; i++) { double amount = amounts[i]; if ((i % 2) == 0) { auction.ReceiveBid(johnDoe, amount); } else { auction.ReceiveBid(janeDoe, amount); } } //Act auction.FinishAuction(); //Assert Assert.Equal(expectedAmount, auction.Winner.Amount); }
public void ReurnZeroWhenHaveNoBids() { //Arrange var evaluation = new UpperAmount(); var auction = new Auction("Van Gogh", evaluation); auction.StartAuction(); //Act auction.FinishAuction(); //Assert Assert.Equal(0, auction.Winner.Amount); }
public void ThrowsInvalidOperationExceptionWhenCloseAuctionNotStarted() { //Arrange var evaluation = new UpperAmount(); var auction = new Auction("Van Gogh", evaluation); //Act Action act = () => auction.FinishAuction(); //Assert var exception = Assert.Throws <InvalidOperationException>(act); Assert.Equal($"Não é possível fechar um leilão sem iniciá-lo. Utilize o método {nameof(auction.StartAuction)}.", exception.Message); }
public void DoesNotAllowReceiveBidWhenLastBidIsFromSameInterested() { //Arrange var evaluation = new UpperAmount(); var auction = new Auction("Van Gogh", evaluation); var johnDoe = new Interested("John Doe"); auction.StartAuction(); auction.ReceiveBid(johnDoe, 800); //Act auction.ReceiveBid(johnDoe, 1000); //Assert Assert.Single(auction.Bids); }