예제 #1
0
        public void ShouldFilterListOfCartsByUserId()
        {
            // Arrange
            var cartService = Substitute.For <CartServiceProvider>();
            var carts1      = new[] { new Cart {
                                          ExternalId = "1001", UserId = "Bob"
                                      } };
            var carts2 = new[] { new Cart {
                                     ExternalId = "1001", UserId = "Stan"
                                 } };
            var carts = carts1.Union(carts2);

            cartService.GetCarts(Arg.Is <GetCartsRequest>(r => r.Shop.Name == "mystore")).Returns(new GetCartsResult {
                Carts = carts
            });
            cartService.GetCarts(Arg.Is <GetCartsRequest>(r => r.Shop.Name == "mystore" && r.UserIds.Contains("Bob"))).Returns(new GetCartsResult {
                Carts = carts1
            });

            CartsController controller = new CartsController(cartService);

            using (new SiteContextSwitcher(new TSiteContext("mystore")))
            {
                // Act
                var result = controller.Get(userId: "Bob");

                // Assert
                result.Count().Should().Be(1);
                result.ElementAt(0).ExternalId.Should().Be("1001");
                result.ElementAt(0).UserId.Should().Be("Bob");
            }
        }
예제 #2
0
        public void ShouldGetListOfCartsForContextShop()
        {
            // Arrange
            var cartService = Substitute.For <CartServiceProvider>();
            var carts       = new[] { new Cart {
                                          ExternalId = "1001"
                                      }, new Cart {
                                          ExternalId = "1002"
                                      } };

            cartService.GetCarts(Arg.Is <GetCartsRequest>(r => r.Shop.Name == "mystore")).Returns(new GetCartsResult {
                Carts = carts
            });

            CartsController controller = new CartsController(cartService);

            using (new SiteContextSwitcher(new TSiteContext("mystore")))
            {
                // Act
                var result = controller.Get();

                // Assert
                result.Count().Should().Be(2);
                result.ElementAt(0).ExternalId.Should().Be("1001");
                result.ElementAt(1).ExternalId.Should().Be("1002");
            }
        }