110 lines
8.1 KiB
C#
110 lines
8.1 KiB
C#
|
|
using DTS.Common.Interface.TestMetaData;
|
|||
|
|
using DTS.Common.Classes.LabratoryDetails;
|
|||
|
|
using NUnit.Framework;
|
|||
|
|
using System;
|
|||
|
|
using System.Linq;
|
|||
|
|
|
|||
|
|
namespace DatabaseUnitTesting
|
|||
|
|
{
|
|||
|
|
[TestFixture]
|
|||
|
|
public partial class DBAPITests
|
|||
|
|
{
|
|||
|
|
public LabratoryDetailsDbRecord CreateFakeLabratoryDetails(string name)
|
|||
|
|
{
|
|||
|
|
var record = new LabratoryDetailsDbRecord();
|
|||
|
|
record.LabratoryId = -1;
|
|||
|
|
record.Name = name;
|
|||
|
|
record.LabratoryName = Guid.NewGuid().ToString().Substring(0, 15);
|
|||
|
|
record.LabratoryContactName = Guid.NewGuid().ToString().Substring(0, 15);
|
|||
|
|
record.LabratoryContactPhone = Guid.NewGuid().ToString().Substring(0, 15);
|
|||
|
|
record.LabratoryContactFax = Guid.NewGuid().ToString().Substring(0, 15);
|
|||
|
|
record.LabratoryContactEmail = Guid.NewGuid().ToString().Substring(0, 15);
|
|||
|
|
record.LabratoryTestRefNumber = Guid.NewGuid().ToString().Substring(0, 15);
|
|||
|
|
record.LabratoryProjectRefNumber = Guid.NewGuid().ToString().Substring(0, 15);
|
|||
|
|
record.LastModified = DateTime.Today;
|
|||
|
|
record.LastModifiedBy = "NUNIT";
|
|||
|
|
record.LocalOnly = true;
|
|||
|
|
record.Version = 1;
|
|||
|
|
return record;
|
|||
|
|
}
|
|||
|
|
[Test]
|
|||
|
|
public void LaboratoryDetails()
|
|||
|
|
{
|
|||
|
|
if (!_setup) { Setup(); }
|
|||
|
|
TestLogin();
|
|||
|
|
var connections = DbAPI.DbAPI.Connections.GetActiveConnections();
|
|||
|
|
|
|||
|
|
//Delete all to start with a blank table
|
|||
|
|
var hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsDelete(_user, connections.First(), null, out string errorMessage);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should return 0 for LabratoryDetailsDelete");
|
|||
|
|
//Get all
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsGet(_user, connections.First(), null, out ILabratoryDetailsDbRecord[] allLabratoryDetailsDbRecords);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should return 0 for LabratoryDetailsGet");
|
|||
|
|
Assert.IsTrue(null != allLabratoryDetailsDbRecords && allLabratoryDetailsDbRecords.Length == 0, "LabratoryDetailsGet should have retrieved 0 records");
|
|||
|
|
|
|||
|
|
//we'll insert two records, one which is the one we'll be testing with get, and one that is just a decoy
|
|||
|
|
//for tests which we do not expect to be returned, etc.
|
|||
|
|
var legitRecord = CreateFakeLabratoryDetails("legit");
|
|||
|
|
var decoyRecord = CreateFakeLabratoryDetails("decoy");
|
|||
|
|
|
|||
|
|
//Insert
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsInsert(_user, connections.First(), legitRecord, out int newLegitId, out string legitErrorString);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should be able to insert a legitimate LabratoryDetails record");
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsInsert(_user, connections.First(), decoyRecord, out int newFakeId, out string fakeErrorString);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should be able to insert a decoy LabratoryDetails record");
|
|||
|
|
//Get by Name
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsGet(_user, connections.First(), legitRecord.Name, out ILabratoryDetailsDbRecord[] labratoryDetailsDbRecords);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should return 0 for LabratoryDetailsGet");
|
|||
|
|
Assert.IsTrue(null != labratoryDetailsDbRecords && labratoryDetailsDbRecords.Length == 1, "LabratoryDetailsGet should have retrieved 1 record");
|
|||
|
|
Assert.IsTrue(labratoryDetailsDbRecords.Any(r => r.Name == legitRecord.Name), "LabratoryDetailsGet should have retrieved only one record");
|
|||
|
|
//Get all
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsGet(_user, connections.First(), null, out allLabratoryDetailsDbRecords);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should return 0 for LabratoryDetailsGet");
|
|||
|
|
Assert.IsTrue(null != allLabratoryDetailsDbRecords && allLabratoryDetailsDbRecords.Length == 2, "LabratoryDetailsGet should have retrieved 2 records");
|
|||
|
|
Assert.IsTrue(allLabratoryDetailsDbRecords.Any(r => r.Name == legitRecord.Name), "LabratoryDetailsGet should have retrieved our record");
|
|||
|
|
Assert.IsTrue(allLabratoryDetailsDbRecords.Any(r => r.Name == decoyRecord.Name), "LabratoryDetailsGet should have retrieved our record");
|
|||
|
|
|
|||
|
|
//Update
|
|||
|
|
var newLabratoryTestRefNumber = Guid.NewGuid().ToString().Substring(0, 15);
|
|||
|
|
legitRecord.LabratoryTestRefNumber = newLabratoryTestRefNumber;
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsUpdate(_user, connections.First(), legitRecord, out legitErrorString);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should be able to insert a legitimate LabratoryDetails record");
|
|||
|
|
Assert.IsTrue(legitErrorString == string.Empty, $"Error when inserting a legitimate LabratoryDetails record: {legitErrorString}");
|
|||
|
|
//Get by Name
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsGet(_user, connections.First(), legitRecord.Name, out labratoryDetailsDbRecords);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should return 0 for LabratoryDetailsGet");
|
|||
|
|
Assert.IsTrue(null != labratoryDetailsDbRecords && labratoryDetailsDbRecords.Length == 1, "LabratoryDetailsGet should have retrieved 1 record");
|
|||
|
|
Assert.IsTrue(labratoryDetailsDbRecords.Any(r => r.LabratoryTestRefNumber == newLabratoryTestRefNumber), "LabratoryDetailsGet should have retrieved the updated record");
|
|||
|
|
|
|||
|
|
//Delete by Name
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsDelete(_user, connections.First(), legitRecord.Name, out errorMessage);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should return 0 for LabratoryDetailsDelete");
|
|||
|
|
//Get by Name
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsGet(_user, connections.First(), legitRecord.Name, out labratoryDetailsDbRecords);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should return 0 for LabratoryDetailsGet");
|
|||
|
|
Assert.IsTrue(null != labratoryDetailsDbRecords, "LabratoryDetailsGet should not have retrieved this record");
|
|||
|
|
Assert.IsFalse(labratoryDetailsDbRecords.Any(r => r.Name == legitRecord.Name), "LabratoryDetailsGet should not have retrieved this record");
|
|||
|
|
//Get all
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsGet(_user, connections.First(), null, out allLabratoryDetailsDbRecords);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should return 0 for LabratoryDetailsGet");
|
|||
|
|
Assert.IsTrue(null != allLabratoryDetailsDbRecords && allLabratoryDetailsDbRecords.Length == 1, "LabratoryDetailsGet should have retrieved only the decoy record");
|
|||
|
|
Assert.IsFalse(allLabratoryDetailsDbRecords.Any(r => r.Name == legitRecord.Name), "LabratoryDetailsGet not should have retrieved this record");
|
|||
|
|
Assert.IsTrue(allLabratoryDetailsDbRecords.Any(r => r.Name == decoyRecord.Name), "LabratoryDetailsGet should have retrieved this record");
|
|||
|
|
|
|||
|
|
//Delete all
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsDelete(_user, connections.First(), null, out errorMessage);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should return 0 for LabratoryDetailsDelete");
|
|||
|
|
//Get by Name
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsGet(_user, connections.First(), legitRecord.Name, out labratoryDetailsDbRecords);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should return 0 for LabratoryDetailsGet");
|
|||
|
|
Assert.IsTrue(null != labratoryDetailsDbRecords, "LabratoryDetailsGet should not have retrieved this record");
|
|||
|
|
Assert.IsFalse(labratoryDetailsDbRecords.Any(r => r.Name == legitRecord.Name), "LabratoryDetailsGet should not have retrieved any records");
|
|||
|
|
//Get all
|
|||
|
|
hr = DbAPI.DbAPI.LabratoryDetails.LabratoryDetailsGet(_user, connections.First(), null, out allLabratoryDetailsDbRecords);
|
|||
|
|
Assert.IsTrue(0 == hr, "Should return 0 for LabratoryDetailsGet");
|
|||
|
|
Assert.IsTrue(null != allLabratoryDetailsDbRecords, "LabratoryDetailsGet should not have retrieved this record");
|
|||
|
|
Assert.IsFalse(allLabratoryDetailsDbRecords.Any(r => r.Name == legitRecord.Name), "LabratoryDetailsGet should not have retrieved any records");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|