async Task SendProbe(IUdpClient client)
        {
            var message = WSProbeMessageBuilder.NewProbeMessage();

            var multicastEndpoint = new IPEndPoint(IPAddress.Parse(Constants.WS_MULTICAST_ADDRESS), Constants.WS_MULTICAST_PORT);
            await client.SendAsync(message, message.Length, multicastEndpoint);
        }
        public void NewProbeMessage_MessageIdValid_AddsMessageId()
        {
            Guid messageId    = Guid.NewGuid();
            var  messageBytes = WSProbeMessageBuilder.NewProbeMessage(messageId);
            var  message      = Encoding.UTF8.GetString(messageBytes);

            message.Should().Contain(messageId.ToString());
        }
        public async Task <int> SendProbeAsync(Guid messageId, IPEndPoint endPoint)
        {
            var datagram = WSProbeMessageBuilder.NewProbeMessage(messageId);

            return(await client.SendAsync(datagram, datagram.Length, endPoint));
        }
        public void NewProbeMessage_MessageIdEmpty_ThrowsInvalidArgumentException()
        {
            Action act = () => WSProbeMessageBuilder.NewProbeMessage(Guid.Empty);

            act.Should().Throw <ArgumentException> ().WithMessage("messageId could not be Empty");
        }