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());
        }
Exemplo n.º 2
0
        public void ParseSuccess_GuidCorrupt_ThrowsException()
        {
            // arrange
            var target   = new ResponseBundleParser();
            var contract = new DataBundleResponseContract
            {
                RequestId = "invalid_guid",
                Success   = new DataBundleResponseContract.Types.FileResource
                {
                    ContentUri = "http://localhost"
                }
            };

            // act, assert
            Assert.Throws <MessageHubException>(() => target.Parse(contract.ToByteArray()));
        }
        public async Task Create_ReturnsServiceBusClientSessionReceiver()
        {
            // arrange
            var queueName            = "sbq-test";
            var replyQueue           = "sbq-test-reply";
            var serviceBusSenderMock = new Mock <ServiceBusSender>();
            var bytes = new DataBundleResponseContract
            {
                RequestId = "729AB33C-714D-4641-89FB-9F37C78F6F8A",
                Success   = new DataBundleResponseContract.Types.FileResource
                {
                    ContentUri = "http://localhost"
                }
            }.ToByteArray();

            var serviceBusReceivedMessage     = MockedServiceBusReceivedMessage.Create(bytes);
            var serviceBusSessionReceiverMock = new Mock <ServiceBusSessionReceiver>();

            serviceBusSessionReceiverMock
            .Setup(x => x.ReceiveMessageAsync(It.IsAny <TimeSpan>(), default))
            .ReturnsAsync(serviceBusReceivedMessage);

            await using var serviceBusClient = new MockedServiceBusClient(
                            queueName,
                            replyQueue,
                            serviceBusSenderMock.Object,
                            serviceBusSessionReceiverMock.Object);

            var serviceBusClientFactory = new Mock <IServiceBusClientFactory>();

            serviceBusClientFactory
            .Setup(x => x.Create())
            .Returns(serviceBusClient);

            await using var messageBusFactory = new AzureServiceBusFactory(serviceBusClientFactory.Object);

            // act
            var actualAdd = await messageBusFactory.GetSessionReceiverClientAsync(replyQueue, It.IsAny <string>()).ConfigureAwait(false);

            var returnMessage = await actualAdd.ReceiveMessageAsync <ServiceBusMessage>(It.IsAny <TimeSpan>()).ConfigureAwait(false);

            await actualAdd.DisposeAsync().ConfigureAwait(false);

            // assert
            Assert.NotNull(returnMessage);
            Assert.NotNull(actualAdd);
        }
Exemplo n.º 4
0
        public void ParseFailure_GuidCorrupt_ThrowsException()
        {
            // arrange
            var target   = new ResponseBundleParser();
            var contract = new DataBundleResponseContract
            {
                RequestId = "invalid_guid",
                Failure   = new DataBundleResponseContract.Types.RequestFailure
                {
                    Reason             = DataBundleResponseContract.Types.RequestFailure.Types.Reason.InternalError,
                    FailureDescription = "test_description"
                }
            };

            // act, assert
            Assert.Throws <MessageHubException>(() => target.Parse(contract.ToByteArray()));
        }
Exemplo n.º 5
0
        public void Parse_BytesValid_ReturnsSuccess()
        {
            // arrange
            var target     = new ResponseBundleParser();
            var validBytes = new DataBundleResponseContract
            {
                RequestId = "636A3749-E3F8-4733-BB4C-027AF591B485",
                Success   = new DataBundleResponseContract.Types.FileResource
                {
                    ContentUri = "http://localhost"
                }
            }.ToByteArray();

            // act
            var actual = target.Parse(validBytes);

            // assert
            Assert.NotNull(actual);
            Assert.Equal(Guid.Parse("636A3749-E3F8-4733-BB4C-027AF591B485"), actual.RequestId);
            Assert.Equal(new Uri("http://localhost"), actual.ContentUri);
        }
Exemplo n.º 6
0
        public void Parse_BytesValidWithFailedRequestStatus_ReturnsFailure()
        {
            // arrange
            var target     = new ResponseBundleParser();
            var validBytes = new DataBundleResponseContract
            {
                RequestId = "E3246CD7-CD9B-4FC3-851D-ED0828396030",
                Failure   = new DataBundleResponseContract.Types.RequestFailure
                {
                    Reason             = DataBundleResponseContract.Types.RequestFailure.Types.Reason.InternalError,
                    FailureDescription = "test_description"
                }
            }.ToByteArray();

            // act
            var actual = target.Parse(validBytes);

            // assert
            Assert.NotNull(actual);
            Assert.Equal(Guid.Parse("E3246CD7-CD9B-4FC3-851D-ED0828396030"), actual.RequestId);
            Assert.NotNull(actual.ResponseError);
            Assert.Equal(DataBundleResponseErrorReason.InternalError, actual.ResponseError.Reason);
            Assert.Equal("test_description", actual.ResponseError.FailureDescription);
        }