Пример #1
0
        private ShoppingCartModel GetBasketModelWithItemsByUserId(Guid userID)
        {
            ShoppingCartModel      model   = new ShoppingCartModel();
            GetShoppingCartCommand command = new GetShoppingCartCommand {
                UserId = userID
            };

            serviceProcessor.Process(command);
            if (command.Result != null)
            {
                model = MapShoppingCartToModel(command.Result);
            }

            return(model);
        }
Пример #2
0
        public void When_user_is_not_signed_in_and_has_no_cart_Must_return_new_cart_and_store_id_in_session()
        {
            // Arrange

            var session = new Dictionary <string, object>();

            // Act

            var cmd    = new GetShoppingCartCommand(Db, null, session);
            var result = cmd.Execute(GetShoppingCartCommand.FetchMode.GetOrCreate);

            // Assert

            AssertSuccess(result);
            Assert.IsNotNull(result.Value, "Не вернулась корзина");
            Assert.AreEqual(result.Value.Id, session[GetShoppingCartCommand.CART_SESSION_KEY], "Id корзины не сохранился в сессию");
        }
Пример #3
0
        public void When_there_is_no_cart_for_user_Must_create_new()
        {
            // Arrange

            CreateCart(); // просто корзина, не привязанная к пользователю
            var user = CreateUser();

            Db.SaveChanges();

            // Act

            var cmd    = new GetShoppingCartCommand(Db, user);
            var result = cmd.Execute(GetShoppingCartCommand.FetchMode.GetOrCreate);

            // Assert

            AssertSuccess(result);
            Assert.IsNotNull(result.Value, "Не вернулась корзина");
            Assert.AreEqual(user.Id, result.Value.User.Id, "Вернулась чужая корзина");
            Assert.AreEqual(1, Db.ShoppingCarts.Count(c => c.User.Id == user.Id), "Не создалась новая корзина, либо появилась лишняя");
        }
Пример #4
0
        public void When_there_is_cart_for_user_Must_return_existing_cart()
        {
            // Arrange, случай, если корзина есть

            CreateCart();
            var user = CreateUser();
            var cart = CreateCart(user); // тестируемая корзина

            CreateCart();
            Db.SaveChanges();

            // Act

            var cmd    = new GetShoppingCartCommand(Db, user);
            var result = cmd.Execute(GetShoppingCartCommand.FetchMode.Get);

            // Assert

            AssertSuccess(result);
            Assert.IsNotNull(result.Value, "Не вернулась корзина");
            Assert.AreEqual(1, Db.ShoppingCarts.Count(c => c.User.Id == user.Id), "Создалась новая корзина, либо удалилась старая");
            Assert.AreEqual(cart.Id, result.Value.Id, "Вернулась чужая корзина");

            // Arrange2, случай, если корзины нет

            var user2 = CreateUser();

            Db.SaveChanges();

            // Act2

            var cmd2    = new GetShoppingCartCommand(Db, user2);
            var result2 = cmd2.Execute(GetShoppingCartCommand.FetchMode.Get);

            // Assert2
            AssertSuccess(result2);
            Assert.IsNull(result2.Value, "Не вернулся null, если нет корзины");
        }
Пример #5
0
        public void When_user_is_not_signed_in_Must_return_existing_cart_for_session()
        {
            // Arrange, в случае, если корзина существует

            var cart = CreateCart();

            Db.SaveChanges();
            var session = new Dictionary <string, object>();

            session[GetShoppingCartCommand.CART_SESSION_KEY] = cart.Id;

            // Act

            var cmd    = new GetShoppingCartCommand(Db, null, session);
            var result = cmd.Execute(GetShoppingCartCommand.FetchMode.Get);

            // Assert

            AssertSuccess(result);
            Assert.IsNotNull(result.Value, "Не вернулась корзина");
            Assert.AreEqual(cart.Id, result.Value.Id, "Вернулась чужая корзина");

            // Arrange2, в случае, если корзины не существует

            var emptySession = new Dictionary <string, object>();

            // Act2

            var cmd2    = new GetShoppingCartCommand(Db, null, emptySession);
            var result2 = cmd2.Execute(GetShoppingCartCommand.FetchMode.Get);

            // Assert2

            AssertSuccess(result2);
            Assert.IsNull(result2.Value, "Не вернулся null, если нет корзины");
        }