コード例 #1
0
        public void Handle_Changes_All_Product_Categories()
        {
            //Arrange
            const int catId = 3;
            var category = new Category {Name = "sharp"};
            category.SetIdTo(catId);
            var productIds = new List<int> { 2, 3, 4 };
            var product1 = new Product { Category = new Category() };
            product1.SetIdTo(2);
            var product2 = new Product { Category = new Category() };
            product2.SetIdTo(3);
            var product3 = new Product { Category = new Category() };
            product3.SetIdTo(4);
            _categoryTasks.Expect(x => x.Get(catId)).Return(category);
            _productTasks.Expect(x => x.Get(2)).Return(product1);
            _productTasks.Expect(x => x.Get(3)).Return(product2);
            _productTasks.Expect(x => x.Get(4)).Return(product3);
            _productTasks.Expect(x => x.CreateOrUpdate(Arg<Product>.Matches(y => y.Id == 2 && y.Category.Name == "sharp"))).Return(product1);
            _productTasks.Expect(x => x.CreateOrUpdate(Arg<Product>.Matches(y => y.Id == 3 && y.Category.Name == "sharp"))).Return(product2);
            _productTasks.Expect(x => x.CreateOrUpdate(Arg<Product>.Matches(y => y.Id == 4 && y.Category.Name == "sharp"))).Return(product3);

            //Act
            _handler.Handle(new MassCategoryChangeCommand(catId, productIds));

            //Assert
            _categoryTasks.VerifyAllExpectations();
            _productTasks.VerifyAllExpectations();
        }
コード例 #2
0
        public void CreateOrUpdate_Does_Not_Set_Created_With_Existing_And_Saves()
        {
            //Arrange
            var product = new Product();
            product.SetIdTo(2);
            _repository.Expect(x => x.SaveOrUpdate(product));

            //Act
            var updated = _tasks.CreateOrUpdate(product);

            //Assert
            Assert.AreEqual(DateTime.MinValue, updated.Created.Date);
            _repository.VerifyAllExpectations();
        }
コード例 #3
0
        public void Delete_Id_Deletes_Product()
        {
            //Arrange
            const int Id = 4;
            var product = new Product();
            product.SetIdTo(Id);
            _repository.Expect(x => x.Get(Id)).Return(product);
            _repository.Expect(x => x.Delete(product));

            //Act
            _tasks.Delete(Id);

            //Assert
            _repository.VerifyAllExpectations();
        }
コード例 #4
0
        public void Handle_Changes_Does_Not_Change_Category_If_Same()
        {
            //Arrange
            const int catId = 3;
            var category = new Category {Name = "sharp"};
            category.SetIdTo(catId);
            var productIds = new List<int> { 2 };
            var product1 = new Product {Category = category};
            product1.SetIdTo(2);
            _categoryTasks.Expect(x => x.Get(catId)).Return(category);
            _productTasks.Expect(x => x.Get(2)).Return(product1);
            _productTasks.AssertWasNotCalled(x => x.CreateOrUpdate(Arg<Product>.Is.Anything));

            //Act
            _handler.Handle(new MassCategoryChangeCommand(catId, productIds));

            //Assert
            _categoryTasks.VerifyAllExpectations();
            _productTasks.VerifyAllExpectations();
        }
コード例 #5
0
        public void Edit_Validates_Bad_Model_And_Forwards_To_Edit()
        {
            //Arrange
            var routeData = new RouteData();
            var httpContext = MockRepository.GenerateStub<HttpContextBase>();
            var controllerContext = MockRepository.GenerateStub<ControllerContext>(httpContext, routeData, _controller);
            _controller.ControllerContext = controllerContext;
            _controller.ValueProvider = new FormCollection().ToValueProvider();
            var product = new Product {Category = new Category()};
            product.SetIdTo(2);
            _categoryTasks.Expect(x => x.GetAll()).Return(new List<Category> { new Category() });
            _captchaTasks.Expect(x => x.Validate(ConfigurationManager.AppSettings["ReCaptchaPrivate"])).Return(true);

            //Act
            var result = _controller.Edit(product) as ViewResult;

            //Assert
            Assert.AreEqual(string.Empty, result.ViewName);
            Assert.IsInstanceOfType<ProductEditViewModel>(result.Model);
            Assert.AreEqual(2, (result.Model as ProductEditViewModel).Product.Id);
            Assert.AreEqual(1, (result.Model as ProductEditViewModel).Categories.Count);
            _categoryTasks.VerifyAllExpectations();
            _captchaTasks.VerifyAllExpectations();
        }
コード例 #6
0
        public void Edit_Forwards_To_View_With_Product()
        {
            //Arrange
            var product = new Product {Category = new Category()};
            product.SetIdTo(3);
            _productTasks.Expect(x => x.Get(3)).Return(product);
            _categoryTasks.Expect(x => x.GetAll()).Return(new List<Category> {new Category()});

            //Act
            var result = _controller.Edit(3) as ViewResult;

            //Assert
            Assert.AreEqual(string.Empty, result.ViewName);
            Assert.IsInstanceOfType<ProductEditViewModel>(result.Model);
            Assert.AreEqual(3, (result.Model as ProductEditViewModel).Product.Id);
            Assert.AreEqual(1, (result.Model as ProductEditViewModel).Categories.Count);
            _productTasks.VerifyAllExpectations();
        }
コード例 #7
0
        public void Delete_Deletes_Product_And_Redirects_To_Index()
        {
            //Arrange
            var product = new Product();
            product.SetIdTo(3);
            _productTasks.Expect(x => x.Delete(3));

            //Act
            var result = _controller.Delete(3) as RedirectToRouteResult;

            //Assert
            Assert.AreEqual("Index", result.RouteValues["Action"]);
            _productTasks.VerifyAllExpectations();
        }
コード例 #8
0
        public void Get_Returns_Product_With_Correct_Id()
        {
            //Arrange
            const int Id = 4;
            var product = new Product();
            product.SetIdTo(Id);
            _repository.Expect(x => x.Get(Id)).Return(product);

            //Act
            var gotten = _tasks.Get(Id);

            //Assert
            Assert.AreEqual(Id, gotten.Id);
            _repository.VerifyAllExpectations();
        }