tests modified accordingly to unique_ptrs
This commit is contained in:
@@ -34,7 +34,7 @@ MqttClient::MqttClient(MqttBroker* local_broker, TcpClient* new_client)
|
||||
// client->onConnect() TODO
|
||||
// client->onDisconnect() TODO
|
||||
#else
|
||||
tcp_client = std::unique_ptr<WiFiClient>(new WiFiClient(*new_client));
|
||||
tcp_client.reset(new WiFiClient(*new_client));
|
||||
#endif
|
||||
alive = millis()+5000;
|
||||
}
|
||||
@@ -89,7 +89,7 @@ void MqttClient::connect(std::string broker, uint16_t port, uint16_t ka)
|
||||
debug("MqttClient::connect_to_host " << broker << ':' << port);
|
||||
keep_alive = ka;
|
||||
close();
|
||||
tcp_client = std::unique_ptr<TcpClient>(new TcpClient);
|
||||
tcp_client.reset(new TcpClient);
|
||||
|
||||
#ifdef TINY_MQTT_ASYNC
|
||||
tcp_client->onData(onData, this);
|
||||
|
||||
@@ -327,7 +327,6 @@ class MqttBroker
|
||||
void connect(const std::string& host, uint16_t port=1883);
|
||||
bool connected() const { return state == Connected; }
|
||||
|
||||
size_t clientsCount() const { return clients.size(); }
|
||||
|
||||
void dump(std::string indent="")
|
||||
{
|
||||
@@ -336,7 +335,13 @@ class MqttBroker
|
||||
}
|
||||
|
||||
using Clients = std::set<std::unique_ptr<MqttClient>>;
|
||||
using LocalClients = std::set<MqttClient*>;
|
||||
|
||||
const Clients& getClients() const { return clients; }
|
||||
const LocalClients& getLocalClients() const { return local_clients; }
|
||||
|
||||
size_t clientsCount() const { return clients.size(); }
|
||||
size_t localClientsCount() const { return local_clients.size(); }
|
||||
|
||||
private:
|
||||
friend class MqttClient;
|
||||
@@ -360,7 +365,7 @@ class MqttBroker
|
||||
|
||||
bool compareString(const char* good, const char* str, uint8_t str_len) const;
|
||||
Clients clients;
|
||||
std::set<MqttClient*> local_clients;
|
||||
LocalClients local_clients;
|
||||
|
||||
private:
|
||||
std::unique_ptr<TcpServer> server;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
SUB=
|
||||
SUB=n
|
||||
|
||||
tests:
|
||||
set -e; \
|
||||
|
||||
@@ -31,13 +31,13 @@ void onPublish(const MqttClient* srce, const Topic& topic, const char* payload,
|
||||
test(local_client_should_unregister_when_destroyed)
|
||||
{
|
||||
MqttBroker broker(1883);
|
||||
assertEqual(broker.clientsCount(), (size_t)0);
|
||||
assertEqual(broker.localClientsCount(), (size_t)0);
|
||||
{
|
||||
assertEqual(broker.clientsCount(), (size_t)0); // Ensure client is not yet connected
|
||||
assertEqual(broker.localClientsCount(), (size_t)0); // Ensure client is not yet connected
|
||||
MqttClient client(&broker);
|
||||
assertEqual(broker.clientsCount(), (size_t)1); // Ensure client is now connected
|
||||
assertEqual(broker.localClientsCount(), (size_t)1); // Ensure client is now connected
|
||||
}
|
||||
assertEqual(broker.clientsCount(), (size_t)0);
|
||||
assertEqual(broker.localClientsCount(), (size_t)0);
|
||||
}
|
||||
|
||||
test(local_client_alive)
|
||||
@@ -47,31 +47,31 @@ test(local_client_alive)
|
||||
MqttClient client(&broker);
|
||||
|
||||
broker.loop();
|
||||
assertEqual(broker.clientsCount(), (size_t)1); // Ensure client is now connected
|
||||
assertEqual(broker.localClientsCount(), (size_t)1); // Ensure client is now connected
|
||||
|
||||
add_millis(TINY_MQTT_DEFAULT_ALIVE*1000/2);
|
||||
broker.loop();
|
||||
assertEqual(broker.clientsCount(), (size_t)1); // Ensure client is still connected
|
||||
assertEqual(broker.localClientsCount(), (size_t)1); // Ensure client is still connected
|
||||
|
||||
add_seconds(TINY_MQTT_DEFAULT_ALIVE*5);
|
||||
broker.loop();
|
||||
assertEqual(broker.clientsCount(), (size_t)1); // Ensure client is still connected
|
||||
assertEqual(broker.localClientsCount(), (size_t)1); // Ensure client is still connected
|
||||
}
|
||||
|
||||
#if 0
|
||||
test(local_connect)
|
||||
{
|
||||
assertEqual(broker.clientsCount(), (size_t)0);
|
||||
assertEqual(broker.localClientsCount(), (size_t)0);
|
||||
|
||||
MqttClient client;
|
||||
assertTrue(client.connected());
|
||||
assertEqual(broker.clientsCount(), (size_t)1);
|
||||
assertEqual(broker.localClientsCount(), (size_t)1);
|
||||
}
|
||||
|
||||
test(local_publish_should_be_dispatched)
|
||||
{
|
||||
published.clear();
|
||||
assertEqual(broker.clientsCount(), (size_t)0);
|
||||
assertEqual(broker.localClientsCount(), (size_t)0);
|
||||
|
||||
MqttClient subscriber;
|
||||
subscriber.subscribe("a/b");
|
||||
@@ -91,7 +91,7 @@ test(local_publish_should_be_dispatched)
|
||||
test(local_publish_should_be_dispatched_to_local_clients)
|
||||
{
|
||||
published.clear();
|
||||
assertEqual(broker.clientsCount(), (size_t)0);
|
||||
assertEqual(broker.localClientsCount(), (size_t)0);
|
||||
|
||||
MqttClient subscriber_a("A");
|
||||
subscriber_a.setCallback(onPublish);
|
||||
@@ -116,7 +116,7 @@ test(local_publish_should_be_dispatched_to_local_clients)
|
||||
test(local_unsubscribe)
|
||||
{
|
||||
published.clear();
|
||||
assertEqual(broker.clientsCount(), (size_t)0);
|
||||
assertEqual(broker.localClientsCount(), (size_t)0);
|
||||
|
||||
MqttClient subscriber;
|
||||
subscriber.setCallback(onPublish);
|
||||
@@ -136,7 +136,7 @@ test(local_unsubscribe)
|
||||
test(local_nocallback_when_destroyed)
|
||||
{
|
||||
published.clear();
|
||||
assertEqual(broker.clientsCount(), (size_t)0);
|
||||
assertEqual(broker.localClientsCount(), (size_t)0);
|
||||
|
||||
MqttClient publisher;
|
||||
{
|
||||
|
||||
@@ -142,6 +142,15 @@ test(suback)
|
||||
assertEqual(MqttClient::counters[MqttMessage::Type::SubAck], 1);
|
||||
}
|
||||
|
||||
uint32_t getClientKeepAlive(MqttBroker& broker)
|
||||
{
|
||||
if (broker.getClients().size() == 1)
|
||||
for (auto& it : broker.getClients())
|
||||
return it->keepAlive();
|
||||
|
||||
return 9999;
|
||||
}
|
||||
|
||||
test(network_client_alive)
|
||||
{
|
||||
const uint32_t keep_alive=1;
|
||||
@@ -162,7 +171,7 @@ test(network_client_alive)
|
||||
assertTrue(broker.clientsCount() == 1);
|
||||
assertTrue(client.connected());
|
||||
|
||||
uint32_t ka = broker.getClients()[0]->keepAlive();
|
||||
uint32_t ka = getClientKeepAlive(broker);
|
||||
assertEqual(ka, keep_alive);
|
||||
assertEqual(broker.clientsCount(), (size_t)1);
|
||||
|
||||
@@ -212,9 +221,8 @@ test(network_client_keep_alive_high)
|
||||
uint32_t sz = broker.getClients().size();
|
||||
assertEqual(sz , (uint32_t)1);
|
||||
|
||||
uint32_t ka = broker.getClients()[0]->keepAlive();
|
||||
uint32_t ka = getClientKeepAlive(broker);
|
||||
assertEqual(ka, keep_alive);
|
||||
|
||||
}
|
||||
|
||||
test(network_client_to_broker_connexion)
|
||||
|
||||
Reference in New Issue
Block a user