150 lines
4.7 KiB
C++
150 lines
4.7 KiB
C++
#include <unity.h>
|
|
#include "TinyComponent.h"
|
|
|
|
void setUp(void) {
|
|
// set stuff up here
|
|
}
|
|
|
|
void tearDown(void) {
|
|
// clean stuff up here
|
|
}
|
|
|
|
void test_unknown_sensor_type(void) {
|
|
StaticJsonDocument<200> jsonDoc;
|
|
uint32_t value = TYPE(0);
|
|
TEST_ASSERT_FALSE(buildSensorJson(value, jsonDoc));
|
|
}
|
|
|
|
void test_max_temp(void) {
|
|
StaticJsonDocument<200> jsonDoc;
|
|
uint32_t value = TEMP(1023) | TYPE(SensorType::TEMPERATURE);
|
|
TEST_ASSERT_EQUAL(true, buildSensorJson(value, jsonDoc));
|
|
|
|
JsonObject sensor = jsonDoc["sensor"];
|
|
TEST_ASSERT_EQUAL(102.3, sensor["temperature"]);
|
|
}
|
|
|
|
void test_max_value(void) {
|
|
StaticJsonDocument<200> jsonDoc;
|
|
uint32_t value = VALUE(1023) | TYPE(SensorType::GENERIC);
|
|
TEST_ASSERT_EQUAL(true, buildSensorJson(value, jsonDoc));
|
|
|
|
JsonObject sensor = jsonDoc["sensor"];
|
|
TEST_ASSERT_EQUAL(1023, sensor["value"]);
|
|
}
|
|
|
|
void test_overflow_value(void) {
|
|
StaticJsonDocument<200> jsonDoc;
|
|
uint32_t value = VALUE(1024) | TYPE(SensorType::GENERIC);
|
|
TEST_ASSERT_EQUAL(true, buildSensorJson(value, jsonDoc));
|
|
|
|
JsonObject sensor = jsonDoc["sensor"];
|
|
TEST_ASSERT_EQUAL(0, sensor["value"]);
|
|
}
|
|
|
|
void test_max_voltage(void) {
|
|
StaticJsonDocument<200> jsonDoc;
|
|
uint32_t value = VCC(8191) | TYPE(SensorType::GENERIC);
|
|
TEST_ASSERT_TRUE(buildSensorJson(value, jsonDoc));
|
|
|
|
JsonObject diagnostic = jsonDoc["sensor"]["diagnostic"];
|
|
TEST_ASSERT_EQUAL(8.191, diagnostic["voltage"]);
|
|
}
|
|
|
|
void test_overflow_voltage(void) {
|
|
StaticJsonDocument<200> jsonDoc;
|
|
uint32_t value = VCC(8192) | TYPE(SensorType::GENERIC);
|
|
TEST_ASSERT_TRUE(buildSensorJson(value, jsonDoc));
|
|
|
|
JsonObject diagnostic = jsonDoc["sensor"]["diagnostic"];
|
|
TEST_ASSERT_EQUAL(0, diagnostic["voltage"]);
|
|
}
|
|
|
|
void test_temp_sensor(void) {
|
|
StaticJsonDocument<200> jsonDoc;
|
|
uint32_t value = ID(TEMP_SENSOR) | TEMP(210) | TYPE(SensorType::TEMPERATURE);
|
|
TEST_ASSERT_TRUE(buildSensorJson(value, jsonDoc));
|
|
|
|
JsonObject sensor = jsonDoc["sensor"];
|
|
TEST_ASSERT_EQUAL(TEMP_SENSOR, sensor["id"]);
|
|
TEST_ASSERT_EQUAL(21, sensor["temperature"]);
|
|
}
|
|
|
|
void test_temp_sensor_with_voltage(void) {
|
|
StaticJsonDocument<200> jsonDoc;
|
|
uint32_t value = ID(TEMP_SENSOR) | TEMP(320) | TYPE(SensorType::TEMPERATURE) | VCC(2847L);
|
|
TEST_ASSERT_TRUE(buildSensorJson(value, jsonDoc));
|
|
|
|
JsonObject sensor = jsonDoc["sensor"];
|
|
TEST_ASSERT_EQUAL(TEMP_SENSOR, sensor["id"]);
|
|
TEST_ASSERT_EQUAL(32, sensor["temperature"]);
|
|
|
|
JsonObject diagnostic = sensor["diagnostic"];
|
|
TEST_ASSERT_EQUAL(2.847, diagnostic["voltage"]);
|
|
}
|
|
|
|
void test_oil_sensor(void) {
|
|
StaticJsonDocument<200> jsonDoc;
|
|
uint32_t value = ID(OIL_SENSOR) | VALUE(150) | TYPE(SensorType::GENERIC);
|
|
TEST_ASSERT_TRUE(buildSensorJson(value, jsonDoc));
|
|
|
|
JsonObject sensor = jsonDoc["sensor"];
|
|
TEST_ASSERT_EQUAL(OIL_SENSOR, sensor["id"]);
|
|
TEST_ASSERT_EQUAL(150, sensor["value"]);
|
|
}
|
|
|
|
void test_oil_sensor_with_voltage(void) {
|
|
StaticJsonDocument<200> jsonDoc;
|
|
uint32_t value = ID(OIL_SENSOR) | TEMP(200) | TYPE(SensorType::GENERIC) | VCC(2847L);
|
|
TEST_ASSERT_TRUE(buildSensorJson(value, jsonDoc));
|
|
|
|
JsonObject sensor = jsonDoc["sensor"];
|
|
TEST_ASSERT_EQUAL(OIL_SENSOR, sensor["id"]);
|
|
TEST_ASSERT_EQUAL(200, sensor["value"]);
|
|
|
|
JsonObject diagnostic = sensor["diagnostic"];
|
|
TEST_ASSERT_EQUAL(2.847, diagnostic["voltage"]);
|
|
}
|
|
|
|
void test_presence_sensor(void) {
|
|
StaticJsonDocument<200> jsonDoc;
|
|
uint32_t value = ID(PRESENCE_SENSOR) | STATE(1) | TYPE(SensorType::CONTACT);
|
|
TEST_ASSERT_TRUE(buildSensorJson(value, jsonDoc));
|
|
|
|
JsonObject sensor = jsonDoc["sensor"];
|
|
TEST_ASSERT_EQUAL(PRESENCE_SENSOR, sensor["id"]);
|
|
TEST_ASSERT_EQUAL_STRING("ON", sensor["state"]);
|
|
}
|
|
|
|
void test_presence_sensor_with_voltage(void) {
|
|
StaticJsonDocument<200> jsonDoc;
|
|
uint32_t value = ID(PRESENCE_SENSOR) | STATE(0) | TYPE(SensorType::CONTACT) | VCC(3847L);
|
|
TEST_ASSERT_TRUE(buildSensorJson(value, jsonDoc));
|
|
|
|
JsonObject sensor = jsonDoc["sensor"];
|
|
TEST_ASSERT_EQUAL(PRESENCE_SENSOR, sensor["id"]);
|
|
TEST_ASSERT_EQUAL_STRING("OFF", sensor["state"]);
|
|
|
|
JsonObject diagnostic = sensor["diagnostic"];
|
|
TEST_ASSERT_EQUAL(3.847, diagnostic["voltage"]);
|
|
}
|
|
|
|
int main(int argc, char **argv) {
|
|
UNITY_BEGIN();
|
|
RUN_TEST(test_unknown_sensor_type);
|
|
RUN_TEST(test_max_temp);
|
|
RUN_TEST(test_max_value);
|
|
RUN_TEST(test_overflow_value);
|
|
RUN_TEST(test_max_voltage);
|
|
RUN_TEST(test_overflow_voltage);
|
|
RUN_TEST(test_temp_sensor);
|
|
RUN_TEST(test_temp_sensor_with_voltage);
|
|
RUN_TEST(test_oil_sensor);
|
|
RUN_TEST(test_oil_sensor_with_voltage);
|
|
RUN_TEST(test_presence_sensor);
|
|
RUN_TEST(test_presence_sensor_with_voltage);
|
|
UNITY_END();
|
|
|
|
return 0;
|
|
}
|