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

77 lines
4.1 KiB
C#
Raw Normal View History

2026-04-17 14:55:32 -04:00
using DTS.Common.Classes.Channels;
using DTS.Common.Classes.TestSetups;
using DTS.Common.Interface.Channels;
using DTS.Common.Interface.TestSetups.TestSetupsList;
using NUnit.Framework;
using System;
using System.Linq;
using System.Collections.Generic;
using DTS.Common.Storage;
namespace DatabaseUnitTesting
{
[TestFixture]
public partial class DBAPITests
{
/// <summary>
/// Testing of version created for the replacement of the string RegionsOfInterest field in the
/// TestSetups table with the TestSetupROIs and ROIPeriodChannels tables.
/// This should only work with a Version 92 or later database, but should handle Version 91 databases gracefully.
/// Tests included:
/// sp_TestSetupsUpdateInsert_92 (and sp_TestSetupsInsert_92)
/// sp_TestSetupROIsInsert
/// sp_ROIPeriodChannelsInsert
/// sp_TestSetupROIsGet
/// sp_ROIPeriodChannelsGet
/// sp_TestSetupROIsDelete
/// </summary>
[Test]
public void RegionsOfInterest()
{
if (!_setup) { Setup(); }
TestLogin();
var connections = DbAPI.DbAPI.Connections.GetActiveConnections();
//***Testing*** sp_TestSetupsUpdateInsert_92
var testSetupRecordToInsert = CreateFakeTestSetupWithROIs(2);
var hr = DbAPI.DbAPI.TestSetups.TestSetupsUpdateInsert(_user, connections.First(), 92, ref testSetupRecordToInsert);
Assert.IsTrue(0 == hr, "Should be able to insert a test setup");
DbAPI.DbAPI.GetDatabaseVersion(connections.First(), out int serverDbVersion);
if (serverDbVersion <= 91)
{
var regionOfInterest = testSetupRecordToInsert.RegionsOfInterest.First();
hr = DbAPI.DbAPI.RegionsOfInterest.RegionsOfInterestInsert(_user, connections.First(), 91, testSetupRecordToInsert.Id, regionOfInterest);
Assert.IsTrue(0 != hr, "RegionsOfInterestInsert should not work if database Version is 91 or less");
}
else if (serverDbVersion >= 92)
{
//***Testing*** sp_TestSetupROIsInsert and sp_ROIPeriodChannelsInsert
//valid Insert Regions of Interest
foreach (var regionOfInterest in testSetupRecordToInsert.RegionsOfInterest)
{
hr = DbAPI.DbAPI.RegionsOfInterest.RegionsOfInterestInsert(_user, connections.First(), 97, testSetupRecordToInsert.Id, regionOfInterest);
}
//***Testing*** sp_TestSetupROIsGet and sp_ROIPeriodChannelsGet
//valid get the RegionsOfInterest for this Test Setup
hr = DbAPI.DbAPI.RegionsOfInterest.RegionsOfInterestGet(_user, connections.First(), DbOperations.CURRENT_DB_VERSION, testSetupRecordToInsert.Id, out var roiRecords);
Assert.IsTrue(0 == hr && null != roiRecords && roiRecords.Length == 2 && roiRecords.Any(r => r.Suffix == testSetupRecordToInsert.RegionsOfInterest.First().Suffix),
"First suffix test failed");
Assert.IsTrue(0 == hr && null != roiRecords && roiRecords.Length == 2 && roiRecords.Any(r => r.Suffix == testSetupRecordToInsert.RegionsOfInterest.Last().Suffix),
"Last suffix test failed");
//***Testing*** sp_TestSetupROIsDelete
//Delete all of the RegionsOfInterest for this Test Setup
hr = DbAPI.DbAPI.RegionsOfInterest.RegionsOfInterestDelete(_user, connections.First(), testSetupRecordToInsert.Id);
Assert.IsTrue(0 == hr, "Should be able to delete all ROIs in a Test Setup");
//***Testing*** sp_TestSetupROIsGet and sp_ROIPeriodChannelsGet
//Make sure they were deleted
hr = DbAPI.DbAPI.RegionsOfInterest.RegionsOfInterestGet(_user, connections.First(), DbOperations.CURRENT_DB_VERSION, testSetupRecordToInsert.Id, out roiRecords);
Assert.IsTrue(0 == hr && (null == roiRecords || roiRecords.Length == 0));
}
}
}
}