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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }