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

122 lines
8.6 KiB
C#

using System;
using System.Data.SqlClient;
using NUnit.Framework;
using System.Data;
namespace DatabaseUnitTesting
{
[TestFixture]
public class SensorsAnalogTests : TestSetups
{
[Test]
// ============================================================
// Send new valid analog sensor parameters to sp_SensorsAnalogUpdateInsert and
// compare all fields except LastModified and new ID. Pass if all fields in SensorsAnalog
// table are entered.
// ============================================================
[Category("sp_SensorsAnalogUpdateInsert")]
public void VerifyWriteToAnalogTable_sp_SensorsAnalogUpdateInsertTest()
{
string filename = TestResultPath + "AnalogSensorInsertTest.xml";
// only data in SensorsAnalog table will be compared
UnitTests.AddObjectComparison("dbo", "SensorsAnalog");
// But the LastModified column is excluded from comparison,
// just to demonstrate how we do it.
UnitTests.AddColumnToIgnore("dbo", "SensorsAnalog", "LastModified");
UnitTests.AddColumnToIgnore("dbo", "SensorsAnalog", "Id");
UnitTests.AddColumnToIgnore("dbo", "SensorsAnalog", "Created");
Command.CommandType = CommandType.StoredProcedure;
Command.CommandText = "sp_SensorsAnalogUpdateInsert";
Command.Parameters.Add(new SqlParameter("@SerialNumber", SqlDbType.NVarChar, 50) { Value = "CubicSensor_18" });
Command.Parameters.Add(new SqlParameter("@UserSerialNumber", SqlDbType.NVarChar, 50) { Value = "" });
Command.Parameters.Add(new SqlParameter("@Model", SqlDbType.NVarChar, 50) { Value = "" });
Command.Parameters.Add(new SqlParameter("@Manufacturer", SqlDbType.NVarChar, 50) { Value = "DTS" });
Command.Parameters.Add(new SqlParameter("@Status", SqlDbType.SmallInt) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@MeasurementUnit", SqlDbType.NVarChar, 50) { Value = "mm" });
Command.Parameters.Add(new SqlParameter("@OffsetToleranceLow", SqlDbType.Float) { Value = -100 });
Command.Parameters.Add(new SqlParameter("@OffsetToleranceHigh", SqlDbType.Float) { Value = 100 });
Command.Parameters.Add(new SqlParameter("@eId", SqlDbType.NVarChar, 50) { Value = "AABBCCDD" });
Command.Parameters.Add(new SqlParameter("@Capacity", SqlDbType.Float) { Value = 2000 });
Command.Parameters.Add(new SqlParameter("@Comment", SqlDbType.NVarChar, 255) { Value = "" });
Command.Parameters.Add(new SqlParameter("@BridgeType", SqlDbType.SmallInt) { Value = 3 });
Command.Parameters.Add(new SqlParameter("@BridgeLegMode", SqlDbType.SmallInt) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@Shunt", SqlDbType.SmallInt) { Value = 1 });
Command.Parameters.Add(new SqlParameter("@Invert", SqlDbType.Bit) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@UserValue1", SqlDbType.NVarChar, 50) { Value = "" });
Command.Parameters.Add(new SqlParameter("@UserValue2", SqlDbType.NVarChar, 50) { Value = "" });
Command.Parameters.Add(new SqlParameter("@UserValue3", SqlDbType.NVarChar, 50) { Value = "" });
Command.Parameters.Add(new SqlParameter("@FilterClass", SqlDbType.NVarChar, 50) { Value = "None" });
Command.Parameters.Add(new SqlParameter("@BridgeResistance", SqlDbType.Float) { Value = 349 });
Command.Parameters.Add(new SqlParameter("@IsoCode", SqlDbType.NVarChar, 50) { Value = "???????????????P" });
Command.Parameters.Add(new SqlParameter("@CheckOffset", SqlDbType.Bit) { Value = 1 });
Command.Parameters.Add(new SqlParameter("@SupportedExcitation", SqlDbType.NVarChar, 50) { Value = "Volt5" });
Command.Parameters.Add(new SqlParameter("@InitialEU", SqlDbType.Float) { Value = .501 });
Command.Parameters.Add(new SqlParameter("@CalInterval", SqlDbType.Int) { Value = 365 });
Command.Parameters.Add(new SqlParameter("@CalibrationSignal", SqlDbType.Bit) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@InternalShuntResistance", SqlDbType.Float) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@ExternalShuntResistance", SqlDbType.Float) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@UniPolar", SqlDbType.Bit) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@RangeLow", SqlDbType.Float) { Value = 10 });
Command.Parameters.Add(new SqlParameter("@RangeAve", SqlDbType.Float) { Value = 100 });
Command.Parameters.Add(new SqlParameter("@RangeHigh", SqlDbType.Float) { Value = 1000 });
Command.Parameters.Add(new SqlParameter("@Created", SqlDbType.DateTime) { Value = DateTime.Now });
Command.Parameters.Add(new SqlParameter("@TimesUsed", SqlDbType.BigInt) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@SensorCategory", SqlDbType.Int) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@BypassFilter", SqlDbType.Bit) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@CouplingMode", SqlDbType.SmallInt) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@Version", SqlDbType.Int) { Value = 1 });
Command.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = DateTime.Now });
Command.Parameters.Add(new SqlParameter("@ModifiedBy", SqlDbType.NVarChar, 50) { Value = "TestUser" });
Command.Parameters.Add(new SqlParameter("@LocalOnly", SqlDbType.Bit) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@AxisNumber", SqlDbType.SmallInt) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@NumberOfAxes", SqlDbType.SmallInt) { Value = 1 });
Command.Parameters.Add(new SqlParameter("@UserTags", SqlDbType.VarBinary) { Value = new byte[10 * sizeof(int)] });
Command.Parameters.Add(new SqlParameter("@DoNotUse", SqlDbType.Bit) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@Broken", SqlDbType.Bit) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@DiagnosticsMode", SqlDbType.Bit) { Value = 0 });
Command.Parameters.Add(new SqlParameter("@FirstUseDate", SqlDbType.DateTime) { Value = DBNull.Value });
Command.Parameters.Add(new SqlParameter("@LatestCalibrationId", SqlDbType.Int) { Value = DBNull.Value });
var newIdParam = new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output };
Command.Parameters.Add(newIdParam);
var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output };
Command.Parameters.Add(errorNumberParam);
var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output };
Command.Parameters.Add(errorMessageParam);
Command.ExecuteNonQuery();
if (BSETUPMODE)
UnitTests.WriteDiffsToXml(filename);
else
Assert.IsTrue(UnitTests.CompareDiffsToXml(filename));
}
//[Test]
// ============================================================
// Send valid analog sensor parameters to sp_SensorsAnalogUpdateInsert for a sensor
// already in the database and compare all fields except LastModified, new ID, and Created.
// Pass if all fields in SensorsAnalog table are entered.
// ============================================================
//[Test]
// ============================================================
// Send valid analog sensor parameters to sp_SensorsAnalogUpdateInsert for a sensor
// already in the database and verify no new row is created in dbo.Sensors.
//
// ============================================================
//[Test]
// ============================================================
// Send valid analog sensor parameters to sp_SensorsAnalogUpdateInsert for a new sensor
// to be entered into the db and verify a new row is created in dbo.Sensors.
//
// ============================================================
}
}