public IHttpActionResult GetVehicleBodyTypeByMakeAndModelIds(VehicleBodyTypesRequestModel requestModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var bodyTypeIds = this.vehicles.GetBodyTypeIdsByModelIdAndMakeId(requestModel.MakeId, requestModel.ModelId); List <VehicleBodyTypeResponseModel> bodyTypes = new List <VehicleBodyTypeResponseModel>(); foreach (var bodyTypeId in bodyTypeIds) { if (bodyTypeId != null) { var bodyType = this.Mapper.Map <VehicleBodyTypeResponseModel>(this.bodyTypes.GetById(bodyTypeId)); bodyTypes.Add(bodyType); } } return(this.Ok(bodyTypes.OrderBy(x => x.Code))); } catch (Exception e) { HandlExceptionLogging(e, "", controllerName); return(InternalServerError()); } }
public void GetVehicleBodyTypeByMakeAndModelIds_ShouldReturnInternalServerErrorAndLogError_WhenVehiclesServiceisNull() { var bodyTypesMock = new Mock <IVehicleBodyTypesService>(); var controller = new BodyTypesController(bodyTypesMock.Object, null, mockedLogger.Object); var model = new VehicleBodyTypesRequestModel() { MakeId = 1, ModelId = 3 }; var result = controller.GetVehicleBodyTypeByMakeAndModelIds(model); Assert.IsInstanceOfType(result, typeof(InternalServerErrorResult)); mockedLogger.Verify(x => x.LogError(It.IsAny <Exception>(), "", controllerName, "GetVehicleBodyTypeByMakeAndModelIds")); }
public void GetVehicleBodyTypeByMakeAndModelIds_ShouldReturnAllBodyTypes() { mapper.Execute(); var vehiclesMock = new Mock <IVehiclesService>(); List <int?> bodyTypeIds = new List <int?>() { 1, 2, null }; vehiclesMock.Setup(v => v.GetBodyTypeIdsByModelIdAndMakeId(1, 3)) .Returns(bodyTypeIds); var bodyTypesMock = new Mock <IVehicleBodyTypesService>(); VehicleBodyType bodyType1 = new VehicleBodyType() { Id = 1, Code = "H5", Description = "Hatcback 5dr" }; bodyTypesMock.Setup(v => v.GetById(1)).Returns(bodyType1); VehicleBodyType bodyType2 = new VehicleBodyType() { Id = 2, Code = "H3", Description = "Hatcback 3dr" }; bodyTypesMock.Setup(v => v.GetById(2)).Returns(bodyType2); var controller = new BodyTypesController(bodyTypesMock.Object, vehiclesMock.Object, null); var model = new VehicleBodyTypesRequestModel() { MakeId = 1, ModelId = 3 }; var result = controller.GetVehicleBodyTypeByMakeAndModelIds(model); Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <IOrderedEnumerable <VehicleBodyTypeResponseModel> >)); var responseContent = ((OkNegotiatedContentResult <IOrderedEnumerable <VehicleBodyTypeResponseModel> >)result).Content; Assert.AreEqual(responseContent.ToList().Count, 2); Assert.AreEqual(responseContent.First().Id, 2); Assert.AreEqual(responseContent.Last().Id, 1); vehiclesMock.VerifyAll(); bodyTypesMock.VerifyAll(); }