classbind-tests added a test that looks likes the advanced example
This commit is contained in:
@@ -127,6 +127,49 @@ void reset_and_start_servers(int n, bool early_accept = true)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test(classbind_two_subscribers_binded_one_sender_wildcard)
|
||||||
|
{
|
||||||
|
set_millis(0);
|
||||||
|
reset_and_start_servers(2, true);
|
||||||
|
assertEqual(WiFi.status(), WL_CONNECTED);
|
||||||
|
|
||||||
|
MqttBroker broker(1883);
|
||||||
|
broker.begin();
|
||||||
|
IPAddress ip_broker = WiFi.localIP();
|
||||||
|
|
||||||
|
// We have a 2nd ESP in order to test through wifi (opposed to local)
|
||||||
|
ESP8266WiFiClass::selectInstance(2);
|
||||||
|
MqttClient mqtt_a(&broker, "mqtt_a");
|
||||||
|
MqttClient mqtt_b(&broker, "mqtt_a");
|
||||||
|
MqttClient mqtt_sender(&broker, "sender");
|
||||||
|
|
||||||
|
broker.loop();
|
||||||
|
|
||||||
|
assertTrue(mqtt_a.connected());
|
||||||
|
assertTrue(mqtt_b.connected());
|
||||||
|
|
||||||
|
TestReceiver receiver("receiver");
|
||||||
|
MqttClassBinder<TestReceiver>::onPublish(&mqtt_a, &receiver);
|
||||||
|
MqttClassBinder<TestReceiver>::onPublish(&mqtt_b, &receiver);
|
||||||
|
|
||||||
|
mqtt_a.subscribe("#");
|
||||||
|
mqtt_b.subscribe("#");
|
||||||
|
mqtt_sender.publish("a/b", "ab");
|
||||||
|
|
||||||
|
for (int i =0; i<10; i++)
|
||||||
|
{
|
||||||
|
add_millis(100);
|
||||||
|
mqtt_a.loop();
|
||||||
|
mqtt_b.loop();
|
||||||
|
mqtt_sender.loop();
|
||||||
|
broker.loop();
|
||||||
|
}
|
||||||
|
|
||||||
|
assertEqual(TestReceiver::messages["receiver"], 2);
|
||||||
|
assertEqual(unrouted, 0);
|
||||||
|
set_real_time();
|
||||||
|
}
|
||||||
|
|
||||||
test(classbind_one_client_receives_the_message)
|
test(classbind_one_client_receives_the_message)
|
||||||
{
|
{
|
||||||
set_millis(0);
|
set_millis(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user