Added templating tests
This commit is contained in:
parent
67ebd559d7
commit
8257e9ab51
@ -80,9 +80,6 @@ const char mqttFormat[] PROGMEM =
|
||||
"ispindel/${mdns}/interval:${sleep-interval}|"
|
||||
"ispindel/${mdns}/RSSI:${rssi}|";
|
||||
|
||||
//
|
||||
// Initialize the variables
|
||||
//
|
||||
void TemplatingEngine::initialize(float angle, float gravitySG,
|
||||
float corrGravitySG, float tempC,
|
||||
float runTime) {
|
||||
@ -138,10 +135,8 @@ void TemplatingEngine::initialize(float angle, float gravitySG,
|
||||
#endif
|
||||
}
|
||||
|
||||
//
|
||||
// Create the data using defined template.
|
||||
//
|
||||
const char* TemplatingEngine::create(TemplatingEngine::Templates idx) {
|
||||
// the useDefaultTemplate param is there to support unit tests.
|
||||
const char* TemplatingEngine::create(TemplatingEngine::Templates idx, bool useDefaultTemplate) {
|
||||
String fname;
|
||||
_baseTemplate.reserve(600);
|
||||
|
||||
@ -169,15 +164,16 @@ const char* TemplatingEngine::create(TemplatingEngine::Templates idx) {
|
||||
break;
|
||||
}
|
||||
|
||||
// TODO: Add code to load templates from disk if they exist.
|
||||
File file = LittleFS.open(fname, "r");
|
||||
if (file) {
|
||||
char buf[file.size() + 1];
|
||||
memset(&buf[0], 0, file.size() + 1);
|
||||
file.readBytes(&buf[0], file.size());
|
||||
_baseTemplate = String(&buf[0]);
|
||||
file.close();
|
||||
Log.notice(F("TPL : Template loaded from disk %s." CR), fname.c_str());
|
||||
if (!useDefaultTemplate) {
|
||||
File file = LittleFS.open(fname, "r");
|
||||
if (file) {
|
||||
char buf[file.size() + 1];
|
||||
memset(&buf[0], 0, file.size() + 1);
|
||||
file.readBytes(&buf[0], file.size());
|
||||
_baseTemplate = String(&buf[0]);
|
||||
file.close();
|
||||
Log.notice(F("TPL : Template loaded from disk %s." CR), fname.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
#if LOG_LEVEL == 6
|
||||
|
@ -200,7 +200,7 @@ class TemplatingEngine {
|
||||
}
|
||||
void initialize(float angle, float gravitySG, float corrGravitySG,
|
||||
float tempC, float runTime);
|
||||
const char *create(TemplatingEngine::Templates idx);
|
||||
const char *create(TemplatingEngine::Templates idx, bool useDefaultTemplate = false);
|
||||
};
|
||||
|
||||
#endif // SRC_TEMPLATING_HPP_
|
||||
|
@ -21,12 +21,77 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
#include <Arduino.h>
|
||||
#include <main.hpp>
|
||||
#include <templating.hpp>
|
||||
#include <config.hpp>
|
||||
#include <AUnit.h>
|
||||
|
||||
test(template_applyTemplate) {
|
||||
Serial.println("Not implemented yet (template_applyTemplate)");
|
||||
test(template_applyTemplate1) {
|
||||
TemplatingEngine e;
|
||||
char buffer[20];
|
||||
myConfig.setMDNS("gravitymon");
|
||||
|
||||
e.initialize(45.0, 1.123, 1.223, 21.2, 2.98);
|
||||
String s = e.create(TemplatingEngine::TEMPLATE_HTTP1);
|
||||
String id = myConfig.getID();
|
||||
String batt = convertFloatToString( myBatteryVoltage.getVoltage(), &buffer[0], 2);
|
||||
batt.trim();
|
||||
String v = "{\"name\" : \"gravitymon\", \"ID\": \"" + id + "\", \"token\" : \"\", \"interval\": 900, \"temperature\": 21.2, \"temp_units\": \"C\", \"gravity\": 1.1230, \"angle\": 45.00, \"battery\": " + batt + ", \"RSSI\": 31, \"corr-gravity\": 1.2230, \"gravity-unit\": \"G\", \"run-time\": 3.0 }";
|
||||
assertEqual(s, v);
|
||||
}
|
||||
|
||||
test(template_applyTemplate2) {
|
||||
TemplatingEngine e;
|
||||
char buffer[20];
|
||||
myConfig.setMDNS("gravitymon");
|
||||
|
||||
e.initialize(45.0, 1.123, 1.223, 21.2, 2.98);
|
||||
String s = e.create(TemplatingEngine::TEMPLATE_HTTP2);
|
||||
String id = myConfig.getID();
|
||||
String batt = convertFloatToString( myBatteryVoltage.getVoltage(), &buffer[0], 2);
|
||||
batt.trim();
|
||||
String v = "{\"name\" : \"gravitymon\", \"ID\": \"" + id + "\", \"token\" : \"\", \"interval\": 900, \"temperature\": 21.2, \"temp_units\": \"C\", \"gravity\": 1.1230, \"angle\": 45.00, \"battery\": " + batt + ", \"RSSI\": 31, \"corr-gravity\": 1.2230, \"gravity-unit\": \"G\", \"run-time\": 3.0 }";
|
||||
assertEqual(s, v);
|
||||
}
|
||||
|
||||
test(template_applyTemplate3) {
|
||||
TemplatingEngine e;
|
||||
char buffer[20];
|
||||
myConfig.setMDNS("gravitymon");
|
||||
|
||||
e.initialize(45.0, 1.123, 1.223, 21.2, 2.98);
|
||||
String s = e.create(TemplatingEngine::TEMPLATE_HTTP3);
|
||||
String id = myConfig.getID();
|
||||
String batt = convertFloatToString( myBatteryVoltage.getVoltage(), &buffer[0], 2);
|
||||
batt.trim();
|
||||
String v = "?name=gravitymon&id=" + id + "&token=&interval=900&temperature=21.2&temp-units=C&gravity=1.1230&angle=45.00&battery=" + batt + "&rssi=31&corr-gravity=1.2230&gravity-unit=G&run-time=3.0";
|
||||
assertEqual(s, v);
|
||||
}
|
||||
|
||||
test(template_applyTemplate4) {
|
||||
TemplatingEngine e;
|
||||
char buffer[20];
|
||||
myConfig.setMDNS("gravitymon");
|
||||
|
||||
e.initialize(45.0, 1.123, 1.223, 21.2, 2.98);
|
||||
String s = e.create(TemplatingEngine::TEMPLATE_INFLUX);
|
||||
String id = myConfig.getID();
|
||||
String batt = convertFloatToString( myBatteryVoltage.getVoltage(), &buffer[0], 2);
|
||||
batt.trim();
|
||||
String v = "measurement,host=gravitymon,device=" + id + ",temp-format=C,gravity-format=G gravity=1.1230,corr-gravity=1.2230,angle=45.00,temp=21.2,battery=" + batt + ",rssi=31\n";
|
||||
assertEqual(s, v);
|
||||
}
|
||||
|
||||
test(template_applyTemplate5) {
|
||||
TemplatingEngine e;
|
||||
char buffer[20];
|
||||
myConfig.setMDNS("gravitymon");
|
||||
|
||||
e.initialize(45.0, 1.123, 1.223, 21.2, 2.98);
|
||||
String s = e.create(TemplatingEngine::TEMPLATE_MQTT);
|
||||
String batt = convertFloatToString( myBatteryVoltage.getVoltage(), &buffer[0], 2);
|
||||
batt.trim();
|
||||
String v = "ispindel/gravitymon/tilt:45.00|ispindel/gravitymon/temperature:21.2|ispindel/gravitymon/temp_units:C|ispindel/gravitymon/battery:" + batt + "|ispindel/gravitymon/gravity:1.1230|ispindel/gravitymon/interval:900|ispindel/gravitymon/RSSI:31|";
|
||||
assertEqual(s, v);
|
||||
}
|
||||
|
||||
// EOF
|
Loading…
Reference in New Issue
Block a user