122 lines
6.9 KiB
C#
122 lines
6.9 KiB
C#
using DTS.Common.Classes.Groups;
|
|
using DTS.Common.Interface.DataRecorders;
|
|
using DTS.Common.Interface.Groups;
|
|
using NUnit.Framework;
|
|
using System;
|
|
using System.Linq;
|
|
|
|
namespace DatabaseUnitTesting
|
|
{
|
|
[TestFixture]
|
|
public partial class DBAPITests
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="staticGroupId">Call with null or the id of a corresponding static Group</param>
|
|
/// <returns></returns>
|
|
public IGroupDbRecord CreateFakeGroup(string displayName, int? staticGroupId)
|
|
{
|
|
var group = new GroupDbRecord();
|
|
group.SerialNumber = Guid.NewGuid().ToString().Substring(0, 10);
|
|
group.Picture = "";
|
|
group.DisplayName = displayName;
|
|
group.Description = "";
|
|
group.Embedded = false;
|
|
group.LastModified = DateTime.Now;
|
|
group.LastModifiedBy = "";
|
|
group.StaticGroupId = staticGroupId;
|
|
return group;
|
|
}
|
|
public GroupHardwareDbRecord CreateGroupHardwareDbRecord(int groupId, int dasId)
|
|
{
|
|
var groupHardwareDbRecord = new GroupHardwareDbRecord();
|
|
groupHardwareDbRecord.GroupId = groupId;
|
|
groupHardwareDbRecord.DASId = dasId;
|
|
return groupHardwareDbRecord;
|
|
}
|
|
[Test]
|
|
public void TestGroupHardwareInsertGetAndDelete()
|
|
{
|
|
if (!_setup) { Setup(); }
|
|
TestLogin();
|
|
var connections = DbAPI.DbAPI.Connections.GetActiveConnections();
|
|
|
|
//Delete all records from the DAS and Groups tables - either of which should delete all records from the GroupHardware table also.
|
|
var hr = DbAPI.DbAPI.DAS.DASGet(_user, connections.First(), connections.First().ClientDbVersion, null, null, out IDASDBRecord[] dasRecords);
|
|
Assert.IsTrue(0 == hr, "Should return 0 for DASGet");
|
|
foreach (var dasRecord in dasRecords)
|
|
{
|
|
hr = DbAPI.DbAPI.DAS.DASDelete(_user, connections.First(), dasRecord.DASId, dasRecord.SerialNumber, false);
|
|
Assert.IsTrue(0 == hr, "Should return 0 for DASDelete");
|
|
}
|
|
hr = DbAPI.DbAPI.Groups.GroupsGet(_user, connections.First(), null, null, null, null, null, out IGroupDbRecord[] groups);
|
|
Assert.IsTrue(0 == hr, "Should return 0 for GroupsGet");
|
|
foreach (var group in groups)
|
|
{
|
|
hr = DbAPI.DbAPI.Groups.GroupsDelete(_user, connections.First(), group.Id, out string deleteErrorString);
|
|
Assert.IsTrue(0 == hr, "Should return 0 for GroupsDelete");
|
|
}
|
|
|
|
//Insert one legit and one bogus DAS
|
|
var legitDas = CreateFakeDAS();
|
|
legitDas.SerialNumber = "legit";
|
|
hr = DbAPI.DbAPI.DAS.DASInsert(_user, connections.First(), legitDas);
|
|
Assert.AreEqual(0, hr, "DASInsert legit executed");
|
|
|
|
var bogusDas = CreateFakeDAS();
|
|
bogusDas.SerialNumber = "bogus";
|
|
hr = DbAPI.DbAPI.DAS.DASInsert(_user, connections.First(), bogusDas);
|
|
Assert.AreEqual(0, hr, "DASInsert bogus executed");
|
|
|
|
//Insert a legit static Group
|
|
var legitGroup = CreateFakeGroup("legit", null);
|
|
hr = DbAPI.DbAPI.Groups.GroupsInsert(_user, connections.First(), ref legitGroup);
|
|
Assert.AreEqual(0, hr, "Legit GroupInsert executed");
|
|
|
|
//Insert a bogus static Group
|
|
var bogusGroup = CreateFakeGroup("bogus", null);
|
|
hr = DbAPI.DbAPI.Groups.GroupsInsert(_user, connections.First(), ref bogusGroup);
|
|
Assert.AreEqual(0, hr, "Bogus GroupInsert executed");
|
|
|
|
//**Insert GroupHardware records for the legit static Group with both DAS
|
|
var groupHardwareDbRecord = CreateGroupHardwareDbRecord(legitGroup.Id, legitDas.DASId);
|
|
hr = DbAPI.DbAPI.GroupHardware.GroupHardwareInsert(_user, connections.First(), groupHardwareDbRecord, out int newId, out string errorMessage);
|
|
Assert.IsTrue(0 == hr, "Should return 0 for GroupHardwareInsert");
|
|
|
|
groupHardwareDbRecord = CreateGroupHardwareDbRecord(legitGroup.Id, bogusDas.DASId);
|
|
hr = DbAPI.DbAPI.GroupHardware.GroupHardwareInsert(_user, connections.First(), groupHardwareDbRecord, out newId, out errorMessage);
|
|
Assert.IsTrue(0 == hr, "Should return 0 for GroupHardwareInsert");
|
|
|
|
//**Insert a GroupHardware record for the bogus static Group with one bogus DAS
|
|
groupHardwareDbRecord = CreateGroupHardwareDbRecord(bogusGroup.Id, bogusDas.DASId);
|
|
hr = DbAPI.DbAPI.GroupHardware.GroupHardwareInsert(_user, connections.First(), groupHardwareDbRecord, out newId, out errorMessage);
|
|
Assert.IsTrue(0 == hr, "Should return 0 for GroupHardwareInsert");
|
|
|
|
//**Get the GroupHardware record for the legit static Group only (1)
|
|
hr = DbAPI.DbAPI.GroupHardware.GroupHardwareGet(_user, connections.First(), legitGroup.Id, legitDas.SerialNumber, legitGroup.Embedded, out GroupHardwareDbRecord[] groupHardwareRecords);
|
|
Assert.IsTrue(0 == hr, "Should return 0 for GroupHardwareGet");
|
|
Assert.IsTrue(null != groupHardwareRecords && groupHardwareRecords.Length == 2, "GroupHardwareGet should have retrieved 2 records");
|
|
|
|
//**Get all GroupHardware records (3)
|
|
hr = DbAPI.DbAPI.GroupHardware.GroupHardwareGet(_user, connections.First(), null, null, null, out groupHardwareRecords);
|
|
Assert.IsTrue(0 == hr, "Should return 0 for GroupHardwareGet");
|
|
Assert.IsTrue(null != groupHardwareRecords && groupHardwareRecords.Length == 3, "GroupHardwareGet should have retrieved 3 records");
|
|
|
|
//**Delete the GroupHardware records for the bogus static Group
|
|
hr = DbAPI.DbAPI.GroupHardware.GroupHardwareDelete(_user, connections.First(), bogusGroup.Id, bogusDas.DASId, out string errorString);
|
|
Assert.IsTrue(0 == hr, "Should return 0 for GroupHardwareDelete");
|
|
|
|
//**Get the deleted GroupHardware record (fail) (0)
|
|
hr = DbAPI.DbAPI.GroupHardware.GroupHardwareGet(_user, connections.First(), bogusGroup.Id, bogusDas.SerialNumber, false, out groupHardwareRecords);
|
|
Assert.IsTrue(0 == hr, "Should return 0 for GroupHardwareGet of deleted record");
|
|
Assert.IsTrue(null != groupHardwareRecords && groupHardwareRecords.Length == 0, "GroupHardwareGet should have retrieved 0 records");
|
|
|
|
//**Get all GroupHardware records (2)
|
|
hr = DbAPI.DbAPI.GroupHardware.GroupHardwareGet(_user, connections.First(), legitGroup.Id, bogusDas.SerialNumber, false, out groupHardwareRecords);
|
|
Assert.IsTrue(0 == hr, "Should return 0 for GroupHardwareGet");
|
|
Assert.IsTrue(null != groupHardwareRecords && groupHardwareRecords.Length == 2, "GroupHardwareGet should have retrieved 2 records");
|
|
}
|
|
}
|
|
}
|