コード例 #1
0
        public async Task BasketViewModelService_userWithoutBaskets_createBasket()
        {
            var basketRepository = new Mock <IAsyncRepository <Basket> >();
            var uriComposer      = new Mock <IUriComposer>();
            var itemRepository   = new Mock <IAsyncRepository <CatalogItem> >();

            var givenUserName = "******";
            var givenBasketId = 0;
            var givenBasket   = new Basket
            {
                Id      = givenBasketId,
                BuyerId = givenUserName
            };

            basketRepository.Setup(x => x.ListAsync(It.IsAny <BasketWithItemsSpecification>()))
            .ReturnsAsync(new List <Basket>());
            basketRepository.Setup(x => x.AddAsync(It.IsAny <Basket>()))
            .ReturnsAsync(givenBasket);

            var viewModel = new BasketViewModelService(basketRepository.Object, itemRepository.Object, uriComposer.Object);

            var resultBasket = await viewModel.GetOrCreateBasketForUser(givenUserName);

            resultBasket.Id.Should().Be(givenBasketId);
            resultBasket.BuyerId.Should().Be(givenUserName);
            resultBasket.Items.Should().BeEmpty();
        }
コード例 #2
0
        public async Task GetBasket_Not_Exist_Basket_Test()
        {
            var basketViewModelService = new BasketViewModelService(_basketRepository.Object, _itemRepository.Object);

            var result = await basketViewModelService.GetBasket(_username);

            _basketRepository.Verify(x => x.AddAsync(It.IsAny <Basket>()));
            Assert.IsType <BasketModel>(result);
            Assert.Equal(_username, result.OwnerId);
        }
コード例 #3
0
        public async Task GetBasket_Basket_Test()
        {
            var basketViewModelService = new BasketViewModelService(_basketRepository.Object, _itemRepository.Object);

            _baskets.Add(new Basket(_username));

            var result = await basketViewModelService.GetBasket(_username);

            Assert.IsType <BasketModel>(result);
            Assert.Equal(_username, result.OwnerId);
        }
コード例 #4
0
        public async Task BasketViewModelService_userWithBaskets_createBasketViewModel()
        {
            var basketRepository = new Mock <IAsyncRepository <Basket> >();
            var uriComposer      = new Mock <IUriComposer>();
            var itemRepository   = new Mock <IAsyncRepository <CatalogItem> >();

            var givenUserName        = "******";
            var givenBasketId        = 0;
            var givenCatalogItemName = "CatalogItem";
            var givenCatalogItemId   = 512;
            var givenCatalogItemId2  = 112;
            var givenBasket          = new Basket
            {
                Id      = givenBasketId,
                BuyerId = givenUserName,
            };

            givenBasket.AddItem(givenCatalogItemId, 20);
            givenBasket.AddItem(givenCatalogItemId2, 10, 10);
            var givenBaskets = new List <Basket>
            {
                givenBasket
            };

            var givenCatalogItem = new CatalogItem()
            {
                Id   = givenCatalogItemId,
                Name = givenCatalogItemName
            };

            var givenCatalogItem2 = new CatalogItem()
            {
                Id   = givenCatalogItemId2,
                Name = givenCatalogItemName
            };
            var givenUri = "http://uri.com/";

            basketRepository.Setup(x => x.ListAsync(It.IsAny <BasketWithItemsSpecification>()))
            .ReturnsAsync(givenBaskets);
            basketRepository.Setup(x => x.AddAsync(It.IsAny <Basket>()))
            .ReturnsAsync(givenBasket);
            itemRepository.Setup(x => x.GetByIdAsync(givenCatalogItemId))
            .ReturnsAsync(givenCatalogItem);
            itemRepository.Setup(x => x.GetByIdAsync(givenCatalogItemId2))
            .ReturnsAsync(givenCatalogItem2);

            uriComposer.Setup(x => x.ComposePicUri(It.IsAny <string>()))
            .Returns(givenUri);

            var viewModel = new BasketViewModelService(basketRepository.Object, itemRepository.Object, uriComposer.Object);

            var resultBasket = await viewModel.GetOrCreateBasketForUser(givenUserName);

            resultBasket.Id.Should().Be(givenBasketId);
            resultBasket.BuyerId.Should().Be(givenUserName);
            resultBasket.Items.Should().HaveCount(2);

            resultBasket.Items[0].Id.Should().Be(0);
            resultBasket.Items[0].CatalogItemId.Should().Be(givenCatalogItemId);
            resultBasket.Items[0].ProductName.Should().Be(givenCatalogItemName);
            resultBasket.Items[0].Quantity.Should().Be(1);
            resultBasket.Items[0].PictureUrl.Should().Be(givenUri);

            resultBasket.Items[1].Id.Should().Be(0);
            resultBasket.Items[1].CatalogItemId.Should().Be(givenCatalogItemId2);
            resultBasket.Items[1].ProductName.Should().Be(givenCatalogItemName);
            resultBasket.Items[1].Quantity.Should().Be(10);
            resultBasket.Items[1].PictureUrl.Should().Be(givenUri);
        }