diff --git a/test/unit_test_001.cpp b/test/unit_test_001.cpp new file mode 100644 index 0000000..54fefc2 --- /dev/null +++ b/test/unit_test_001.cpp @@ -0,0 +1,76 @@ +// FILE: unit_test_001.cpp +// AUTHOR: Miles Burton / Rob Tillaart +// DATE: 2021-01-10 +// PURPOSE: unit tests for the Arduino-Temperature-Control-Library +// https://github.com/MilesBurton/Arduino-Temperature-Control-Library + + +#include +#include +#include +#include + +// Mock pin for testing +#define ONE_WIRE_BUS 2 + +unittest_setup() { + fprintf(stderr, "VERSION: %s\n", DALLASTEMPLIBVERSION); +} + +unittest_teardown() { + fprintf(stderr, "\n"); +} + +// Test constants defined in the library +unittest(test_models) { + assertEqual(0x10, DS18S20MODEL); + assertEqual(0x28, DS18B20MODEL); + assertEqual(0x22, DS1822MODEL); + assertEqual(0x3B, DS1825MODEL); + assertEqual(0x42, DS28EA00MODEL); +} + +// Test error codes defined in the library +unittest(test_error_code) { + assertEqual(DEVICE_DISCONNECTED_C, -127); + assertEqual(DEVICE_DISCONNECTED_F, -196.6); + assertEqual(DEVICE_DISCONNECTED_RAW, -7040); + + assertEqual(DEVICE_FAULT_OPEN_C, -254); + assertEqualFloat(DEVICE_FAULT_OPEN_F, -425.2, 0.1); + assertEqual(DEVICE_FAULT_OPEN_RAW, -32512); + + assertEqual(DEVICE_FAULT_SHORTGND_C, -253); + assertEqualFloat(DEVICE_FAULT_SHORTGND_F, -423.4, 0.1); + assertEqual(DEVICE_FAULT_SHORTGND_RAW, -32384); + + assertEqual(DEVICE_FAULT_SHORTVDD_C, -252); + assertEqualFloat(DEVICE_FAULT_SHORTVDD_F, -421.6, 0.1); + assertEqual(DEVICE_FAULT_SHORTVDD_RAW, -32256); +} + +// Test basic initialization and functionality of the DallasTemperature library +unittest(test_initialization) { + OneWire oneWire(ONE_WIRE_BUS); + DallasTemperature sensors(&oneWire); + + sensors.begin(); + + // Initially, there should be no devices detected + assertEqual(0, sensors.getDeviceCount()); + assertFalse(sensors.isParasitePowerMode()); +} + +// Simulate a basic temperature read (mocked) +unittest(test_temperature_read) { + OneWire oneWire(ONE_WIRE_BUS); + DallasTemperature sensors(&oneWire); + + sensors.begin(); + + // Mock reading temperature + float tempC = sensors.getTempCByIndex(0); + assertEqual(DEVICE_DISCONNECTED_C, tempC); // Simulated no device connected +} + +unittest_main() \ No newline at end of file diff --git a/test/unit_test_001.cpp.disabled b/test/unit_test_001.cpp.disabled deleted file mode 100644 index 45c2d09..0000000 --- a/test/unit_test_001.cpp.disabled +++ /dev/null @@ -1,81 +0,0 @@ -// DISABLED AS NOT ALL STD LIBRARIES ARE MOCKED / INCLUDEABLE - -// -// FILE: unit_test_001.cpp -// AUTHOR: Miles Burton / Rob Tillaart -// DATE: 2021-01-10 -// PURPOSE: unit tests for the Arduino-Temperature-Control-Library -// https://github.com/MilesBurton/Arduino-Temperature-Control-Library -// - -// #include -// #include -// #include -// #include - -// // Mock pin for testing -// #define ONE_WIRE_BUS 2 - -// unittest_setup() { -// fprintf(stderr, "VERSION: %s\n", DALLASTEMPLIBVERSION); -// } - -// unittest_teardown() { -// fprintf(stderr, "\n"); -// } - -// // Test constants defined in the library -// unittest(test_models) { -// assertEqual(0x10, DS18S20MODEL); -// assertEqual(0x28, DS18B20MODEL); -// assertEqual(0x22, DS1822MODEL); -// assertEqual(0x3B, DS1825MODEL); -// assertEqual(0x42, DS28EA00MODEL); -// } - -// // Test error codes defined in the library -// unittest(test_error_code) { -// assertEqual(DEVICE_DISCONNECTED_C, -127); -// assertEqual(DEVICE_DISCONNECTED_F, -196.6); -// assertEqual(DEVICE_DISCONNECTED_RAW, -7040); - -// assertEqual(DEVICE_FAULT_OPEN_C, -254); -// assertEqualFloat(DEVICE_FAULT_OPEN_F, -425.2, 0.1); -// assertEqual(DEVICE_FAULT_OPEN_RAW, -32512); - -// assertEqual(DEVICE_FAULT_SHORTGND_C, -253); -// assertEqualFloat(DEVICE_FAULT_SHORTGND_F, -423.4, 0.1); -// assertEqual(DEVICE_FAULT_SHORTGND_RAW, -32384); - -// assertEqual(DEVICE_FAULT_SHORTVDD_C, -252); -// assertEqualFloat(DEVICE_FAULT_SHORTVDD_F, -421.6, 0.1); -// assertEqual(DEVICE_FAULT_SHORTVDD_RAW, -32256); -// } - -// // Test basic initialization and functionality of the DallasTemperature library -// unittest(test_initialization) { -// OneWire oneWire(ONE_WIRE_BUS); -// DallasTemperature sensors(&oneWire); - -// sensors.begin(); - -// // Initially, there should be no devices detected -// assertEqual(0, sensors.getDeviceCount()); -// assertFalse(sensors.isParasitePowerMode()); -// } - -// // Simulate a basic temperature read (mocked) -// unittest(test_temperature_read) { -// OneWire oneWire(ONE_WIRE_BUS); -// DallasTemperature sensors(&oneWire); - -// sensors.begin(); - -// // Mock reading temperature -// float tempC = sensors.getTempCByIndex(0); -// assertEqual(DEVICE_DISCONNECTED_C, tempC); // Simulated no device connected -// } - -// unittest_main() - -// -------- \ No newline at end of file