private async Task <EventAggregatorBuilder> WhenStartDiscoveryAsync_NoResponse()
        {
            var eaBuilder        = new EventAggregatorBuilder();
            var containerBuilder = new ContainerBuilder();

            containerBuilder.Register(_ => new BroadcasterBuilder().Build());

            var target = new MeteringStationDetector(eaBuilder.Build(), containerBuilder.Build(), TimeSpan.FromMilliseconds(200));
            await target.StartDiscoveryAsync();

            return(eaBuilder);
        }
        public async Task WhenStartDiscoveryAsync_OneResponse_DeviceDetectedEventSent()
        {
            var broadcaster = new BroadcasterBuilder()
                              .SetupSend(new IPEndPoint(IPAddress.Parse("1.2.3.4"), 1234),
                                         JsonConvert.SerializeObject(new MeteringStationResponse {
                ClientId = "1234"
            }).Encrypt())
                              .Build();

            var eaBuilder        = new EventAggregatorBuilder();
            var containerBuilder = new ContainerBuilder();

            containerBuilder.Register(_ => broadcaster);

            var target = new MeteringStationDetector(eaBuilder.Build(), containerBuilder.Build(), TimeSpan.FromMilliseconds(200));
            await target.StartDiscoveryAsync();

            eaBuilder.Mock.Verify(p => p.Publish(It.Is <DeviceDetectedEvent>(x => x.Id == "1234" && x.Ip.ToString() == "1.2.3.4")), Times.Once);
        }