Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
        }