public void FetchAssetVolumePerCycleSettings_InvalidAssetUIDs_GivesBadRequest() { var request = new AssetSettingsRequest { AssetUIds = this._injectConfig.AssetUIDs, TargetValue = 250.98 }; _injectConfig.BuildRepositoryStub(10, request, new List <AssetTargetType> { AssetTargetType.BucketVolumeinCuMeter }); SetupController(10, 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(null).Result; var response = result.Result as JsonResult; var responseObject = response.Value as AssetVolumePerCycleSettingsResponse; 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())); }
//[ChunkedEncodingFilter(typeof(AssetSettingsRequest), "request")] // POST api/<controller> public async Task <ActionResult <AssetVolumePerCycleSettingsResponse> > Save(AssetSettingsRequest request) { request = await base.ReadRequestContentAsync(request); AssetSettingsRequestBase serviceRequest = new AssetSettingsRequestBase(); if (request != null) { serviceRequest = new AssetSettingsRequestBase { StartDate = DateTime.Parse(DateTime.UtcNow.ToShortDateString()), TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.BucketVolumeinCuMeter, request.TargetValue } }, CustomerUid = base.GetCustomerContext(Request), UserUid = base.GetUserContext(Request), AssetUIds = request.AssetUIds }; } this._loggingService.Debug("Updating Asset Settings Volume Per Cycle for the given request : " + JsonConvert.SerializeObject(request), MethodInfo.GetCurrentMethod().Name); this._loggingService.Debug("Request : " + JsonConvert.SerializeObject(request), MethodInfo.GetCurrentMethod().Name); var result = await this._assetSettingsService.Save(serviceRequest); this._loggingService.Debug("Updating Asset Settings Bucket volume per cycle response : " + JsonConvert.SerializeObject(result), MethodInfo.GetCurrentMethod().Name); return(base.SendResponse(HttpStatusCode.OK, new AssetVolumePerCycleSettingsResponse(result.AssetSettingsLists, result.Errors.OfType <AssetErrorInfo>().ToList <AssetErrorInfo>()))); }
public void SaveAssetVolumePerCycleSettings_InvalidAssetUIDInAssetUIDs_GivesBadRequest() { var request = new AssetSettingsRequest { TargetValue = 250.98 }; _injectConfig.BuildRepositoryStub(10, request, new List <AssetTargetType> { AssetTargetType.BucketVolumeinCuMeter }); request.AssetUIds = new List <string>(this._injectConfig.AssetUIDs); request.AssetUIds.Add(Guid.Empty.ToString()); //Invalid AssetUId SetupController(10, request, Guid.NewGuid(), Guid.NewGuid()); var result = _target.Save(request).Result; var response = result.Result as JsonResult; var responseObject = response.Value as AssetVolumePerCycleSettingsResponse; 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 Save_TargetValueNegative_ThrowsDomainException() { var request = new AssetSettingsRequest { AssetUIds = new List <string>(this._assetUIDs.Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.BucketVolumeinCuMeter, -1 } } }; 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.TargetValueIsNegative); Assert.Equal(domainEx.Errors.First().Message, UtilHelpers.GetEnumDescription(ErrorCodes.TargetValueIsNegative)); } }
public void SaveAssetMileageSettings_AssetUIDsNull_GivesBadRequest() { var request = new AssetSettingsRequest { AssetUIds = null, TargetValue = 12 }; _injectConfig.BuildRepositoryStub(10, request, new List <AssetTargetType> { AssetTargetType.OdometerinKmsPerWeek }); SetupController(10, request, Guid.NewGuid(), Guid.NewGuid()); var result = _target.Save(request).Result; var response = result.Result as JsonResult; var responseObject = response.Value as AssetMileageSettingsResponse; 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 SaveAssetEstimatedPayloadPerCycleSettings_TargetValueNegative_GivesBadRequest() { var request = new AssetSettingsRequest { AssetUIds = this._injectConfig.AssetUIDs, TargetValue = -555 }; _injectConfig.BuildRepositoryStub(10, request, new List <AssetTargetType> { AssetTargetType.PayloadPerCycleInTonnes }); SetupController(10, request, Guid.NewGuid(), Guid.NewGuid()); var result = _target.Save(request).Result; Assert.NotNull(result); //var response = result.Result as JsonResult; //Assert.NotNull(response); //Assert.Equal(response.StatusCode, (int)HttpStatusCode.BadRequest); //var responseObject = response.Value as AssetEstimatedPayloadPerCycleSettingsResponse; //Assert.NotNull(responseObject.Errors); //Assert.True(responseObject.Errors.Count > 0); //Assert.Equal(responseObject.Errors[0].ErrorCode, (int)ErrorCodes.TargetValueIsNegative); //Assert.Equal(responseObject.Errors[0].Message, UtilHelpers.GetEnumDescription(ErrorCodes.TargetValueIsNegative)); }
public void Save_InvalidAllAssetUIDs_ThrowsDomainException() { var request = new AssetSettingsRequest { AssetUIds = null, CustomerUid = this._customerUid, UserUid = this._userUid, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.BucketVolumeinCuMeter, 100 } } }; 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_ValidRequest_ThreeOldRecords_ReturnValidResponse() { var request = new AssetSettingsRequest { AssetUIds = new List <string>(this._assetUIDs.Take(3).Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.BucketVolumeinCuMeter, 123.2 } }, TargetValue = 200, 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); Received.InOrder(() => { this._stubAssetSettingsRepository.FetchAssetConfig(Arg.Any <List <string> >(), Arg.Any <AssetSettingsDto>()); this._stubAssetSettingsRepository.FetchAssetConfig(Arg.Any <List <string> >(), Arg.Any <AssetSettingsDto>()); }); }
public void Save_ValidRequest_OneOldRecord_TwoNewRecords_ReturnValidResponse() { var request = new AssetSettingsRequest { AssetUIds = new List <string>(this._assetUIDs.Take(3).Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.BucketVolumeinCuMeter, 123.2 } }, TargetValue = 200, 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.Execute(Arg.Any <List <Action> >()); this._assetSettingsDtos = assetSettingsDtoCloned; }
public void Fetch_InvalidAssetUIDInAssetUIDs_ThrowsDomainException() { var request = new AssetSettingsRequest { AssetUIds = new List <string>(this._assetUIDs.Take(2).Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.BucketVolumeinCuMeter, 123.2 } }, }; var invalidAssetUID = Guid.NewGuid().ToString(); try { request.AssetUIds.Add(invalidAssetUID); var result = this._assetSettingsService.Fetch(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), invalidAssetUID)); } }
private void SetupController(int count, AssetSettingsRequest request, Guid?customerUID, Guid?userUID) { _target = _injectConfig.Resolve <AssetVolumePerCycleSettingsController>(); _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 Fetch_ValidRequest_ReturnValidResponse() { var request = new AssetSettingsRequest { AssetUIds = new List <string>(this._assetUIDs.Take(3).Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.BucketVolumeinCuMeter, 1000 } } }; var result = this._assetSettingsService.Fetch(request).Result; Assert.NotNull(result); Assert.True(result.AssetSettingsLists.Count == 3); }
public void SaveAssetVolumePerCycleSettings_ValidAssetUIds_GivesCreated() { var request = new AssetSettingsRequest { AssetUIds = this._injectConfig.AssetUIDs, TargetValue = 250.98 }; _injectConfig.BuildRepositoryStub(10, request, new List <AssetTargetType> { AssetTargetType.BucketVolumeinCuMeter }); SetupController(10, request, Guid.NewGuid(), Guid.NewGuid()); var result = _target.Save(request).Result; var response = result.Result as JsonResult; var responseObject = response.Value as AssetVolumePerCycleSettingsResponse; Assert.NotNull(response); //Assert.Equal(response.StatusCode, (int)HttpStatusCode.OK); }
public void Save_ValidRequest_ThreeOldRecords_ThreeNewRecords_ReturnValidResponse() { var request = new AssetSettingsRequest { AssetUIds = new List <string>(this._assetUIDs.Take(3).Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.BucketVolumeinCuMeter, 123.2 } }, TargetValue = 200, StartDate = DateTime.Now.AddDays(1) }; var result = this._assetSettingsService.Save(request).Result; Assert.NotNull(result); Assert.True(result.AssetSettingsLists.Count == 3); this._stubTransactions.Execute(Arg.Any <List <Action> >()); }
public void Save_InvalidAssetUIDInAssetUIDs_ThrowsDomainException() { var request = new AssetSettingsRequest { AssetUIds = new List <string>(this._assetUIDs.Take(2).Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.BucketVolumeinCuMeter, 100 } } }; var invalidAssetUID = Guid.NewGuid().ToString(); request.AssetUIds.Add(invalidAssetUID); var result = this._assetSettingsService.Save(request).Result; Assert.Equal(result.Errors.Count, 1); Assert.Equal(result.Errors.First().ErrorCode, (int)ErrorCodes.InvalidAssetUID); Assert.Equal(result.Errors.First().Message, string.Format(UtilHelpers.GetEnumDescription(ErrorCodes.InvalidAssetUID), invalidAssetUID)); }
public void Fetch_UserUIDNull_ThrowsDomainException() { var request = new AssetSettingsRequest { AssetUIds = new List <string>(this._assetUIDs.Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = null }; try { var result = this._assetSettingsService.Fetch(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.UserUIDNull); Assert.Equal(domainEx.Errors.First().Message, UtilHelpers.GetEnumDescription(ErrorCodes.UserUIDNull)); } }
public void SaveAssetVolumePerCycleSettings_UserUidNull_GivesBadRequest() { var request = new AssetSettingsRequest { AssetUIds = this._injectConfig.AssetUIDs, TargetValue = 250.98 }; _injectConfig.BuildRepositoryStub(10, request, new List <AssetTargetType> { AssetTargetType.BucketVolumeinCuMeter }); SetupController(10, request, Guid.NewGuid(), null); var result = _target.Save(request).Result; var response = result.Result as JsonResult; var responseObject = response.Value as AssetVolumePerCycleSettingsResponse; 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.UserUIDNull); //Assert.Equal(responseObject.Errors[0].Message, UtilHelpers.GetEnumDescription(ErrorCodes.UserUIDNull)); }
public void Save_ValidRequest_ThreeNewRecords_ReturnValidResponse() { var request = new AssetSettingsRequest { AssetUIds = new List <string>(this._assetUIDs.Take(3).Select(x => x.ToString())), CustomerUid = this._customerUid, UserUid = this._userUid, TargetValues = new Dictionary <AssetTargetType, double?> { { AssetTargetType.BucketVolumeinCuMeter, 123.2 } }, TargetValue = 200, StartDate = DateTime.Now }; var assetSettingsDtoCloned = new List <AssetSettingsDto>(this._assetSettingsDtos); this._assetSettingsDtos.RemoveAll(x => request.AssetUIds.Contains(x.AssetUID.ToString())); var result = this._assetSettingsService.Save(request).Result; Assert.NotNull(result); this._stubTransactions.Execute(Arg.Any <List <Action> >()); this._assetSettingsDtos = assetSettingsDtoCloned; }