50 lines
1.8 KiB
C
50 lines
1.8 KiB
C
#include <cgreen/cgreen.h>
|
|
#include <cgreen/mocks.h>
|
|
#include <mqtt_example.h>
|
|
#include <MQTTClient.h>
|
|
|
|
#define NOT_NULL (void*)1
|
|
|
|
LIBMQTT_API int MQTTClient_create(MQTTClient* handle, const char* serverURI, const char* clientId,
|
|
int persistence_type, void* persistence_context) {
|
|
return (int)mock(handle);
|
|
}
|
|
LIBMQTT_API int MQTTClient_connect(MQTTClient handle, MQTTClient_connectOptions* options) {
|
|
return (int)mock(handle);
|
|
}
|
|
LIBMQTT_API int MQTTClient_publishMessage(MQTTClient handle, const char* topicName, MQTTClient_message* msg, MQTTClient_deliveryToken* dt) {
|
|
return (int)mock(msg->payload, msg->payloadlen);
|
|
}
|
|
LIBMQTT_API int MQTTClient_waitForCompletion(MQTTClient handle, MQTTClient_deliveryToken dt, unsigned long timeout) {
|
|
return (int)mock();
|
|
}
|
|
LIBMQTT_API int MQTTClient_disconnect(MQTTClient handle, int timeout) {
|
|
return (int)mock();
|
|
}
|
|
LIBMQTT_API void MQTTClient_destroy(MQTTClient* handle) {
|
|
mock(handle);
|
|
}
|
|
|
|
Describe(mqtt_example);
|
|
BeforeEach(mqtt_example) {
|
|
// cgreen_mocks_are(learning_mocks);
|
|
}
|
|
AfterEach(mqtt_example) {}
|
|
|
|
Ensure(mqtt_example, payload_is_sent) {
|
|
// Arrange
|
|
MQTTClient mock_handle = NOT_NULL;
|
|
char *payload = "Hello World.";
|
|
size_t payload_len = strlen(payload);
|
|
|
|
// Expect
|
|
expect(MQTTClient_create, will_set_contents_of_parameter(handle, &mock_handle, sizeof(mock_handle)));
|
|
expect(MQTTClient_connect, when(handle, is_equal_to(mock_handle)), will_return(MQTTCLIENT_SUCCESS));
|
|
expect(MQTTClient_publishMessage, when(msg->payload, is_equal_to_string(payload)), when(msg->payloadlen, is_equal_to(payload_len)));
|
|
expect(MQTTClient_waitForCompletion, will_return(MQTTCLIENT_SUCCESS));
|
|
expect(MQTTClient_disconnect);
|
|
expect(MQTTClient_destroy);
|
|
|
|
// Act
|
|
send_mqtt_msg(payload, payload_len);
|
|
} |