public void DeleteContact_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); contacts.Setup(d => d.Find(It.IsAny <object>())).Returns <object[]>((keyValues) => { return(contacts.Object.SingleOrDefault(product => product.Id == (int)keyValues.Single())); }); 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); var result = controller.DeleteEmployeeContact(3) 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 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); }