Files
DP44/DataPRO/UnitTest/DatabaseUnitTesting/DbAPITestsSensorsAnalog.cs
2026-04-17 14:55:32 -04:00

112 lines
6.6 KiB
C#

using DTS.Common.Classes.Hardware;
using DTS.Common.Classes.Sensors;
using DTS.Common.Enums.Sensors;
using DTS.Common.Interface.Sensors;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
namespace DatabaseUnitTesting
{
[TestFixture]
public partial class DBAPITests
{
[Test]
public void TestSensorsDeleteAll()
{
if (!_setup) { Setup(); }
TestLogin();
var connections = DbAPI.DbAPI.Connections.GetActiveConnections();
var sensor = CreateFakeSensor();
var hr = DbAPI.DbAPI.Sensors.SensorsAnalogUpdateInsert(_user, connections.First(), sensor);
Assert.AreEqual(0, hr, "SensorsAnalogUpdateInsert should return 0");
Assert.IsTrue(sensor.Id > 0, "Inserted sensor Id should be > 0");
hr = DbAPI.DbAPI.Sensors.SensorsAnalogGet(_user, connections.First(), null, sensor.SerialNumber, null, out var records);
Assert.AreEqual(0, hr, "SensorsAnalogGet should return 0 for inserted sensor");
Assert.IsTrue(null != records && 1 == records.Length, "SensorsAnalogGet should return 1 sensor");
hr = DbAPI.DbAPI.Sensors.SensorsDeleteAll(_user, connections.First());
Assert.AreEqual(0, hr, "SensorsDeleteAll should return 0");
hr = DbAPI.DbAPI.Sensors.SensorsAnalogGet(_user, connections.First(), null, null, null, out records);
Assert.AreEqual(0, hr, "SensorsAnalogGet should return 0");
Assert.IsTrue(null != records && records.Any(), "After SensorsAnalogDelete test specific A and C should exist");
Assert.IsTrue(records.Any(record => record.SerialNumber == SensorConstants.TEST_SPECIFIC_ANALOG_SERIAL)
&& records.Any(record => record.SerialNumber == SensorConstants.TEST_SPECIFIC_CLOCK_SERIAL),
"TSA and TSC should still exist after delete");
}
[Test]
public void TestSensorsAnalogInsertAndDelete()
{
if (!_setup) { Setup(); }
TestLogin();
var connections = DbAPI.DbAPI.Connections.GetActiveConnections();
var sensor = CreateFakeSensor();
var hr = DbAPI.DbAPI.Sensors.SensorsAnalogUpdateInsert(_user, connections.First(), sensor);
Assert.AreEqual(0, hr, "SensorsAnalogUpdateInsert should return 0");
Assert.IsTrue(sensor.Id > 0, "Inserted sensor Id should be > 0");
hr = DbAPI.DbAPI.Sensors.SensorsAnalogGet(_user, connections.First(), null, sensor.SerialNumber, null, out var records);
Assert.AreEqual(0, hr, "SensorsAnalogGet should return 0 for inserted sensor");
Assert.IsTrue(null != records && 1 == records.Length, "SensorsAnalogGet should return 1 sensor");
hr = DbAPI.DbAPI.Sensors.SensorsDelete(_user, connections.First(), sensor.Id, 0);
Assert.AreEqual(0, hr, "SensorsDelete should return 0 for inserted sensor");
hr = DbAPI.DbAPI.Sensors.SensorsAnalogGet(_user, connections.First(), null, sensor.SerialNumber, null, out records);
Assert.IsTrue(0 == hr && (null == records || 0 == records.Length), "Sensor should no longer return from SensorsAnalogGet");
}
[Test]
public void TestSensorAnalogInsertAndDeleteShouldFail()
{
if (!_setup) { Setup(); }
TestLogin();
var connections = DbAPI.DbAPI.Connections.GetActiveConnections();
var sensor = CreateFakeSensor();
var hr = DbAPI.DbAPI.Sensors.SensorsAnalogUpdateInsert(null, connections.First(), sensor);
Assert.AreNotEqual(0, hr, "SensorsAnalogUpdateInsert should fail without user");
hr = DbAPI.DbAPI.Sensors.SensorsAnalogUpdateInsert(_user, null, sensor);
Assert.AreNotEqual(0, hr, "SensorsAnalogUpdateInsert should fail without connect");
hr = DbAPI.DbAPI.Sensors.SensorsAnalogUpdateInsert(_user, connections.First(), sensor);
Assert.AreEqual(0, hr, "SensorsAnalogUpdateInsert should return 0");
hr = DbAPI.DbAPI.Sensors.SensorsDelete(null, connections.First(), sensor.Id, 0);
Assert.AreNotEqual(0, hr, "SensorsDelete should fail without user");
hr = DbAPI.DbAPI.Sensors.SensorsDelete(_user, null, sensor.Id, 0);
Assert.AreNotEqual(0, hr, "SensorsDelete should fail without connection");
hr = DbAPI.DbAPI.Sensors.SensorsDelete(_user, connections.First(), sensor.Id, 0);
}
[Test]
public void TestSensorsAnalogBridgeResistanceGet()
{
if (!_setup) { Setup(); }
TestLogin();
var connections = DbAPI.DbAPI.Connections.GetActiveConnections();
var sensor = CreateFakeSensor();
var hr = DbAPI.DbAPI.Sensors.SensorsAnalogUpdateInsert(_user, connections.First(), sensor);
Assert.AreEqual(0, hr, "SensorsAnalogUpdateInsert should return 0");
Assert.IsTrue(sensor.Id > 0, "Inserted sensor Id should be > 0");
hr = DbAPI.DbAPI.Sensors.SensorsAnalogGet(_user, connections.First(), null, sensor.SerialNumber, null, out var records);
Assert.AreEqual(0, hr, "SensorsAnalogGet should return 0 for inserted sensor");
Assert.IsTrue(null != records && 1 == records.Length, "SensorsAnalogGet should return 1 sensor");
hr = DbAPI.DbAPI.Sensors.SensorsAnalogBridgeResistanceGet(_user, connections.First(), sensor.SerialNumber, out var resistance);
Assert.AreEqual(0, hr, "SensorsAnalogBridgeResistanceGet returns 0");
Assert.AreEqual(resistance, FAKE_BRIDGE_RESISTANCE_OMS, "BridgeResistance returns the same as was set");
hr = DbAPI.DbAPI.Sensors.SensorsDelete(_user, connections.First(), sensor.Id, 0);
Assert.AreEqual(0, hr, "SensorsDelete should return 0 for inserted sensor");
hr = DbAPI.DbAPI.Sensors.SensorsAnalogGet(_user, connections.First(), null, sensor.SerialNumber, null, out records);
Assert.IsTrue(0 == hr && (null == records || 0 == records.Length), "Sensor should no longer return from SensorsAnalogGet");
}
private const double FAKE_BRIDGE_RESISTANCE_OMS = 350;
private IAnalogDbRecord CreateFakeSensor()
{
var sensor = new AnalogDbRecord();
sensor.Created = DateTime.Now;
sensor.LastModified = DateTime.Now;
sensor.EId = "";
sensor.SerialNumber = new Guid().ToString();
sensor.BridgeResistance = FAKE_BRIDGE_RESISTANCE_OMS;
return sensor;
}
}
}