171 lines
8.7 KiB
C#
171 lines
8.7 KiB
C#
|
|
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);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|