init
This commit is contained in:
@@ -0,0 +1,204 @@
|
||||
using DTS.Common.Classes.Tags;
|
||||
using DTS.Common.Interface.Sensors;
|
||||
using DTS.Common.Interface.Tags;
|
||||
using DTS.Common.Interface.TestSetups.TestSetupsList;
|
||||
using NUnit.Framework;
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace DatabaseUnitTesting
|
||||
{
|
||||
[TestFixture]
|
||||
public partial class DBAPITests
|
||||
{
|
||||
[Test]
|
||||
public void TagsTestGetNegatives()
|
||||
{
|
||||
if (!_setup) { Setup(); }
|
||||
TestLogin();
|
||||
var connections = DbAPI.DbAPI.Connections.GetActiveConnections();
|
||||
var tag = CreateFakeTag();
|
||||
|
||||
//insert a tag just so that we have something that _might_ be returned
|
||||
var hr = DbAPI.DbAPI.Tags.TagsInsert(_user, connections.First(), ref tag);
|
||||
Assert.IsTrue(0 == hr, "TagsInsert returned 0");
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagsGet(null, connections.First(), null, out var records);
|
||||
Assert.IsTrue(0 != hr && (null == records || 0 == records.Length), "TagsGet should not allow null user");
|
||||
hr = DbAPI.DbAPI.Tags.TagsGet(_user, null, null, out records);
|
||||
Assert.IsTrue(0 != hr && (null == records || 0 == records.Length), "TagsGet should not allow null connection");
|
||||
hr = DbAPI.DbAPI.Tags.TagsGetId(null, connections.First(), tag.Text, out var id);
|
||||
Assert.IsTrue(0 != hr && null == id, "TagsGetId should not allow null user");
|
||||
hr = DbAPI.DbAPI.Tags.TagsGetId(_user, null, tag.Text, out id);
|
||||
Assert.IsTrue(0 != hr && null == id, "TagsGetId should not allow null connection");
|
||||
|
||||
ITag tag2 = null;
|
||||
hr = DbAPI.DbAPI.Tags.TagsInsert(_user, connections.First(), ref tag2);
|
||||
Assert.IsTrue(DbAPI.Errors.ErrorCodes.ERROR_MISSING_PARAMETER == hr, "TagsInsert with null does return missing parameter");
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagsDelete(null, connections.First(), tag.ID);
|
||||
Assert.IsTrue(0 != hr, "TagsDelete should not allow null user");
|
||||
hr = DbAPI.DbAPI.Tags.TagsDelete(_user, null, tag.ID);
|
||||
Assert.IsTrue(0 != hr, "TagsDelete should not allow null connection");
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagsDelete(_user, connections.First(), tag.ID);
|
||||
Assert.IsTrue(0 == hr, "TagsDelete returns 0");
|
||||
}
|
||||
[Test]
|
||||
public void TagsTestGetPositives()
|
||||
{
|
||||
if (!_setup) { Setup(); }
|
||||
TestLogin();
|
||||
var connections = DbAPI.DbAPI.Connections.GetActiveConnections();
|
||||
var tag = CreateFakeTag();
|
||||
var hr = DbAPI.DbAPI.Tags.TagsGet(_user, connections.First(), null, out var records);
|
||||
Assert.IsTrue(0 == hr && (null == records || !records.Any(r => r.Text == tag.Text)),
|
||||
"TagsGet returns 0 and GUID text not already found");
|
||||
hr = DbAPI.DbAPI.Tags.TagsInsert(_user, connections.First(), ref tag);
|
||||
Assert.IsTrue(0 == hr && -1 != tag.ID, "TagsInsert returns 0 and modifies id");
|
||||
hr = DbAPI.DbAPI.Tags.TagsGet(_user, connections.First(), null, out records);
|
||||
Assert.IsTrue(0 == hr && null != records && records.Any(r => r.Text == tag.Text && r.ID == tag.ID),
|
||||
"TagsGet returns 0 and finds the tag");
|
||||
hr = DbAPI.DbAPI.Tags.TagsGet(_user, connections.First(), tag.ID, out records);
|
||||
Assert.IsTrue(0 == hr && null != records && records.Length == 1 && TagIsEqual(records[0], tag)
|
||||
, "TagsGet returns 0, and returns the tag [when passing in id]");
|
||||
hr = DbAPI.DbAPI.Tags.TagsGetId(_user, connections.First(), tag.Text, out var id);
|
||||
Assert.IsTrue(0 == hr && null != id && (int)id == tag.ID, "TagsGetId returns 0 and retrieves right id");
|
||||
hr = DbAPI.DbAPI.Tags.TagsDelete(_user, connections.First(), tag.ID);
|
||||
Assert.IsTrue(0 == hr, "TagsDelete returns 0");
|
||||
hr = DbAPI.DbAPI.Tags.TagsGet(_user, connections.First(), null, out records);
|
||||
Assert.IsTrue(0 == hr && null == records || !records.Any(r => r.Text == tag.Text), "TagsDelete returns 0");
|
||||
}
|
||||
private bool TagIsEqual(ITag left, ITag right)
|
||||
{
|
||||
return left.ID == right.ID &&
|
||||
left.IsObsolete == right.IsObsolete &&
|
||||
left.Text.Equals(right.Text);
|
||||
}
|
||||
public static ITag CreateFakeTag()
|
||||
{
|
||||
var tag = new Tag();
|
||||
tag.ID = -1;
|
||||
tag.Text = Guid.NewGuid().ToString().Substring(0, 15);
|
||||
return tag;
|
||||
}
|
||||
[Test]
|
||||
public void TagAssignmentsPositives()
|
||||
{
|
||||
if (!_setup) { Setup(); }
|
||||
TestLogin();
|
||||
var connections = DbAPI.DbAPI.Connections.GetActiveConnections();
|
||||
var tag = CreateFakeTag();
|
||||
|
||||
_ = DbAPI.DbAPI.Tags.TagsInsert(_user, connections.First(), ref tag);
|
||||
|
||||
var testSetup = CreateFakeTestSetup();
|
||||
_ = DbAPI.DbAPI.TestSetups.TestSetupsUpdateInsert(_user, connections.First(), 0, ref testSetup);
|
||||
var sensor = CreateFakeSensor();
|
||||
_ = DbAPI.DbAPI.Sensors.SensorsAnalogUpdateInsert(_user, connections.First(), sensor);
|
||||
|
||||
var hr = DbAPI.DbAPI.Tags.TagAssignmentsGet(_user, connections.First(), null, out var tagAssignments);
|
||||
Assert.IsTrue(0 == hr, "TagAssignmentsGet returns 0");
|
||||
|
||||
var taTestSetup = CreateTagAssignment(tag, testSetup);
|
||||
hr = DbAPI.DbAPI.Tags.TagAssignmentsInsert(_user, connections.First(), taTestSetup);
|
||||
Assert.IsTrue(0 == hr, "TagAssignmentsInsert returns 0");
|
||||
|
||||
var taSensor = CreateTagAssignment(tag, sensor);
|
||||
hr = DbAPI.DbAPI.Tags.TagAssignmentsInsert(_user, connections.First(), taSensor);
|
||||
Assert.IsTrue(0 == hr, "TagAssignmentsInsert returns 0");
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagAssignmentsGet(_user, connections.First(), null, out tagAssignments);
|
||||
Assert.IsTrue(0 == hr && null != tagAssignments &&
|
||||
tagAssignments.Any(t => IsTagAssignmentEqual(t, taTestSetup)) &&
|
||||
tagAssignments.Any(t => IsTagAssignmentEqual(t, taSensor)),
|
||||
"TagAssignmentsGet returns tag assignments");
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagAssignmentsGet(_user, connections.First(), TagTypes.TestSetup, out tagAssignments);
|
||||
Assert.IsTrue(0 == hr && null != tagAssignments && tagAssignments.Any(t => IsTagAssignmentEqual(t, taTestSetup)),
|
||||
"TagAssignmentsGet returns taTestSetup");
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagAssignmentsGet(_user, connections.First(), TagTypes.Sensors, out tagAssignments);
|
||||
Assert.IsTrue(0 == hr && null != tagAssignments && tagAssignments.Any(t => IsTagAssignmentEqual(t, taSensor)),
|
||||
"TagAssignmentsGet returns taSensor");
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagAssignmentsDelete(_user, connections.First(), taSensor.ObjectID, TagTypes.Sensors);
|
||||
Assert.IsTrue(0 == hr, "TagAssignmentsDelete returns 0");
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagAssignmentsDelete(_user, connections.First(), taTestSetup.ObjectID, TagTypes.TestSetup);
|
||||
Assert.IsTrue(0 == hr, "TagAssignmentsDelete returns 0");
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagAssignmentsGet(_user, connections.First(), null, out tagAssignments);
|
||||
Assert.IsTrue(0 == hr && !tagAssignments.Any(t => IsTagAssignmentEqual(t, taSensor))
|
||||
&& !tagAssignments.Any(t => IsTagAssignmentEqual(t, taTestSetup)), "TagAssignments deleted");
|
||||
_ = DbAPI.DbAPI.Tags.TagsDelete(_user, connections.First(), tag.ID);
|
||||
|
||||
_ = DbAPI.DbAPI.Sensors.SensorsDelete(_user, connections.First(), sensor.Id, 0);
|
||||
_ = DbAPI.DbAPI.TestSetups.TestSetupsDeleteById(_user, connections.First(), new[] { testSetup.Id });
|
||||
}
|
||||
|
||||
private bool IsTagAssignmentEqual(ITagAssignment left, ITagAssignment right)
|
||||
{
|
||||
return left.ObjectID == right.ObjectID
|
||||
&& left.ObjectType == right.ObjectType
|
||||
&& left.TagID == right.TagID;
|
||||
}
|
||||
private ITagAssignment CreateTagAssignment(ITag tag, IAnalogDbRecord sensor)
|
||||
{
|
||||
var ta = new TagAssignment() { ObjectType = TagTypes.Sensors, TagID = tag.ID, ObjectID = sensor.Id };
|
||||
return ta;
|
||||
}
|
||||
private ITagAssignment CreateTagAssignment(ITag tag, ITestSetupRecord test)
|
||||
{
|
||||
var ta = new TagAssignment() { ObjectID = test.Id, ObjectType = TagTypes.TestSetup, TagID = tag.ID };
|
||||
return ta;
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TagAssignmentsNegatives()
|
||||
{
|
||||
if (!_setup) { Setup(); }
|
||||
TestLogin();
|
||||
var con = DbAPI.DbAPI.Connections.GetActiveConnections().First();
|
||||
var tag = CreateFakeTag();
|
||||
|
||||
_ = DbAPI.DbAPI.Tags.TagsInsert(_user, con, ref tag);
|
||||
|
||||
var hr = DbAPI.DbAPI.Tags.TagAssignmentsGet(null, con, null, out var tagAssignments);
|
||||
Assert.IsTrue(0 != hr, "TagAssignmentsGet should not work with null user");
|
||||
hr = DbAPI.DbAPI.Tags.TagAssignmentsGet(_user, null, null, out tagAssignments);
|
||||
Assert.IsTrue(0 != hr, "TagAssignmentsGet should not work with null connection");
|
||||
var sensor = CreateFakeSensor();
|
||||
_ = DbAPI.DbAPI.Sensors.SensorsAnalogUpdateInsert(_user, con, sensor);
|
||||
var testSetup = CreateFakeTestSetup();
|
||||
_ = DbAPI.DbAPI.TestSetups.TestSetupsUpdateInsert(_user, con, 0, ref testSetup);
|
||||
|
||||
var taSetup = CreateTagAssignment(tag, testSetup);
|
||||
var taSensor = CreateTagAssignment(tag, sensor);
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagAssignmentsInsert(null, con, taSetup);
|
||||
Assert.IsTrue(0 != hr, "TagAssignmentsInsert should not work with null user");
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagAssignmentsInsert(_user, null, taSetup);
|
||||
Assert.IsTrue(0 != hr, "TagAssignmentsInsert should not work with null connection");
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagAssignmentsInsert(_user, con, null);
|
||||
Assert.IsTrue(DbAPI.Errors.ErrorCodes.ERROR_MISSING_PARAMETER == hr, "TagAssignmentsInsert should not work with null tagassignment");
|
||||
|
||||
hr = DbAPI.DbAPI.TestSetups.TestSetupsDeleteById(_user, con, new[] { testSetup.Id });
|
||||
Assert.IsTrue(0 == hr, "TestSetupsDelete should work when tag assignments exist");
|
||||
|
||||
hr = DbAPI.DbAPI.Sensors.SensorsDelete(_user, con, sensor.Id, 0);
|
||||
Assert.IsTrue(0 == hr, "SensorsDelete should work when tag assignments exist");
|
||||
|
||||
var sensor2 = CreateFakeSensor();
|
||||
_ = DbAPI.DbAPI.Sensors.SensorsAnalogUpdateInsert(_user, con, sensor);
|
||||
var taSensor2 = CreateTagAssignment(tag, sensor2);
|
||||
_ = DbAPI.DbAPI.Tags.TagAssignmentsInsert(_user, con, taSensor2);
|
||||
|
||||
hr = DbAPI.DbAPI.Tags.TagsDelete(_user, con, tag.ID);
|
||||
Assert.IsTrue(0 == hr, "TagsDelete should work when tag assignments exist");
|
||||
_ = DbAPI.DbAPI.Sensors.SensorsDelete(_user, con, sensor2.Id, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user