public void PutContact_ShouldReturnOk() { var contactsTestData = new List <EmployeeContact>() { new EmployeeContact { Id = 1, EmployeeId = 2 }, new EmployeeContact { Id = 2, Deleted = true, EmployeeId = 2 }, new EmployeeContact { Id = 3, EmployeeId = 3 } }; var contacts = MockHelper.MockDbSet(contactsTestData); var dbContext = new Mock <IAppDbContext>(); dbContext.Setup(m => m.EmployeeContacts).Returns(contacts.Object); dbContext.Setup(d => d.Set <EmployeeContact>()).Returns(contacts.Object); var factory = new Mock <IDbContextFactory>(); factory.Setup(m => m.CreateDbContext()).Returns(dbContext.Object); IDbContextFactory fac = factory.Object; var controller = new GTIWebAPI.Controllers.EmployeeContactsController(fac); EmployeeContact contact = new EmployeeContact { Id = 3, EmployeeId = 25 }; var result = controller.PutEmployeeContact(3, contact.ToDTO()) as OkNegotiatedContentResult <EmployeeContactDTO>; Assert.IsNotNull(result); Assert.AreEqual(3, result.Content.Id); }
public void PutContact_ShouldFail_WhenDifferentID() { var contactsTestData = new List <EmployeeContact>() { new EmployeeContact { Id = 1, EmployeeId = 2 }, new EmployeeContact { Id = 2, Deleted = true, EmployeeId = 2 }, new EmployeeContact { Id = 3, EmployeeId = 3 } }; var contacts = MockHelper.MockDbSet(contactsTestData); var dbContext = new Mock <IAppDbContext>(); dbContext.Setup(m => m.EmployeeContacts).Returns(contacts.Object); dbContext.Setup(d => d.Set <EmployeeContact>()).Returns(contacts.Object); var factory = new Mock <IDbContextFactory>(); factory.Setup(m => m.CreateDbContext()).Returns(dbContext.Object); IDbContextFactory fac = factory.Object; var controller = new EmployeeContactsController(fac); EmployeeContact contact = new EmployeeContact { Id = 4, EmployeeId = 25 }; var badresult = controller.PutEmployeeContact(999, contact.ToDTO()); Assert.IsInstanceOfType(badresult, typeof(BadRequestResult)); }
public IHttpActionResult DeleteEmployeeContact(int id) { try { UnitOfWork unitOfWork = new UnitOfWork(factory); EmployeeContact employeeContact = unitOfWork.EmployeeContactsRepository.Get(d => d.Id == id, includeProperties: "ContactType").FirstOrDefault(); employeeContact.Deleted = true; unitOfWork.EmployeeContactsRepository.Update(employeeContact); unitOfWork.Save(); EmployeeContactDTO dto = employeeContact.ToDTO(); return(Ok(dto)); } catch (NotFoundException nfe) { return(NotFound()); } catch (ConflictException ce) { return(Conflict()); } catch (Exception e) { return(BadRequest(e.Message)); } }
public void PostContact_ShouldReturnSameContact() { var contactsTestData = new List <EmployeeContact>() { new EmployeeContact { Id = 1, EmployeeId = 2 }, new EmployeeContact { Id = 2, Deleted = true, EmployeeId = 2 }, new EmployeeContact { Id = 3, EmployeeId = 3 } }; var contacts = MockHelper.MockDbSet(contactsTestData); contacts.Setup(d => d.Find(It.IsAny <object>())).Returns <object[]>((keyValues) => { return(contacts.Object.SingleOrDefault(product => product.Id == (int)keyValues.Single())); }); contacts.Setup(d => d.Add(It.IsAny <EmployeeContact>())).Returns <EmployeeContact>((contact) => { contactsTestData.Add(contact); contacts = MockHelper.MockDbSet(contactsTestData); return(contact); }); var dbContext = new Mock <IAppDbContext>(); dbContext.Setup(m => m.EmployeeContacts).Returns(contacts.Object); dbContext.Setup(d => d.Set <EmployeeContact>()).Returns(contacts.Object); dbContext.Setup(d => d.SaveChanges()).Returns(0); dbContext.Setup(d => d.ExecuteStoredProcedure <int>(It.IsAny <string>(), It.IsAny <object[]>())) .Returns <string, object[]>((query, parameters) => { List <int> list = new List <int>(); if (query.Contains("NewTableId")) { int i = contacts.Object.Max(d => d.Id) + 1; list.Add(i); } else { list.Add(0); } return(list); }); var factory = new Mock <IDbContextFactory>(); factory.Setup(m => m.CreateDbContext()).Returns(dbContext.Object); IDbContextFactory fac = factory.Object; var controller = new EmployeeContactsController(fac); var item = new EmployeeContact { Id = 4, EmployeeId = 25, ContactTypeId = 3 }; var result = controller.PostEmployeeContact(item.ToDTO()) as CreatedAtRouteNegotiatedContentResult <EmployeeContactDTO>; Assert.IsNotNull(result); Assert.AreEqual(result.RouteName, "GetEmployeeContact"); Assert.AreEqual(result.RouteValues["id"], result.Content.Id); Assert.AreEqual(result.Content.ContactTypeId, item.ContactTypeId); }