Beispiel #1
0
        private async Task <DataBundleResponseDto> CreateSuccessResponseAsync(
            DataBundleRequestDto requestDto,
            IEnumerable <Guid> dataAvailableNotificationGuids)
        {
            var resourceUrl = await SaveDataToBlobStorageAsync(requestDto, dataAvailableNotificationGuids).ConfigureAwait(false);

            return(requestDto.CreateResponse(new Uri(resourceUrl.AbsoluteUri)));
        }
        public async Task SendAsync_ValidInput_AddsCorrectIntegrationEvents()
        {
            // Arrange
            var          serviceBusSenderMock          = new Mock <ServiceBusSender>();
            var          serviceBusSessionReceiverMock = new Mock <ServiceBusSessionReceiver>();
            const string sbqTimeseriesReply            = "sbq-TimeSeries-reply";

            await using var mockedServiceBusClient = new MockedServiceBusClient(
                            sbqTimeseriesReply,
                            string.Empty,
                            serviceBusSenderMock.Object,
                            serviceBusSessionReceiverMock.Object);

            var serviceBusClientFactory = new Mock <IServiceBusClientFactory>();

            serviceBusClientFactory.Setup(x => x.Create()).Returns(mockedServiceBusClient);
            await using var messageBusFactory = new AzureServiceBusFactory(serviceBusClientFactory.Object);

            var config = new MessageHubConfig("fake_value", sbqTimeseriesReply);

            // ServiceBusMessage
            var target = new DataBundleResponseSender(
                new ResponseBundleParser(),
                messageBusFactory,
                config);

            var requestMock = new DataBundleRequestDto(
                Guid.NewGuid(),
                "A9D032EB-4AAC-44F3-BE1C-8584B8533875",
                "42D509CB-1D93-430D-A2D4-7DBB9AE56771",
                new MessageTypeDto("80BB9BB8-CDE8-4C77-BE76-FDC886FD75A3"));

            var response = requestMock.CreateResponse(new Uri("https://test.dk/test"));

            // Act
            await target.SendAsync(response).ConfigureAwait(false);

            // Assert
            serviceBusSenderMock.Verify(
                x => x.SendMessageAsync(
                    It.Is <ServiceBusMessage>(
                        message =>
                        message.ApplicationProperties.ContainsKey("OperationTimestamp") &&
                        message.ApplicationProperties.ContainsKey("OperationCorrelationId") &&
                        message.ApplicationProperties.ContainsKey("MessageVersion") &&
                        message.ApplicationProperties.ContainsKey("MessageType") &&
                        message.ApplicationProperties.ContainsKey("EventIdentification")),
                    default),
                Times.Once);
        }
        public void CreateResponse_ReturnsResponse()
        {
            // arrange
            var requestId = Guid.Parse("BCDFAF35-B914-488E-A8FB-C41FC377097D");
            var uri       = new Uri("http://localhost");
            var request   = new DataBundleRequestDto(
                requestId,
                "C141D536-170F-48A6-92FC-EA0D79D2F7E0",
                "D5D400AD-CC11-409A-B757-75EB9AA8B0EA",
                new MessageTypeDto("message_type"));

            // act
            var actual = request.CreateResponse(uri);

            // assert
            Assert.Equal(requestId, actual.RequestId);
            Assert.Equal(uri, actual.ContentUri);
        }
        public async Task SendAsync_ValidInput_SendsMessage()
        {
            // Arrange
            const string queueName                     = "sbq-MeteringPoints-reply";
            var          serviceBusSenderMock          = new Mock <ServiceBusSender>();
            var          serviceBusSessionReceiverMock = new Mock <ServiceBusSessionReceiver>();

            await using var mockedServiceBusClient = new MockedServiceBusClient(
                            queueName,
                            string.Empty,
                            serviceBusSenderMock.Object,
                            serviceBusSessionReceiverMock.Object);

            var serviceBusClientFactory = new Mock <IServiceBusClientFactory>();

            serviceBusClientFactory.Setup(x => x.Create()).Returns(mockedServiceBusClient);
            await using var messageBusFactory = new AzureServiceBusFactory(serviceBusClientFactory.Object);

            var config = new MessageHubConfig("fake_value", queueName);

            var target = new DataBundleResponseSender(
                new ResponseBundleParser(),
                messageBusFactory,
                config);

            var requestMock = new DataBundleRequestDto(
                Guid.NewGuid(),
                "F3DE0389-AC26-4461-A11B-61077BF0CA32",
                "7E9D048D-F0D8-476D-8739-AAA83284C9C6",
                new MessageTypeDto("80BB9BB8-CDE8-4C77-BE76-FDC886FD75A3"));

            var response = requestMock.CreateResponse(new Uri("https://test.dk/test"));

            // Act
            await target.SendAsync(response).ConfigureAwait(false);

            // Assert
            serviceBusSenderMock.Verify(x => x.SendMessageAsync(It.IsAny <ServiceBusMessage>(), default), Times.Once);
        }