Пример #1
0
            public void AnItemOwnerCannotBuyARaffleForItsOwnItem()
            {
                Setup();

                var im = new ItemManager(item);

                Assert.Throws<InvalidOperationException>(() => im.BuyRaffle(this.owner));
            }
Пример #2
0
            public void AUserCannotBuyARaffleIfHeDoesNotHaveEnoughMoney()
            {
                Setup();

                this.item.Price = 100;

                var im = new ItemManager(item);

                Assert.Throws<InvalidOperationException>(() => im.BuyRaffle(this.buyer));
            }
Пример #3
0
            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));
            }
Пример #4
0
            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);
            }
Пример #5
0
            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);
            }