public void AnItemOwnerCannotBuyARaffleForItsOwnItem() { Setup(); var im = new ItemManager(item); Assert.Throws<InvalidOperationException>(() => im.BuyRaffle(this.owner)); }
public void AUserCannotBuyARaffleIfHeDoesNotHaveEnoughMoney() { Setup(); this.item.Price = 100; var im = new ItemManager(item); Assert.Throws<InvalidOperationException>(() => im.BuyRaffle(this.buyer)); }
public void AUserCannotBuyARaffleForAClosedItem() { Setup(); this.item.Raffles = new Raffle.Models.Raffle[100].ToList(); var im = new ItemManager(item); Assert.Throws<InvalidOperationException>(() => im.BuyRaffle(this.buyer)); }
public void AUserShouldBeAbleToBuyARaffleInTheRightConditions() { Setup(); this.item.Price = 100; var im = new ItemManager(item); var raffle = im.BuyRaffle(this.buyer); Assert.Equal(this.buyer.UserId, raffle.UserProfileId); Assert.Equal(this.item.Id, raffle.ItemId); Assert.True(raffle.RaffleNumber > 0); Assert.True(this.item.CanBuy); Assert.Null(raffle.IsPrized); }
public void BuyingTheLastRaffleShouldCloseAnItemAndProvideAWinner() { Setup(); this.item.Price = 1; var im = new ItemManager(item); var raffle = im.BuyRaffle(this.buyer); Assert.False(this.item.CanBuy); Assert.NotNull(raffle.IsPrized); }