public void Copy_should_create_and_save_a_copy_of_the_product() { const int productId = 5; const int copiedId = 7; var originalProduct = new Product { Id = productId }; var copiedProduct = new Product(); productCopyService.Stub(s => s.Copy(originalProduct)).Return(copiedProduct); productRepository.SaveOrUpdateDelegate = product => { product.Id = copiedId; }; productCopyController.Copy(originalProduct) .ReturnsRedirectToRouteResult() .ToController("Product") .ToAction("Edit") .WithRouteValue("id", "7"); unitOfWork.AssertWasCalled(u => u.Commit()); }