84 lines
2.5 KiB
C++
84 lines
2.5 KiB
C++
// 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 <ArduinoUnitTests.h>
|
|
#include <Arduino.h>
|
|
#include <OneWire.h>
|
|
#include <DallasTemperature.h>
|
|
|
|
// 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);
|
|
|
|
assertEqual(DEVICE_POWER_ON_RESET_C, -251);
|
|
assertEqualFloat(DEVICE_POWER_ON_RESET_F, -419.8, 0.1);
|
|
assertEqual(DEVICE_POWER_ON_RESET_RAW, -32128);
|
|
|
|
assertEqual(DEVICE_INSUFFICIENT_POWER_C, -250);
|
|
assertEqualFloat(DEVICE_INSUFFICIENT_POWER_F, -418.0, 0.1);
|
|
assertEqual(DEVICE_INSUFFICIENT_POWER_RAW, -32000);
|
|
}
|
|
|
|
// 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() |