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());
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }