1. Run `yarn run-tunnelbroker-service` and successfully built the service without any warnings and errors.
2. Message successfully delivered when clients are online:
- Client with deviceID#1 sends the message to deviceID#2 using the `Send` [[ https://github.com/CommE2E/comm/blob/b25f0b3ef65feea03926c7bdcb3290c966da755d/native/cpp/CommonCpp/grpc/protos/tunnelbroker.proto#L21 | request ]];
- deviceID#2 is online and listening for the new messages using the `Get` [[ https://github.com/CommE2E/comm/blob/b25f0b3ef65feea03926c7bdcb3290c966da755d/native/cpp/CommonCpp/grpc/protos/tunnelbroker.proto#L22 | stream ]];
- deviceID#2 instantly and successfully gets the message from deviceID#1 using the `Get` [[ https://github.com/CommE2E/comm/blob/b25f0b3ef65feea03926c7bdcb3290c966da755d/native/cpp/CommonCpp/grpc/protos/tunnelbroker.proto#L22 | stream ]];
3. Message successfully delivered after client reconnects/offline:
- Client with deviceID#1 sends the message to deviceID#2 using the `Send` [[ https://github.com/CommE2E/comm/blob/b25f0b3ef65feea03926c7bdcb3290c966da755d/native/cpp/CommonCpp/grpc/protos/tunnelbroker.proto#L21 | request ]];
- deviceID#2 is offline at that time;
- deviceID#2 connects to the tunnelbroker server and successfully gets the message from deviceID#1 using the `Get` [[ https://github.com/CommE2E/comm/blob/b25f0b3ef65feea03926c7bdcb3290c966da755d/native/cpp/CommonCpp/grpc/protos/tunnelbroker.proto#L22 | stream ]];
4. Message successfully delivered when RabbitMQ server was restarted and the queue was cleared when the messages were sent, but the device was offline at that time and then reconnects after:
- Client with deviceID#1 sends the message to deviceID#2 using the `Send` [[ https://github.com/CommE2E/comm/blob/b25f0b3ef65feea03926c7bdcb3290c966da755d/native/cpp/CommonCpp/grpc/protos/tunnelbroker.proto#L21 | request ]];
- deviceID#2 is offline at that time;
- RabbitMQ server goes down, the messages queue was cleared;
- RabbitMQ server goes up;
- deviceID#2 connects to the tunnelbroker server and successfully gets the message from deviceID#1 using the `Get` [[ https://github.com/CommE2E/comm/blob/b25f0b3ef65feea03926c7bdcb3290c966da755d/native/cpp/CommonCpp/grpc/protos/tunnelbroker.proto#L22 | stream ]].