public void Add_AddsEmployeeAndReturnsARedirect_WhenModelStateIsValid()
        {
            //Arrange
            var mockPowerSupplyService = new Mock <IService <IRepository <PowerSupply>, PowerSupply> >();

            mockPowerSupplyService.Setup(repo => repo.GetByIdAsync(1)).ReturnsAsync(GetPowerSupply())
            .Verifiable();
            var httpContext = new DefaultHttpContext();
            var tempData    = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>());
            var controller  = new PowerSupplyController(mockPowerSupplyService.Object)
            {
                TempData = tempData
            };

            controller.ModelState.AddModelError("Quantity", "Required");
            var inputModel = new PCItemInputModel()
            {
                Id = 1, Quantity = 1
            };

            // Act
            var result = controller.Add(inputModel);

            // Assert
            Assert.IsType <JsonResult>(result.Result);
            mockPowerSupplyService.Verify();
        }
        public void Add_ReturnsBadRequestResult_WhenModelStateIsInvalid()
        {
            // Arrange
            var mockPowerSupplyService = new Mock <IService <IRepository <PowerSupply>, PowerSupply> >();
            var inputModel             = new PCItemInputModel()
            {
                Id = 0, Quantity = 0
            };
            var controller = new PowerSupplyController(mockPowerSupplyService.Object);

            controller.ModelState.AddModelError("Quantity", "Required");

            // Act
            var result = controller.Add(inputModel);

            // Assert
            var badRequestResult = Assert.IsType <BadRequestResult>(result.Result);
        }
        public async Task Index_ReturnsAViewResult_WithAListOfPowerSupplys()
        {
            // Arrange
            var mockPowerSupplyService = new Mock <IService <IRepository <PowerSupply>, PowerSupply> >();

            mockPowerSupplyService.Setup(repo => repo.GetAllAsync())
            .ReturnsAsync(GetTestPowerSupplys());
            var controller = new PowerSupplyController(mockPowerSupplyService.Object);

            // Act
            var result = await controller.Index();

            // Assert
            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <IEnumerable <PowerSupply> >(
                viewResult.ViewData.Model);

            Assert.Equal(2, model.Count());
        }