public void FetchAssetFuelBurnRateSettings_InvalidAssetUIDs_GivesBadRequest() { var request = new AssetFuelBurnRateSettingRequest { AssetUIds = this._injectConfig.AssetUIDs, IdleTargetValue = 5, WorkTargetValue = 10 }; _injectConfig.BuildRepositoryStub(10, request, new List <AssetTargetType> { AssetTargetType.IdlingBurnRateinLiPerHour, AssetTargetType.WorkingBurnRateinLiPerHour }); SetupController(request, Guid.NewGuid(), Guid.NewGuid()); _target.ControllerContext.HttpContext.Request.Body = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new string[] { Guid.Empty.ToString() }))); var result = _target.Fetch().Result; var response = result.Result as JsonResult; var responseObject = response.Value as AssetFuelBurnRateSettingsResponse; Assert.NotNull(response); //Assert.Equal(response.StatusCode, (int)HttpStatusCode.BadRequest); //Assert.NotNull(responseObject.Errors); //Assert.True(responseObject.Errors.Count > 0); //Assert.Equal(responseObject.Errors[0].ErrorCode, (int)ErrorCodes.InvalidAssetUID); //Assert.Equal(responseObject.Errors[0].Message, string.Format(UtilHelpers.GetEnumDescription(ErrorCodes.InvalidAssetUID), Guid.Empty.ToString())); }
// POST api/<controller> public async Task <ActionResult <AssetFuelBurnRateSettingsResponse> > Fetch(List <String> assetUIDs = null) { assetUIDs = await base.ReadRequestContentAsync(assetUIDs); var request = new AssetFuelBurnRateSettingRequest { StartDate = DateTime.Parse(DateTime.UtcNow.ToShortDateString()), CustomerUid = base.GetCustomerContext(Request), UserUid = base.GetUserContext(Request), AssetUIds = assetUIDs, IdleTargetValue = 0, WorkTargetValue = 0, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.IdlingBurnRateinLiPerHour, 0 }, { AssetTargetType.WorkingBurnRateinLiPerHour, 0 } } }; this._loggingService.Info("Fetching Asset Settings Burn Rate for the given request : " + JsonConvert.SerializeObject(request), MethodInfo.GetCurrentMethod().Name); var result = await this._assetSettingsService.Fetch(request); this._loggingService.Debug("Fetching Asset Settings Burn Rate response : " + JsonConvert.SerializeObject(result), MethodInfo.GetCurrentMethod().Name); return(base.SendResponse(HttpStatusCode.OK, new AssetFuelBurnRateSettingsResponse(result.AssetSettingsLists, result.Errors.OfType <AssetErrorInfo>().ToList <AssetErrorInfo>()))); }
public void SaveAssetFuelBurnRateSettings_InvalidAssetUIDInAssetUIDs_GivesBadRequest() { var request = new AssetFuelBurnRateSettingRequest { AssetUIds = new List <string> { Guid.Empty.ToString() }, IdleTargetValue = 5, WorkTargetValue = 10 }; _injectConfig.BuildRepositoryStub(10, request, new List <AssetTargetType> { AssetTargetType.IdlingBurnRateinLiPerHour, AssetTargetType.WorkingBurnRateinLiPerHour }); request.AssetUIds = new List <string>(this._injectConfig.AssetUIDs); request.AssetUIds.Add(Guid.Empty.ToString()); //Invalid AssetUId SetupController(request, Guid.NewGuid(), Guid.NewGuid()); var result = _target.Save(request).Result; var response = result.Result as JsonResult; var responseObject = response.Value as AssetFuelBurnRateSettingsResponse; Assert.NotNull(response); //Assert.Equal(response.StatusCode, (int)HttpStatusCode.OK); //Assert.NotNull(responseObject.Errors); //Assert.True(responseObject.Errors.Count > 0); //Assert.Equal(responseObject.Errors[0].ErrorCode, (int)ErrorCodes.InvalidAssetUID); //Assert.Equal(responseObject.Errors[0].Message, string.Format(UtilHelpers.GetEnumDescription(ErrorCodes.InvalidAssetUID), Guid.Empty.ToString())); }
public void SaveAssetFuelBurnRateSettings_AssetUIDsNull_GivesBadRequest() { var request = new AssetFuelBurnRateSettingRequest { AssetUIds = null, IdleTargetValue = 1, WorkTargetValue = 10 }; _injectConfig.BuildRepositoryStub(10, request, new List <AssetTargetType> { AssetTargetType.IdlingBurnRateinLiPerHour, AssetTargetType.WorkingBurnRateinLiPerHour }); SetupController(request, Guid.NewGuid(), Guid.NewGuid()); var result = _target.Save(request).Result; var response = result.Result as JsonResult; var responseObject = response.Value as AssetFuelBurnRateSettingsResponse; Assert.NotNull(result); Assert.NotNull(response); //Assert.Equal(response.StatusCode, (int)HttpStatusCode.BadRequest); // Assert.NotNull(responseObject.Errors); // Assert.True(responseObject.Errors.Count > 0); // Assert.Equal(responseObject.Errors[0].ErrorCode, (int)ErrorCodes.AssetUIDListNull); // Assert.Equal(responseObject.Errors[0].Message, UtilHelpers.GetEnumDescription(ErrorCodes.AssetUIDListNull)); }
public void Save_InvalidAllAssetUIDs_ThrowsDomainException() { var request = new AssetFuelBurnRateSettingRequest { AssetUIds = null, CustomerUid = this._customerUid, UserUid = this._userUid, IdleTargetValue = 100, WorkTargetValue = 1000, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.IdlingBurnRateinLiPerHour, 100 }, { AssetTargetType.WorkingBurnRateinLiPerHour, 1000 } } }; var invalidAssetUID = new[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() }; try { request.AssetUIds = invalidAssetUID.ToList(); var result = this._assetSettingsService.Save(request).Result; } catch (AggregateException aggregateEx) { Assert.NotNull(aggregateEx.InnerException); var domainEx = (DomainException)aggregateEx.InnerException; Assert.NotNull(domainEx); Assert.NotNull(domainEx.Errors); Assert.Equal(domainEx.Errors.First().ErrorCode, (int)ErrorCodes.InvalidAssetUID); Assert.Equal(domainEx.Errors.First().Message, string.Format(UtilHelpers.GetEnumDescription(ErrorCodes.InvalidAssetUID), string.Join(",", invalidAssetUID))); } }
public void Save_WorkTargetValueIsZero_ThrowsDomainException() { var request = new AssetFuelBurnRateSettingRequest { AssetUIds = new List <string>(this._assetUIDs.Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, IdleTargetValue = -1, WorkTargetValue = 0, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.IdlingBurnRateinLiPerHour, -1 }, { AssetTargetType.WorkingBurnRateinLiPerHour, 0 } } }; try { var result = this._assetSettingsService.Save(request).Result; } catch (AggregateException aggregateEx) { Assert.NotNull(aggregateEx.InnerException); var domainEx = (DomainException)aggregateEx.InnerException; Assert.NotNull(domainEx); Assert.NotNull(domainEx.Errors); Assert.Equal(domainEx.Errors.First().ErrorCode, (int)ErrorCodes.IdleValueShouldNotBeNegative); Assert.Equal(domainEx.Errors.First().Message, UtilHelpers.GetEnumDescription(ErrorCodes.IdleValueShouldNotBeNegative)); } }
public void Save_AssetUIDNull_ThrowsDomainException() { var request = new AssetFuelBurnRateSettingRequest { AssetUIds = null, CustomerUid = this._customerUid, UserUid = this._userUid, IdleTargetValue = 100, WorkTargetValue = 1000, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.IdlingBurnRateinLiPerHour, 100 }, { AssetTargetType.WorkingBurnRateinLiPerHour, 1000 } } }; try { var result = this._assetSettingsService.Save(request).Result; } catch (AggregateException aggregateEx) { Assert.NotNull(aggregateEx.InnerException); var domainEx = (DomainException)aggregateEx.InnerException; Assert.NotNull(domainEx); Assert.NotNull(domainEx.Errors); Assert.Equal(domainEx.Errors.First().ErrorCode, (int)ErrorCodes.AssetUIDListNull); Assert.Equal(domainEx.Errors.First().Message, UtilHelpers.GetEnumDescription(ErrorCodes.AssetUIDListNull)); } }
public void Save_ValidRequest_ThreeOldRecords_ReturnValidResponse() { var request = new AssetFuelBurnRateSettingRequest { AssetUIds = new List <string>(this._assetUIDs.Take(3).Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.IdlingBurnRateinLiPerHour, 100 }, { AssetTargetType.WorkingBurnRateinLiPerHour, 1000 } }, IdleTargetValue = 100, WorkTargetValue = 1000, StartDate = DateTime.Now.Date }; var assetSettingsDtoCloned = new List <AssetSettingsDto>(this._assetSettingsDtos); var assetSettingsDtos = this._assetSettingsDtos.FindAll(y => request.AssetUIds.Contains(y.AssetUID.ToString())); var result = this._assetSettingsService.Save(request).Result; Assert.NotNull(result); this._stubTransactions.Execute(Arg.Any <List <Action> >()); }
private void SetupController(AssetFuelBurnRateSettingRequest request, Guid?customerUID, Guid?userUID) { _target = _injectConfig.Resolve <AssetFuelBurnRateSettingsController>(); _target.ControllerContext = GetMockHttpContext(); if (customerUID != null) { _target.ControllerContext.HttpContext.Request.Headers.Add(Constants.VISIONLINK_CUSTOMERUID, customerUID.ToString()); } if (userUID != null) { _target.ControllerContext.HttpContext.Request.Headers.Add(Constants.USERUID_API, userUID.ToString()); } _target.ControllerContext.HttpContext.Request.Body = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(request))); }
public void SaveAssetFuelBurnRateSettings_UnsetTargetValuesNull_GivesSuccess() { var request = new AssetFuelBurnRateSettingRequest { AssetUIds = this._injectConfig.AssetUIDs, IdleTargetValue = null, WorkTargetValue = null }; _injectConfig.BuildRepositoryStub(10, request, new List <AssetTargetType> { AssetTargetType.IdlingBurnRateinLiPerHour, AssetTargetType.WorkingBurnRateinLiPerHour }); SetupController(request, Guid.NewGuid(), Guid.NewGuid()); var result = _target.Save(request).Result; var response = result.Result as JsonResult; var responseObject = response.Value as AssetFuelBurnRateSettingsResponse; Assert.NotNull(response); //Assert.Equal(response.StatusCode, (int)HttpStatusCode.OK); }
public async Task <ActionResult <AssetFuelBurnRateSettingsResponse> > Save(AssetFuelBurnRateSettingRequest burnRateRequest) { burnRateRequest = await base.ReadRequestContentAsync(burnRateRequest); burnRateRequest.CustomerUid = base.GetCustomerContext(Request); burnRateRequest.UserUid = base.GetUserContext(Request); burnRateRequest.StartDate = DateTime.Parse(DateTime.UtcNow.ToShortDateString()); burnRateRequest.TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.IdlingBurnRateinLiPerHour, burnRateRequest.IdleTargetValue }, { AssetTargetType.WorkingBurnRateinLiPerHour, burnRateRequest.WorkTargetValue } }; this._loggingService.Debug("Updating Asset Settings Burn Rate for the given request : " + JsonConvert.SerializeObject(burnRateRequest), MethodInfo.GetCurrentMethod().Name); var result = await this._assetSettingsService.Save(burnRateRequest); this._loggingService.Debug("Updating Asset Settings Burn Rate response : " + JsonConvert.SerializeObject(result), MethodInfo.GetCurrentMethod().Name); return(base.SendResponse(HttpStatusCode.OK, new AssetFuelBurnRateSettingsResponse(result.AssetSettingsLists, result.Errors.OfType <AssetErrorInfo>().ToList <AssetErrorInfo>()))); }
public void Save_WorkTargetValueAndIdleTargetValueIsZero_GivesOK() { var request = new AssetFuelBurnRateSettingRequest { AssetUIds = new List <string>(this._assetUIDs.Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, IdleTargetValue = 0, WorkTargetValue = 0, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.IdlingBurnRateinLiPerHour, 0 }, { AssetTargetType.WorkingBurnRateinLiPerHour, 0 } } }; var result = this._assetSettingsService.Save(request).Result; Assert.NotNull(result); this._stubTransactions.Execute(Arg.Any <List <Action> >()); }
public void Fetch_ValidRequest_ReturnValidResponse() { var request = new AssetFuelBurnRateSettingRequest { AssetUIds = new List <string>(this._assetUIDs.Take(3).Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, IdleTargetValue = 100, WorkTargetValue = 1000, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.IdlingBurnRateinLiPerHour, 100 }, { AssetTargetType.WorkingBurnRateinLiPerHour, 1000 } } }; var result = this._assetSettingsService.Fetch(request).Result; Assert.NotNull(result); Assert.True(result.AssetSettingsLists.Count == 3); }
public void Save_ValidRequest_OneOldRecord_TwoNewRecords_ReturnValidResponse() { var request = new AssetFuelBurnRateSettingRequest { AssetUIds = new List <string>(this._assetUIDs.Take(3).Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, IdleTargetValue = 100, WorkTargetValue = 1000, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.IdlingBurnRateinLiPerHour, 100 }, { AssetTargetType.WorkingBurnRateinLiPerHour, 1000 } }, StartDate = DateTime.Now.AddDays(1) }; var assetSettingsDtoCloned = new List <AssetSettingsDto>(this._assetSettingsDtos); var assetSettingsDto = this._assetSettingsDtos.Where(x => request.AssetUIds.Contains(x.AssetUID.ToString())); Guid modifiedAssetUID = Guid.Empty; foreach (var assetSettings in assetSettingsDto.Take(1)) { modifiedAssetUID = assetSettings.AssetUID; assetSettings.StartDate = DateTime.Now.AddDays(-1); } this._assetSettingsDtos.RemoveAll(x => assetSettingsDto.Where(y => y.AssetUID != modifiedAssetUID).Select(y => y.AssetUID).Contains(x.AssetUID)); var result = this._assetSettingsService.Save(request).Result; Assert.NotNull(result); this._stubTransactions.Received(1).Execute(Arg.Any <List <Action> >()); this._assetSettingsDtos = assetSettingsDtoCloned; }