Files
UCS_Status_Monitor/UCS_Status_Monitor.UnitTest/Teltonika_Test.cs
Martijn Scheepers 24cee0af4d Fix warnings in test
2025-12-02 09:22:05 +01:00

417 lines
17 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Diagnostics;
using System.IO;
using UCS_Status_Monitor.MQTT;
using UCS_Status_Monitor.MQTT.Teltonika;
namespace UCS_Status_Monitor.UnitTest
{
[TestClass]
public class Teltonika_Test
{
//[TestMethod]
//public void Parse_Teltonika_Json()
//{
// string json = "";
// string device = "testdevice";
// string location = "somewhere";
// var message = TeltonikaMessage.Deserialize(json, device, location);
// Assert.IsNull(message);
// json = "lufhy2q9478ry78aq39 f3g789fy egy 3ghuieg heasuhg egh eisulgh uielg hsalgire";
// message = TeltonikaMessage.Deserialize(json, device, location);
// Assert.IsNull(message);
// json = "[\"Temp\":\"360\",\"Uptime\":\"100680\",\"ThisMonthRX\":\"631408118\",\"ThisMonthTX\":\"967449262\",\"RSSI\":\"-62\",\"LastMonthRX\":\"63108118\",\"LastMonthTX\":\"94926132\",\"WanIp\":\"178,224,157,191\"]";
// message = TeltonikaMessage.Deserialize(json, device, location);
// Assert.IsNotNull(message);
// Assert.IsInstanceOfType(message, typeof(TeltonikaMessage));
// Assert.AreEqual(device, message.Device);
// Assert.AreEqual(location, message.Location);
// //Temp
// Assert.AreEqual(36.0, message.TempValue());
// Assert.AreEqual("36℃", message.Temp);
// //Uptime
// TimeSpan uptime = TimeSpan.FromSeconds(100680);
// Assert.AreEqual(uptime, message.UptimeValue());
// Assert.AreEqual("1 days 3 hours 58 min 0 sec", message.Uptime);
// //ThisMonthRX
// Assert.AreEqual((UInt32)631408118, message.ThisMonthRX);
// //ThisMonthTX
// Assert.AreEqual((UInt32)967449262, message.ThisMonthTX);
// //LastMonthRX
// Assert.AreEqual((UInt32)63108118, message.LastMonthRX);
// //LastMonthTX
// Assert.AreEqual((UInt32)94926132, message.LastMonthTX);
// //RSSI
// Assert.AreEqual(-62, message.RSSI);
// //WanIp
// Assert.AreEqual("178.224.157.191", message.WanIp);
//}
[TestMethod]
[DeploymentItem(@"TeltonikaV2.json")]
public void MyTest()
{
var myfile = "TeltonikaV2.json";
Assert.IsTrue(File.Exists(myfile), "Deployment failed: {0} did not get deployed.", myfile);
var json = File.ReadAllText(myfile);
Debug.WriteLine(json);
}
//[TestMethod]
//[DeploymentItem(@"TeltonikaV2.json")]
//public void Parse_Teltonika_V2_Json()
//{
// string json = "";
// string device = "testdevice";
// string location = "somewhere";
// var message = TeltonikaMessageV2.Deserialize(json, device, location);
// Assert.IsNull(message);
// json = "lufhy2q9478ry78aq39 f3g789fy egy 3ghuieg heasuhg egh eisulgh uielg hsalgire";
// message = TeltonikaMessageV2.Deserialize(json, device, location);
// Assert.IsNull(message);
// var myfile = "TeltonikaV2.json";
// Assert.IsTrue(File.Exists(myfile), "Deployment failed: {0} did not get deployed.", myfile);
// json = File.ReadAllText(myfile);
// Debug.WriteLine(json);
// message = TeltonikaMessageV2.Deserialize(json, device, location);
// Assert.IsNotNull(message);
// Assert.IsInstanceOfType(message, typeof(TeltonikaMessageV2));
// Assert.AreEqual(device, message.Device);
// Assert.AreEqual(location, message.Location);
// //Temp
// Assert.AreEqual(380, message.GSM.Temperature);
// Assert.AreEqual(38.0, message.GSM.TempValue());
// Assert.AreEqual("38℃", message.GSM.TempString());
// message.GSM.Temperature = null;
// Assert.IsNull(message.GSM.Temperature);
// Assert.AreEqual(0, message.GSM.TempValue());
// Assert.AreEqual("??℃", message.GSM.TempString());
// //Uptime
// //Assert.AreEqual(1698233689, message.Base.Time);
// //TimeSpan uptime = TimeSpan.FromSeconds(1698233689);
// //Assert.AreEqual(uptime, message.Base.UptimeValue());
// //Assert.AreEqual("1 days 3 hours 58 min 0 sec", message.Base.UptimeString(new DateTime(2023, 10, 9, 0, 0, 00)));
// //ThisMonthRX
// Assert.AreEqual(30888399, message.Usage.Rx);
// //ThisMonthTX
// Assert.AreEqual(4918720, message.Usage.Tx);
// ////LastMonthRX
// //Assert.AreEqual((UInt32)63108118, message.LastMonthRX);
// ////LastMonthTX
// //Assert.AreEqual((UInt32)94926132, message.LastMonthTX);
// //RSSI
// Assert.AreEqual(-72, message.GSM.RSSI);
// //WanIp
// Assert.AreEqual("100.65.5.230", message.GSM.IpV4[0]);
//}
[TestMethod]
[DeploymentItem(@"TeltonikaV2.json")]
[DeploymentItem(@"TeltonikaV2-7_06_19.json")]
public void Parse_Teltonika_V2_Json()
{
string json = "";
string device = "testdevice";
string location = "somewhere";
TeltonikaMessageV2? message = MQTTDeviceMessage.Deserialize<TeltonikaMessageV2>(json, device, location);
Assert.IsNull(message);
json = "lufhy2q9478ry78aq39 f3g789fy egy 3ghuieg heasuhg egh eisulgh uielg hsalgire";
message = MQTTDeviceMessage.Deserialize<TeltonikaMessageV2>(json, device, location);
Assert.IsNull(message);
var myfile = "TeltonikaV2.json";
Assert.IsTrue(File.Exists(myfile), "Deployment failed: {0} did not get deployed.", myfile);
json = File.ReadAllText(myfile);
Debug.WriteLine(json);
message = MQTTDeviceMessage.Deserialize<TeltonikaMessageV2>(json, device, location);
Assert.IsNotNull(message);
Assert.IsInstanceOfType<TeltonikaMessageV2>(message);
Assert.AreEqual(device, message.Device);
Assert.AreEqual(location, message.Location);
//Temp
Assert.IsNotNull(message.GSM);
Assert.AreEqual(380, message.GSM.Temperature);
Assert.AreEqual(38.0, message.GSM.TempValue());
Assert.AreEqual("38℃", message.GSM.TempString());
message.GSM.Temperature = null;
Assert.IsNull(message.GSM.Temperature);
Assert.AreEqual(0, message.GSM.TempValue());
Assert.AreEqual("??℃", message.GSM.TempString());
//Uptime
//Assert.AreEqual(1698233689, message.Base.Time);
//TimeSpan uptime = TimeSpan.FromSeconds(1698233689);
//Assert.AreEqual(uptime, message.Base.UptimeValue());
//Assert.AreEqual("1 days 3 hours 58 min 0 sec", message.Base.UptimeString(new DateTime(2023, 10, 9, 0, 0, 00)));
Assert.IsNotNull(message.Usage);
//ThisMonthRX
Assert.AreEqual((UInt64)30888399, message.Usage.Rx);
//ThisMonthTX
Assert.AreEqual((UInt64)4918720, message.Usage.Tx);
////LastMonthRX
//Assert.AreEqual((UInt32)63108118, message.LastMonthRX);
////LastMonthTX
//Assert.AreEqual((UInt32)94926132, message.LastMonthTX);
//RSSI
Assert.AreEqual(-72, message.GSM.RSSI);
//WanIp
Assert.IsNotNull(message.GSM.IpV4);
Assert.AreEqual("100.65.5.230", message.GSM.IpV4[0]);
}
[TestMethod]
[DeploymentItem(@"TeltonikaV2-7_06_19.json")]
public void Parse_Teltonika_V2_Firmware_7_06_19_Json()
{
string device = "testdevice";
string location = "somewhere";
var myfile = "TeltonikaV2-7_06_19.json";
Assert.IsTrue(File.Exists(myfile), "Deployment failed: {0} did not get deployed.", myfile);
string json = File.ReadAllText(myfile);
Debug.WriteLine(json);
var message = MQTTDeviceMessage.Deserialize<TeltonikaMessageV2>(json, device, location);
Assert.IsNotNull(message);
Assert.IsInstanceOfType<TeltonikaMessageV2>(message);
Assert.AreEqual(device, message.Device);
Assert.AreEqual(location, message.Location);
Assert.IsNotNull(message.Base);
Assert.AreEqual((uint)1755783197, message.Base.Time);
//Temp
Assert.IsNotNull(message.GSM);
Assert.AreEqual(390, message.GSM.Temperature);
Assert.AreEqual(39.0, message.GSM.TempValue());
Assert.AreEqual("39℃", message.GSM.TempString());
message.GSM.Temperature = null;
Assert.IsNull(message.GSM.Temperature);
Assert.AreEqual(0, message.GSM.TempValue());
Assert.AreEqual("??℃", message.GSM.TempString());
//Uptime
//Assert.AreEqual(1698233689, message.Base.Time);
//TimeSpan uptime = TimeSpan.FromSeconds(1698233689);
//Assert.AreEqual(uptime, message.Base.UptimeValue());
//Assert.AreEqual("1 days 3 hours 58 min 0 sec", message.Base.UptimeString(new DateTime(2023, 10, 9, 0, 0, 00)));
Assert.IsNotNull(message.Usage);
//ThisMonthRX
Assert.AreEqual((UInt64)24069, message.Usage.Rx);
//ThisMonthTX
Assert.AreEqual((UInt64)84, message.Usage.Tx);
////LastMonthRX
//Assert.AreEqual((UInt32)63108118, message.LastMonthRX);
////LastMonthTX
//Assert.AreEqual((UInt32)94926132, message.LastMonthTX);
//RSSI
Assert.AreEqual(-69, message.GSM.RSSI);
//WanIp
Assert.IsNotNull(message.GSM.IpV4);
Assert.AreEqual("178.225.75.54", message.GSM.IpV4[0]);
}
//[TestMethod]
//[DeploymentItem(@"TeltonikaV2.json")]
//public void Parse_Teltonika_V2_Json_2()
//{
// string json = "";
// string device = "testdevice";
// string location = "somewhere";
// var message = MQTTDevice.Deserialize<TeltonikaMessageV2>(json, device, location);
// Assert.IsNull(message);
// json = "lufhy2q9478ry78aq39 f3g789fy egy 3ghuieg heasuhg egh eisulgh uielg hsalgire";
// message = TeltonikaMessageV2.Deserialize(json, device, location);
// Assert.IsNull(message);
// var myfile = "TeltonikaV2.json";
// Assert.IsTrue(File.Exists(myfile), "Deployment failed: {0} did not get deployed.", myfile);
// json = File.ReadAllText(myfile);
// Debug.WriteLine(json);
// message = TeltonikaMessageV2.Deserialize(json, device, location);
// Assert.IsNotNull(message);
// Assert.IsInstanceOfType(message, typeof(TeltonikaMessageV2));
// Assert.AreEqual(device, message.Device);
// Assert.AreEqual(location, message.Location);
// //Temp
// Assert.AreEqual(380, message.GSM.Temperature);
// Assert.AreEqual(38.0, message.GSM.TempValue());
// Assert.AreEqual("38℃", message.GSM.TempString());
// message.GSM.Temperature = null;
// Assert.IsNull(message.GSM.Temperature);
// Assert.AreEqual(0, message.GSM.TempValue());
// Assert.AreEqual("??℃", message.GSM.TempString());
// //Uptime
// //Assert.AreEqual(1698233689, message.Base.Time);
// //TimeSpan uptime = TimeSpan.FromSeconds(1698233689);
// //Assert.AreEqual(uptime, message.Base.UptimeValue());
// //Assert.AreEqual("1 days 3 hours 58 min 0 sec", message.Base.UptimeString(new DateTime(2023, 10, 9, 0, 0, 00)));
// //ThisMonthRX
// Assert.AreEqual(30888399, message.Usage.Rx);
// //ThisMonthTX
// Assert.AreEqual(4918720, message.Usage.Tx);
// ////LastMonthRX
// //Assert.AreEqual((UInt32)63108118, message.LastMonthRX);
// ////LastMonthTX
// //Assert.AreEqual((UInt32)94926132, message.LastMonthTX);
// //RSSI
// Assert.AreEqual(-72, message.GSM.RSSI);
// //WanIp
// Assert.AreEqual("100.65.5.230", message.GSM.IpV4[0]);
//}
[TestMethod]
[DeploymentItem(@"TeltonikaV2.json")]
public void Parse_Teltonika_V2_Json_2()
{
string json = "";
string device = "testdevice";
string location = "somewhere";
TeltonikaMessageV2? message = MQTTDeviceMessage.Deserialize<TeltonikaMessageV2>(json, device, location);
Assert.IsNull(message);
json = "lufhy2q9478ry78aq39 f3g789fy egy 3ghuieg heasuhg egh eisulgh uielg hsalgire";
message = MQTTDeviceMessage.Deserialize<TeltonikaMessageV2>(json, device, location);
Assert.IsNull(message);
var myfile = "TeltonikaV2.json";
Assert.IsTrue(File.Exists(myfile), "Deployment failed: {0} did not get deployed.", myfile);
json = File.ReadAllText(myfile);
Debug.WriteLine(json);
message = MQTTDeviceMessage.Deserialize<TeltonikaMessageV2>(json, device, location);
Assert.IsNotNull(message);
Assert.IsInstanceOfType<TeltonikaMessageV2>(message);
Assert.AreEqual(device, message.Device);
Assert.AreEqual(location, message.Location);
//Temp
Assert.IsNotNull(message.GSM);
Assert.AreEqual(380, message.GSM.Temperature);
Assert.AreEqual(38.0, message.GSM.TempValue());
Assert.AreEqual("38℃", message.GSM.TempString());
message.GSM.Temperature = null;
Assert.IsNull(message.GSM.Temperature);
Assert.AreEqual(0, message.GSM.TempValue());
Assert.AreEqual("??℃", message.GSM.TempString());
//Uptime
Assert.IsNotNull(message.Base);
Assert.AreEqual((uint)1698233689, message.Base.Time);
Assert.AreEqual("2023-10-25 13:34:49", message.Base.LocalTime);
//TimeSpan uptime = TimeSpan.FromSeconds(1698233689);
//Assert.AreEqual(uptime, message.Base.UptimeValue());
//Assert.AreEqual("1 days 3 hours 58 min 0 sec", message.Base.UptimeString(new DateTime(2023, 10, 9, 0, 0, 00)));
Assert.IsNotNull(message.Usage);
//ThisMonthRX
Assert.AreEqual((UInt64)30888399, message.Usage.Rx);
//ThisMonthTX
Assert.AreEqual((UInt64)4918720, message.Usage.Tx);
////LastMonthRX
//Assert.AreEqual((UInt32)63108118, message.LastMonthRX);
////LastMonthTX
//Assert.AreEqual((UInt32)94926132, message.LastMonthTX);
//RSSI
Assert.AreEqual(-72, message.GSM.RSSI);
//WanIp
Assert.IsNotNull(message.GSM.IpV4);
Assert.AreEqual("100.65.5.230", message.GSM.IpV4[0]);
}
[TestMethod]
[DeploymentItem(@"TeltonikaV2Error.json")]
public void Parse_Teltonika_Error()
{
string device = "testdevice";
string location = "somewhere";
var myfile = "TeltonikaV2Error.json";
Assert.IsTrue(File.Exists(myfile), "Deployment failed: {0} did not get deployed.", myfile);
string json = File.ReadAllText(myfile);
Debug.WriteLine(json);
TeltonikaMessageV2? message = MQTTDeviceMessage.Deserialize<TeltonikaMessageV2>(json, device, location);
Assert.IsNotNull(message);
Assert.IsInstanceOfType<TeltonikaMessageV2>(message);
Assert.AreEqual(device, message.Device);
Assert.AreEqual(location, message.Location);
//Temp
Assert.IsNotNull(message.GSM);
Assert.AreEqual(470, message.GSM.Temperature);
Assert.AreEqual(47.0, message.GSM.TempValue());
Assert.AreEqual("47℃", message.GSM.TempString());
message.GSM.Temperature = null;
Assert.IsNull(message.GSM.Temperature);
Assert.AreEqual(0, message.GSM.TempValue());
Assert.AreEqual("??℃", message.GSM.TempString());
//Time
Assert.IsNotNull(message.Base);
Assert.AreEqual((uint)1748264319, message.Base.Time);
Assert.AreEqual("2025-05-26 14:58:39", message.Base.LocalTime);
//Usage
Assert.IsNotNull(message.Usage);
Assert.AreEqual((UInt64)1450717947, message.Usage.Rx);
Assert.AreEqual((UInt64)2629954194, message.Usage.Tx);
//RSSI
Assert.AreEqual(0, message.GSM.RSSI);
//WanIp
Assert.IsNotNull(message.GSM.IpV4);
Assert.AreEqual("178.225.152.54", message.GSM.IpV4[0]);
}
}
}