public void GetConnectionStatusTest() { Task.Run(async() => { IBusService.ConnectionStatus value; using var mqtt = new MqttService(); var builder = new Uri("tcp://*****:*****@broker.mqttdashboard.com:1883/topic/bowling/MQTT_xUnitTests"); await mqtt.ConnectionStopAsync(); mqtt.OnMessageReciver += Mqtt_OnMessageReciver; mqtt.OnConnection += Mqtt_OnConnection; mqtt.OnStatusChange += (IBusService.ConnectionStatus arg1, IBusService.ConnectionInfo arg2) => { Assert.Equal(arg2.BrokerUri, builder); }; value = mqtt.GetConnectionStatus(); Assert.Equal(IBusService.ConnectionStatus.Disabled, value); await mqtt.ConnectionStartAsync(builder); value = mqtt.GetConnectionStatus(); Assert.Equal(IBusService.ConnectionStatus.Connected, value); Assert.Null(mqtt.GetError()); InternalConfigurationTest(mqtt); await mqtt.ConnectionStopAsync(); await Task.Delay(1000); value = mqtt.GetConnectionStatus(); Assert.Equal(IBusService.ConnectionStatus.Disabled, value); try { builder = new Uri("tcp://*****:*****@0.0.0.0:1883/topic/bowling/MQTT_xUnitTests"); value = mqtt.GetConnectionStatus(); Assert.Equal(IBusService.ConnectionStatus.Disabled, value); await mqtt.ConnectionStartAsync(builder); value = mqtt.GetConnectionStatus(); Assert.Equal(IBusService.ConnectionStatus.Error, value); Assert.NotNull(mqtt.GetError()); } finally { //ignore } }).GetAwaiter().GetResult(); }