public void DeleteProject_Calls_Repository_Delete() { int itemToDelete = 1; DonationManagementController controller = SetupControllerForTests(mockDonorRepo, mockDonationRepo, mockProjectRepo); controller.DeleteProject(itemToDelete); mockProjectRepo.Verify(x => x.DeleteProject(itemToDelete), Times.Once(), "Controller should have called Delete on repository"); }
public void The_PostProject_Action_returns_created_statuscode() { // Arrange DonationManagementController controller = SetupControllerForTests(mockDonorRepo, mockDonationRepo, mockProjectRepo); // Act HttpResponseMessage result = controller.Post(projects.SingleOrDefault(u => u.ProjectID == 1)); // Assert Assert.IsNotNull(result, "Should have returned a HttpResponseMessage"); Assert.IsTrue(result.IsSuccessStatusCode, "Status Code Should be success"); Assert.AreEqual(HttpStatusCode.Created, result.StatusCode, "Invalid status code"); }
public void GetProject_Action_Returns_Valid_Project_Object() { // Arrange DonationManagementController controller = SetupControllerForTests(mockDonorRepo, mockDonationRepo, mockProjectRepo); // Act Project result = controller.GetProject(1); // Assert Assert.IsInstanceOfType(typeof(Project), result, "The Controller.GetProject(1) return is not of type Models.Project"); Assert.IsNotNull(result, "The Controller.GetProject(1) return is null"); }
public void The_PutProject_Action_returns_Ok_statuscode_When_The_Project_Exists() { // Arrange DonationManagementController controller = SetupControllerForTests(mockDonorRepo, mockDonationRepo, mockProjectRepo); Project project = projects.SingleOrDefault(u => u.ProjectID == 2); // Act HttpResponseMessage result = controller.Put(2, project); // Assert Assert.IsNotNull(result, "Should have returned a HttpResponseMessage"); Assert.IsTrue(result.IsSuccessStatusCode, "Status Code Should be success"); Assert.AreEqual(HttpStatusCode.OK, result.StatusCode, "Invalid status code"); }
public void The_PutDonor_Action_returns_NotFound_statuscode_When_The_Donor_Does_NOT_Exists() { // Arrange DonationManagementController controller = SetupControllerForTests(mockDonorRepo, mockDonationRepo, mockProjectRepo); Donor donor = donors.SingleOrDefault(u => u.DonorID == 2); int fakeId = 345; // Act HttpResponseMessage result = controller.Put(fakeId, donor); // Assert Assert.IsInstanceOfType(typeof(HttpResponseMessage), result, "Should have returned an HttpResponseMessage"); Assert.IsNotNull(result, "Should have returned a HttpResponseMessage"); Assert.IsFalse(result.IsSuccessStatusCode, "Status Code Should be success"); Assert.AreEqual(HttpStatusCode.NotModified, result.StatusCode, "Invalid status code"); }
public void GetProjects_Action_Returns_Valid_IEnumerable_Of_Projects() { // Arrange DonationManagementController controller = SetupControllerForTests(mockDonorRepo, mockDonationRepo, mockProjectRepo); // Act IEnumerable <Project> result = controller.GetProjects(); List <Project> res = result.ToList(); // Assert Assert.IsInstanceOfType(typeof(IEnumerable <Project>), result, "The Controller.GetProjects() return is not of type IEnumerable<Project>"); Assert.IsNotNull(result, "The Controller.GetProjects() return is null"); Assert.AreEqual(projects.Count(), res.Count(), string.Format( "The Controller.GetProjects() return count is {0} it's supposed to be {1} (not correct)", res.Count(), projects.Count())); }
public DonationManagementController SetupControllerForTests(Mock <IDonorRepository> donorRepo, Mock <IDonationRepository> donationRepo, Mock <IProjectRepository> projectRepo) { var config = new HttpConfiguration(); var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/donationmanagement"); IHttpRoute route = config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}"); var routeData = new HttpRouteData(route, new HttpRouteValueDictionary { { "controller", "donationmanagement" } }); var controller = new DonationManagementController(donorRepo.Object, donationRepo.Object, projectRepo.Object) { ControllerContext = new HttpControllerContext(config, routeData, request), Request = request }; controller.Request.Properties.Add(HttpPropertyKeys.HttpRouteDataKey, routeData); controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config; return(controller); }