77 lines
4.1 KiB
C#
77 lines
4.1 KiB
C#
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));
|
|
}
|
|
}
|
|
}
|
|
}
|