Files
DP44/DataPRO/UnitTest/DatabaseUnitTesting/DbAPITestsTestSetupHardware.cs

171 lines
8.7 KiB
C#
Raw Normal View History

2026-04-17 14:55:32 -04:00
using DbAPI.Errors;
using DTS.Common.Classes.Groups;
using DTS.Common.Classes.TestSetups;
using DTS.Common.Interface.DataRecorders;
using DTS.Common.Interface.Groups;
using DTS.Common.Interface.TestSetups;
using NUnit.Framework;
using System;
using System.Linq;
namespace DatabaseUnitTesting
{
[TestFixture]
public partial class DBAPITests
{
[Test]
public void TestTestSetupHardwarePositive()
{
if (!_setup) { Setup(); }
TestLogin();
var con = DbAPI.DbAPI.Connections.GetActiveConnections()[0];
var test = CreateFakeTestSetup();
_ = DbAPI.DbAPI.TestSetups.TestSetupsUpdateInsert(_user, con, 0, ref test);
var group = CreateFakeGroup("Fake Test Group", null);
var channel = CreateFakeChannel();
var hardware = CreateFakeDAS();
var hwChannels = CreateFakeChannels(hardware);
_ = DbAPI.DbAPI.DAS.DASInsert(_user, con, hardware);
var chIdx = 0;
foreach (var hwCh in hwChannels)
{
IDASChannelDBRecord iCh = hwCh;
_ = DbAPI.DbAPI.DAS.DASChannelsInsert(_user, con, $"{hardware.SerialNumber}_{hardware.DASType}", ref iCh);
chIdx++;
}
var hwRecord = new TestSetupHardwareRecord()
{
AddDAS = true,
DASId = hardware.DASId,
AntiAliasFilterRate = 2000,
IsClockMaster = false,
SamplesPerSecond = 20000,
TestSetupId = test.Id,
PTPDomainId = 0
};
var hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareInsert(_user, con, hwRecord);
Assert.IsTrue(0 == hr, "TestSetupHardwareInsert returns 0");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareGet(_user, con, con.ClientDbVersion, null, out var hwRecords);
Assert.IsTrue(0 == hr && null != hwRecords && 0 != hwRecords.Length &&
hwRecords.Any(h => IsTestSetupHardwareRecordsEqual(h, hwRecord)),
"TestSetupHardwareGet returns 0 and has record inserted");
var hwRecordToUpdate = new TestSetupHardwareRecord(hwRecord);
hwRecordToUpdate.SamplesPerSecond = 10000;
hwRecordToUpdate.AddDAS = false;
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareUpdate(_user, con, hwRecordToUpdate);
Assert.IsTrue(0 == hr, "TestSetupHardwareUpdate returns 0");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareGet(_user, con, con.ClientDbVersion, null, out hwRecords);
Assert.IsTrue(0 == hr && null != hwRecords && 0 != hwRecords.Length &&
hwRecords.Any(h => IsTestSetupHardwareRecordsEqual(h, hwRecordToUpdate))
&& !hwRecords.Any(h => IsTestSetupHardwareRecordsEqual(h, hwRecord)),
$"TestSetupHardwareGet returned updated record and not previous inserted record");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareDelete(_user, con, null, hwRecord.DASId, null);
Assert.IsTrue(0 == hr, "TestSetupHardwareDelete returns 0");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareGet(_user, con, con.ClientDbVersion, null, out hwRecords);
Assert.IsTrue(0 == hr && (null == hwRecords || 0 == hwRecords.Length || !hwRecords.Any(h => h.DASId == hwRecord.DASId)),
"TestSetupHardwareDelete deletes records");
_ = DbAPI.DbAPI.TestSetups.TestSetupsDeleteById(_user, con, new[] { test.Id });
_ = DbAPI.DbAPI.DAS.DASDelete(_user, con, hardware.DASId, hardware.SerialNumber, false);
}
private bool IsTestSetupHardwareRecordsEqual(ITestSetupHardwareRecord left, ITestSetupHardwareRecord right)
{
return left.AddDAS == right.AddDAS &&
left.AntiAliasFilterRate == right.AntiAliasFilterRate &&
left.DASId == right.DASId &&
left.IsClockMaster == right.IsClockMaster &&
left.SamplesPerSecond == right.SamplesPerSecond &&
left.TestSetupId == right.TestSetupId &&
left.PTPDomainId == right.PTPDomainId;
}
[Test]
public void TestTestSetupHardwareNegative()
{
if (!_setup) { Setup(); }
TestLogin();
var con = DbAPI.DbAPI.Connections.GetActiveConnections()[0];
var test = CreateFakeTestSetup();
_ = DbAPI.DbAPI.TestSetups.TestSetupsUpdateInsert(_user, con, 0, ref test);
var group = CreateFakeGroup("Fake Test Group", null);
var channel = CreateFakeChannel();
var hardware = CreateFakeDAS();
var hwChannels = CreateFakeChannels(hardware);
_ = DbAPI.DbAPI.DAS.DASInsert(_user, con, hardware);
var chIdx = 0;
foreach (var hwCh in hwChannels)
{
IDASChannelDBRecord iCh = hwCh;
_ = DbAPI.DbAPI.DAS.DASChannelsInsert(_user, con, $"{hardware.SerialNumber}_{hardware.DASType}", ref iCh);
chIdx++;
}
var hwRecord = new TestSetupHardwareRecord()
{
AddDAS = true,
DASId = hardware.DASId,
AntiAliasFilterRate = 2000,
IsClockMaster = false,
SamplesPerSecond = 20000,
TestSetupId = test.Id,
PTPDomainId = 0
};
var hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareInsert(_user, null, hwRecord);
Assert.IsTrue(0 != hr, "TestSetupHardwareInsert should not return 0 without a user");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareInsert(null, con, hwRecord);
Assert.IsTrue(0 != hr, "TestSetupHardwareInsert should not return 0 without a connection");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareInsert(_user, con, null);
Assert.IsTrue(ErrorCodes.ERROR_MISSING_PARAMETER == hr,
"TestSetupHardwareInsert should return missing parameter with empty hardware");
_ = DbAPI.DbAPI.TestSetups.TestSetupHardwareInsert(_user, con, hwRecord);
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareGet(null, con, con.ClientDbVersion, null, out var hardwareRecords);
Assert.IsTrue(0 != hr, "TestSetupHardwareGet with null user should not return 0");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareGet(_user, null, clientDbVersion, null, out hardwareRecords);
Assert.IsTrue(0 != hr, "TestSetupHardwareGet with null connection should not return 0");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareGet(_user, con, con.ClientDbVersion, test.Id + 1, out hardwareRecords);
Assert.IsTrue(0 != hr || null == hardwareRecords || 0 == hardwareRecords.Length,
"TestSetupHardwareGet with a different test id should not return the hardware record");
var hwRecordToUpdate = new TestSetupHardwareRecord(hwRecord);
hwRecordToUpdate.SamplesPerSecond = 10000;
hwRecordToUpdate.AddDAS = false;
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareUpdate(null, con, hwRecordToUpdate);
Assert.IsTrue(0 != hr, "TestSetupHardwareUpdate with null user should not return 0");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareUpdate(_user, null, hwRecordToUpdate);
Assert.IsTrue(0 != hr, "TestSetupHardwareUpdate with null connection should not return 0");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareUpdate(_user, con, null);
Assert.IsTrue(ErrorCodes.ERROR_MISSING_PARAMETER == hr,
"TestSetupHardwareUpdate with null hardware should return missing parameter");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareDelete(null, con, null, hwRecord.DASId, null);
Assert.IsTrue(0 != hr, "TestSetupHardwareDelete with null user should not return 0");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareDelete(_user, null, null, hwRecord.DASId, null);
Assert.IsTrue(0 != hr, "TestSetupHardwareDelete with null connection should not return 0");
hr = DbAPI.DbAPI.TestSetups.TestSetupHardwareDelete(_user, con, null, null, null);
Assert.IsTrue(ErrorCodes.ERROR_MISSING_PARAMETER == hr,
"TestSetupHardwareDelete with no parameters should return missing parameter");
_ = DbAPI.DbAPI.TestSetups.TestSetupHardwareDelete(_user, con, null, hwRecord.DASId, null);
_ = DbAPI.DbAPI.TestSetups.TestSetupsDeleteById(_user, con, new[] { test.Id });
_ = DbAPI.DbAPI.DAS.DASDelete(_user, con, hardware.DASId, hardware.SerialNumber, false);
}
}
}