public void FindByVehicleInfo_ShouldReturnInternalServerErrorAndLogError_WhenVehiclesServiceIsNull() { var controller = new ProductsController(null, null, null, null, null, mockedLogger.Object); var result = controller.FindByVehicleInfo(null); Assert.IsInstanceOfType(result, typeof(InternalServerErrorResult)); mockedLogger.Verify(x => x.LogError(It.IsAny <Exception>(), "", controllerName, "FindByVehicleInfo")); }
public void FindByVehicleInfo_ShouldReturnCorrectProducts() { mapper.Execute(); string testProductType = "windscreen"; VehicleGlassRequestModel request = new VehicleGlassRequestModel() { MakeId = 1, ProductType = testProductType }; Vehicle vehicle = new Vehicle() { MakeId = 1 }; var glasses = new List <VehicleGlass>() { new VehicleGlass() { Id = 1 }, new VehicleGlass() { Id = 2 }, new VehicleGlass() { Id = 3 } }.AsQueryable(); var vehiclesMock = new Mock <IVehiclesService>(); vehiclesMock.Setup(x => x.GetVehicleByMakeModelAndBodyTypeIds(request.MakeId, null, null)).Returns(vehicle); vehiclesMock.Setup(x => x.GetApplicableGLassesByProductType(vehicle, testProductType)).Returns(glasses); var controller = new ProductsController(null, vehiclesMock.Object, null, null, null, null); var result = controller.FindByVehicleInfo(request); Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <List <VehicleGlassShortResponseModel> >)); var responseContent = ((OkNegotiatedContentResult <List <VehicleGlassShortResponseModel> >)result).Content; Assert.AreEqual(responseContent.ToList().Count, 3); Assert.AreEqual(responseContent[0].Id, 1); Assert.AreEqual(responseContent[1].Id, 2); Assert.AreEqual(responseContent[2].Id, 3); vehiclesMock.VerifyAll(); vehiclesMock.Verify(x => x.GetApplicableGLasses(It.IsAny <Vehicle>()), Times.Never); }