コード例 #1
0
        public void AddToBag_SingleInputBaggedItem_ReturnsOutputBaggedItem()
        {
            // ARRANGE //

            // Substitutes
            var userRep       = Substitute.For <IUserRepository>();
            var itemRep       = Substitute.For <IItemRepository>();
            var baggedItemRep = Substitute.For <IBaggedItemRepository>();

            // Substitutes behavior
            baggedItemRep.AddToBag(1, 1, Arg.Any <IBaggedItem>()).Returns(CreateBaggedItem(1));
            itemRep.GetById(1).Returns(CreateItem(1));

            // BaggedItem Service
            var baggedItemService = new BaggedItemService(baggedItemRep, userRep, itemRep);

            // Expectation
            var expected = CreateOutputDtoAddBaggedItem(1);

            // ACT //
            var outputBaggedItem = baggedItemService.AddToBag(1, 1, CreateInputDtoAddItemToBag(1));

            // ASSERT //
            Assert.AreEqual(expected, outputBaggedItem);
        }
コード例 #2
0
        public void GetByUserId_SingleNumber_ReturnsOutputDtoQueryUserBaggedItem()
        {
            // ARRANGE //

            // Substitutes
            var userRep       = Substitute.For <IUserRepository>();
            var itemRep       = Substitute.For <IItemRepository>();
            var baggedItemRep = Substitute.For <IBaggedItemRepository>();

            // Substitutes behavior
            baggedItemRep.GetByUserId(1).Returns(CreateListOfBaggedItems(2));
            userRep.GetById(1).Returns(CreateUser(1));

            // BaggedItem service
            var baggedItemService = new BaggedItemService(baggedItemRep, userRep, itemRep);

            // Expectation
            var expected = CreateOutputDtoQueryUserBaggedItem(1, 2);

            // ACT //
            var outputBaggedItems = baggedItemService.GetByUserId(1);

            // ASSERT //
            Assert.AreEqual(expected, outputBaggedItems);
        }
コード例 #3
0
        public void UpdateQuantity_ReturnsIsUpdated(bool isUpdatedFromRepo)
        {
            // ARRANGE //

            // Substitutes
            var userRep       = Substitute.For <IUserRepository>();
            var itemRep       = Substitute.For <IItemRepository>();
            var baggedItemRep = Substitute.For <IBaggedItemRepository>();

            // Substitutes behavior
            baggedItemRep.UpdateQuantity(1, Arg.Any <IBaggedItem>()).Returns(isUpdatedFromRepo);

            // BaggedItem Service
            var baggedItemService = new BaggedItemService(baggedItemRep, userRep, itemRep);

            // ACT //
            var output = baggedItemService.UpdateQuantity(1, CreateInputDtoUpdateBaggedItem(1));

            // ASSERT //
            Assert.AreEqual(isUpdatedFromRepo, output);
        }
コード例 #4
0
        public void DeleteItem_ReturnsIsDeleted(bool isDeletedFromRepo)
        {
            // ARRANGE //

            // Substitutes
            var userRep       = Substitute.For <IUserRepository>();
            var itemRep       = Substitute.For <IItemRepository>();
            var baggedItemRep = Substitute.For <IBaggedItemRepository>();

            // Substitutes behavior
            baggedItemRep.DeleteItem(1).Returns(isDeletedFromRepo);

            // BaggedItem Service
            var baggedItemService = new BaggedItemService(baggedItemRep, userRep, itemRep);

            // ACT //
            var output = baggedItemService.DeleteItem(1);

            // ASSERT //
            Assert.AreEqual(isDeletedFromRepo, output);
        }
コード例 #5
0
        public void EmptyBag_ReturnsRowsAffected(int rows)
        {
            // ARRANGE //

            // Substitutes
            var userRep       = Substitute.For <IUserRepository>();
            var itemRep       = Substitute.For <IItemRepository>();
            var baggedItemRep = Substitute.For <IBaggedItemRepository>();

            // Substitutes behavior
            baggedItemRep.EmptyBag(1).Returns(rows);

            // BaggedItem Service
            var baggedItemService = new BaggedItemService(baggedItemRep, userRep, itemRep);

            // ACT //
            var output = baggedItemService.EmptyBag(1);

            // ASSERT //
            Assert.AreEqual(rows, output);
        }
コード例 #6
0
        public void AddToBag_SingleInputBaggedItem_ThrowsException()
        {
            // ARRANGE //

            // Substitutes
            var userRep       = Substitute.For <IUserRepository>();
            var itemRep       = Substitute.For <IItemRepository>();
            var baggedItemRep = Substitute.For <IBaggedItemRepository>();

            // Substitutes behavior
            baggedItemRep
            .AddToBag(1, 1, Arg.Any <IBaggedItem>())
            .Returns(x => { throw new DuplicateSqlPrimaryException("message"); });

            // BaggedItem Service
            var baggedItemService = new BaggedItemService(baggedItemRep, userRep, itemRep);

            // ASSERT //
            Assert.Throws <DuplicateSqlPrimaryException>(() =>
                                                         baggedItemService.AddToBag(1, 1, CreateInputDtoAddItemToBag(1)));
        }