public void GetInventoryPartFromId_WhenIdExists()
        {
            InventoryPartDto        expectedObject = MockObjectsUtil.GetMockInventoryPart(1);
            Mock <InventoryContext> mockDbContext  = new Mock <InventoryContext>();
            List <InventoryPartDto> data           = new List <InventoryPartDto>()
            {
                expectedObject
            };
            Mock <DbSet <InventoryPartDto> > mockSet = new Mock <DbSet <InventoryPartDto> >();

            mockSet.As <IQueryable <InventoryPartDto> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());
            mockSet.As <IQueryable <InventoryPartDto> >().Setup(m => m.Provider)
            .Returns(data.AsQueryable().Provider);
            mockSet.As <IQueryable <InventoryPartDto> >().Setup(m => m.Expression)
            .Returns(data.AsQueryable().Expression);
            mockSet.As <IQueryable <InventoryPartDto> >().Setup(m => m.ElementType)
            .Returns(data.AsQueryable().ElementType);
            mockSet.Setup(m => m.Find(It.IsAny <object[]>()))
            .Returns <object[]>(ids => data.FirstOrDefault(d => d.ID == (int)ids[0]));

            mockDbContext.Setup(x => x.Set <InventoryPartDto>()).Returns(mockSet.Object);
            mockDbContext.Setup(c => c.InventoryParts).Returns(mockSet.Object);

            InventoryPartManager manager = new InventoryPartManager(mockDbContext.Object);
            InventoryPartView    result  = manager.GetInventoryPartFromId(1);

            Assert.AreEqual(expectedObject.ID, result.ID);
        }
        public void GetInventoryPartsTest_WhenItemsExists()
        {
            Mock <InventoryContext> mockDbContext = new Mock <InventoryContext>();
            List <InventoryPartDto> data          = new List <InventoryPartDto>()
            {
                MockObjectsUtil.GetMockInventoryPart(1)
            };
            Mock <DbSet <InventoryPartDto> > mockSet = new Mock <DbSet <InventoryPartDto> >();

            mockSet.As <IQueryable <InventoryPartDto> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());
            mockSet.As <IQueryable <InventoryPartDto> >().Setup(m => m.Provider)
            .Returns(data.AsQueryable().Provider);
            mockSet.As <IQueryable <InventoryPartDto> >().Setup(m => m.Expression)
            .Returns(data.AsQueryable().Expression);
            mockSet.As <IQueryable <InventoryPartDto> >().Setup(m => m.ElementType).Returns(data.AsQueryable().ElementType);

            mockDbContext.Setup(x => x.Set <InventoryPartDto>()).Returns(mockSet.Object);
            mockDbContext.Setup(c => c.InventoryParts).Returns(mockSet.Object);

            InventoryPartManager            manager    = new InventoryPartManager(mockDbContext.Object);
            IEnumerable <InventoryPartView> viewObects = manager.GetInventoryParts("name_desc", "");

            Assert.IsNotNull(viewObects);
            Assert.AreEqual(1, viewObects.Count());
        }
        public void InsertInventoryPart_WhenInputExists()
        {
            Mock <InventoryContext> mockDbContext = new Mock <InventoryContext>();
            List <InventoryPartDto> data          = new List <InventoryPartDto>()
            {
                MockObjectsUtil.GetMockInventoryPart(1)
            };
            Mock <DbSet <InventoryPartDto> > mockSet = new Mock <DbSet <InventoryPartDto> >();

            mockSet.As <IQueryable <InventoryPartDto> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

            mockDbContext.Setup(x => x.Set <InventoryPartDto>()).Returns(mockSet.Object);
            mockDbContext.Setup(c => c.InventoryParts).Returns(mockSet.Object);
        }
        public void TestIndex_whenItemsNotExists()
        {
            List <InventoryPartView> data = new List <InventoryPartView>()
            {
                MockObjectsUtil.GetMockInventoryPartView(1)
            };
            Mock <InventoryPartManager> mockManager = new Mock <InventoryPartManager>();

            mockManager.Setup(x => x.GetInventoryParts(It.IsAny <string>(), It.IsAny <string>())).Returns(data);
            InventoryPartsController controller = new InventoryPartsController(mockManager.Object);
            ViewResult result = controller.Index("name_desc", "", "", null) as ViewResult;

            Assert.IsNotNull(result);
        }
        public void TestDeleteConfirmed_ItemDoesNotExists()
        {
            List <InventoryPartView> data = new List <InventoryPartView>()
            {
                MockObjectsUtil.GetMockInventoryPartView(1)
            };
            Mock <InventoryPartManager> mockManager = new Mock <InventoryPartManager>();

            mockManager.Setup(x => x.DeleteInventoryPart(It.IsAny <InventoryPartView>()));
            InventoryPartsController controller = new InventoryPartsController(mockManager.Object);
            ViewResult result = controller.DeleteConfirmed(2) as ViewResult;

            Assert.IsNull(result);
        }
        public void TestDelete_WhenIdIsNull()
        {
            List <InventoryPartView> data = new List <InventoryPartView>()
            {
                MockObjectsUtil.GetMockInventoryPartView(1)
            };
            Mock <InventoryPartManager> mockManager = new Mock <InventoryPartManager>();

            mockManager.Setup(x => x.DeleteInventoryPart(It.IsAny <InventoryPartView>()));
            InventoryPartsController controller = new InventoryPartsController(mockManager.Object);
            HttpStatusCodeResult     result     = controller.Delete((int?)null) as HttpStatusCodeResult;

            Assert.AreEqual(400, result.StatusCode);
        }
        public void TestDetails_WhenIdIsNull()
        {
            InventoryPartView        expectedObject = MockObjectsUtil.GetMockInventoryPartView(1);
            List <InventoryPartView> data           = new List <InventoryPartView>()
            {
                MockObjectsUtil.GetMockInventoryPartView(1)
            };
            Mock <InventoryPartManager> mockManager = new Mock <InventoryPartManager>();

            mockManager.Setup(x => x.GetInventoryPartFromId(It.IsAny <int?>())).Returns(expectedObject);
            InventoryPartsController controller = new InventoryPartsController(mockManager.Object);
            HttpStatusCodeResult     result     = controller.Details(null) as HttpStatusCodeResult;

            Assert.AreEqual(400, result.StatusCode);
        }
        public void TestDetails_WhenItemNotExists()
        {
            InventoryPartView        expectedObject = null;
            List <InventoryPartView> data           = new List <InventoryPartView>()
            {
                MockObjectsUtil.GetMockInventoryPartView(1)
            };
            Mock <InventoryPartManager> mockManager = new Mock <InventoryPartManager>();

            mockManager.Setup(x => x.GetInventoryPartFromId(It.IsAny <int?>())).Returns(expectedObject);
            InventoryPartsController controller = new InventoryPartsController(mockManager.Object);
            ViewResult result = controller.Details(2) as ViewResult;

            Assert.IsNull(result);
        }
        public void TestEdit_WhenItemNotExists()
        {
            InventoryPartView        expectedObject = MockObjectsUtil.GetMockInventoryPartView(1);
            List <InventoryPartView> data           = new List <InventoryPartView>()
            {
                MockObjectsUtil.GetMockInventoryPartView(1)
            };
            Mock <InventoryPartManager> mockManager = new Mock <InventoryPartManager>();

            mockManager.Setup(x => x.UpdateInventoryPart(It.IsAny <InventoryPartView>()));
            InventoryPartsController controller = new InventoryPartsController(mockManager.Object);
            ViewResult result = controller.Edit(2) as ViewResult;

            Assert.IsNull(result);
        }
        public void TestCreate_EmptyParameter()
        {
            InventoryPartView        expectedObject = MockObjectsUtil.GetMockInventoryPartView(1);
            List <InventoryPartView> data           = new List <InventoryPartView>()
            {
                MockObjectsUtil.GetMockInventoryPartView(1)
            };
            Mock <InventoryPartManager> mockManager = new Mock <InventoryPartManager>();

            mockManager.Setup(x => x.InsertInventoryPart(It.IsAny <InventoryPartView>()));
            InventoryPartsController controller = new InventoryPartsController(mockManager.Object);
            ViewResult result = controller.Create() as ViewResult;

            Assert.IsNotNull(result);
            Assert.IsNull(result.Model);
        }
        public void TestDetails_WhenItemExists()
        {
            InventoryPartView        expectedObject = MockObjectsUtil.GetMockInventoryPartView(1);
            List <InventoryPartView> data           = new List <InventoryPartView>()
            {
                MockObjectsUtil.GetMockInventoryPartView(1)
            };
            Mock <InventoryPartManager> mockManager = new Mock <InventoryPartManager>();

            mockManager.Setup(x => x.GetInventoryPartFromId(It.IsAny <int?>())).Returns(expectedObject);
            InventoryPartsController controller = new InventoryPartsController(mockManager.Object);
            ViewResult result = controller.Details(1) as ViewResult;

            Assert.IsNotNull(result);
            InventoryPartView actualObject = (InventoryPartView)result.Model;

            Assert.AreEqual(expectedObject.ID, actualObject.ID);
        }
        public void TestCreate_WithParameters()
        {
            InventoryPartView inputObject = new InventoryPartView()
            {
                ID                = 2,
                Name              = "test 2",
                ReorderLevel      = 50,
                AvailabeNoOfUnits = 100,
                UnitPrice         = 10
            };
            InventoryPartView        expectedObject = MockObjectsUtil.GetMockInventoryPartView(1);
            List <InventoryPartView> data           = new List <InventoryPartView>()
            {
                MockObjectsUtil.GetMockInventoryPartView(1)
            };
            Mock <InventoryPartManager> mockManager = new Mock <InventoryPartManager>();

            mockManager.Setup(x => x.InsertInventoryPart(It.IsAny <InventoryPartView>()));
            InventoryPartsController controller = new InventoryPartsController(mockManager.Object);
            ViewResult result = controller.Create(inputObject) as ViewResult;

            Assert.IsNull(result);
        }