public byte[] Parse(DataBundleResponseDto dataBundleResponseDto) { ArgumentNullException.ThrowIfNull(dataBundleResponseDto, nameof(dataBundleResponseDto)); var contract = new DataBundleResponseContract { RequestId = dataBundleResponseDto.RequestId.ToString() }; if (dataBundleResponseDto.IsErrorResponse) { var contractErrorReason = MapToFailureReason(dataBundleResponseDto.ResponseError.Reason); contract.Failure = new DataBundleResponseContract.Types.RequestFailure { Reason = contractErrorReason, FailureDescription = dataBundleResponseDto.ResponseError.FailureDescription }; } else { contract.Success = new DataBundleResponseContract.Types.FileResource { ContentUri = dataBundleResponseDto.ContentUri.AbsoluteUri }; } return(contract.ToByteArray()); }
public void Parse_ValidObject_ReturnsBytes() { // arrange var target = new ResponseBundleParser(); var valid = new DataBundleResponseDto( Guid.NewGuid(), "A052186D-89E1-4975-8811-2B4E6137491A", new Uri("https://test.test.dk")); // act var actual = target.Parse(valid); // assert Assert.NotNull(actual); }
public Task SendAsync(DataBundleResponseDto dataBundleResponseDto) { ArgumentNullException.ThrowIfNull(dataBundleResponseDto, nameof(dataBundleResponseDto)); var sessionId = dataBundleResponseDto.RequestId.ToString(); var contractBytes = _responseBundleParser.Parse(dataBundleResponseDto); var serviceBusReplyMessage = new ServiceBusMessage(contractBytes) { SessionId = sessionId, }.AddDataBundleResponseIntegrationEvents(dataBundleResponseDto.RequestIdempotencyId); var sender = _messageBusFactory.GetSenderClient(_messageHubConfig.DomainReplyQueue); return(sender.PublishMessageAsync <ServiceBusMessage>(serviceBusReplyMessage)); }
public void Parse_ValidError_ReturnsBytes() { // arrange var target = new ResponseBundleParser(); var valid = new DataBundleResponseDto( Guid.NewGuid(), "A052186D-89E1-4975-8811-2B4E6137491A", new DataBundleResponseErrorDto( DataBundleResponseErrorReason.DatasetNotAvailable, "error")); // act var actual = target.Parse(valid); // assert Assert.NotNull(actual); }
public async Task WaitForBundleContentFromSubDomainAsync_WithData_ReturnsData() { // Arrange var marketOperatorDataStorageServiceMock = new Mock <IMarketOperatorDataStorageService>(); var dataBundleRequestSenderMock = new Mock <IDataBundleRequestSender>(); var target = new BundleContentRequestService( new Mock <ILogger>().Object, marketOperatorDataStorageServiceMock.Object, dataBundleRequestSenderMock.Object, new Mock <ICorrelationContext>().Object); var bundle = new Bundle( new Uuid(Guid.NewGuid()), new LegacyActorId(new GlobalLocationNumber("fake_value")), DomainOrigin.TimeSeries, new ContentType("fake_value"), Array.Empty <Uuid>(), Enumerable.Empty <string>()); var contentUri = new Uri("https://test.test.dk"); var response = new DataBundleResponseDto( Guid.NewGuid(), string.Empty, contentUri); dataBundleRequestSenderMock .Setup(x => x.SendAsync(It.IsAny <DataBundleRequestDto>(), MessageHub.Model.Model.DomainOrigin.TimeSeries)) .ReturnsAsync(response); // Act var actual = (AzureBlobBundleContent?)await target.WaitForBundleContentFromSubDomainAsync(bundle).ConfigureAwait(false); // Assert Assert.NotNull(actual); Assert.Equal(contentUri, actual !.ContentPath); }