Added: Complex Tests for ToCheck and Transfer

This commit is contained in:
TheJoKlLa 2022-04-21 19:31:33 +02:00
parent 8170f93d59
commit 08d0fe449c

View File

@ -410,7 +410,6 @@ namespace FabAccessAPI_Test
[Order(3)]
public class Machine_Test
{
#region SetUp
public async Task ForceFree(string username, string machineID)
{
@ -466,35 +465,6 @@ namespace FabAccessAPI_Test
MachineSystem.IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false);
Machine machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false);
// Check State before run Test
if(machine.State != MachineState.free)
{
API_TestEnv_Test.Disconnect(connection);
Assert.Inconclusive("State is not 'free'");
}
await machine.Use.Use().ConfigureAwait(false);
machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false);
await machine.Inuse.GiveBack().ConfigureAwait(false);
machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false);
API_TestEnv_Test.Disconnect(connection);
Assert.AreEqual(MachineState.free, machine.State);
}
[TestCase("MakerQRA", "MachineA1")]
[Order(1)]
public async Task UseWithoutDiscloseMaschineList(string username, string machineID)
{
Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session;
MachineSystem.IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false);
Machine machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false);
// Check State before run Test
if (machine.State != MachineState.free)
{
@ -504,12 +474,6 @@ namespace FabAccessAPI_Test
await machine.Use.Use().ConfigureAwait(false);
IReadOnlyList<Machine> machines = await infoInterface.GetMachineList().ConfigureAwait(false);
if(machines.Count != 1 && machines[0].Id != machineID)
{
Assert.Fail();
}
machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false);
await machine.Inuse.GiveBack().ConfigureAwait(false);
@ -519,6 +483,221 @@ namespace FabAccessAPI_Test
Assert.AreEqual(MachineState.free, machine.State);
}
[TestCase("ManagerA1", "MakerA1", "MachineA1")]
[TestCase("MakerA1", "Admin1", "MachineA1")]
[TestCase("ManagerA1", "GuestA1", "MachineA1")]
[Order(2)]
public async Task TransferMachine(string username1, string username2, string machineID)
{
Connection connection1 = await API_TestEnv_Test.Connect(username1);
Session session1 = connection1.Session;
Connection connection2 = await API_TestEnv_Test.Connect(username2);
Session session2 = connection1.Session;
MachineSystem.IInfoInterface infoInterface1 = await session1.MachineSystem.Info().ConfigureAwait(false);
MachineSystem.IInfoInterface infoInterface2 = await session2.MachineSystem.Info().ConfigureAwait(false);
Machine machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
// Check State before run Test
if (machine1.State != MachineState.free)
{
API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2);
Assert.Inconclusive("State is not 'free'");
}
await machine1.Use.Use().ConfigureAwait(false);
machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
await machine1.Inuse.Releasefortakeover().ConfigureAwait(false);
Machine machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false);
await machine2.Takeover.Accept().ConfigureAwait(false);
machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false);
await machine2.Inuse.GiveBack().ConfigureAwait(false);
machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2);
Assert.AreEqual(MachineState.free, machine1.State);
}
[TestCase("ManagerA1", "MakerA1", "MachineA1")]
[TestCase("MakerA1", "Admin1", "MachineA1")]
[TestCase("ManagerA1", "GuestA1", "MachineA1")]
[Order(3)]
public async Task TransferMachine_Reject(string username1, string username2, string machineID)
{
Connection connection1 = await API_TestEnv_Test.Connect(username1);
Session session1 = connection1.Session;
Connection connection2 = await API_TestEnv_Test.Connect(username2);
Session session2 = connection1.Session;
MachineSystem.IInfoInterface infoInterface1 = await session1.MachineSystem.Info().ConfigureAwait(false);
MachineSystem.IInfoInterface infoInterface2 = await session2.MachineSystem.Info().ConfigureAwait(false);
Machine machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
// Check State before run Test
if (machine1.State != MachineState.free)
{
API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2);
Assert.Inconclusive("State is not 'free'");
}
await machine1.Use.Use().ConfigureAwait(false);
machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
await machine1.Inuse.Releasefortakeover().ConfigureAwait(false);
Machine machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false);
await machine2.Takeover.Reject().ConfigureAwait(false);
machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
await machine1.Inuse.GiveBack().ConfigureAwait(false);
machine2 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2);
Assert.AreEqual(MachineState.free, machine2.State);
}
[TestCase("ManagerA1", "ManagerA1", "MachineA1")]
[TestCase("ManagerA1", "Admin1", "MachineA1")]
[TestCase("MakerA1", "Admin1", "MachineA1")]
[Order(4)]
public async Task CheckMachine(string username1, string username2, string machineID)
{
Connection connection1 = await API_TestEnv_Test.Connect(username1);
Session session1 = connection1.Session;
Connection connection2 = await API_TestEnv_Test.Connect(username2);
Session session2 = connection1.Session;
MachineSystem.IInfoInterface infoInterface1 = await session1.MachineSystem.Info().ConfigureAwait(false);
MachineSystem.IInfoInterface infoInterface2 = await session2.MachineSystem.Info().ConfigureAwait(false);
Machine machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
// Check State before run Test
if (machine1.State != MachineState.free)
{
API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2);
Assert.Inconclusive("State is not 'free'");
}
await machine1.Use.Use().ConfigureAwait(false);
machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
await machine1.Inuse.GiveBack().ConfigureAwait(false);
Machine machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false);
await machine2.Check.Check().ConfigureAwait(false);
machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2);
Assert.AreEqual(MachineState.free, machine1.State);
}
[TestCase("ManagerA1", "ManagerA1", "MachineA1")]
[TestCase("ManagerA1", "Admin1", "MachineA1")]
[TestCase("MakerA1", "Admin1", "MachineA1")]
[Order(5)]
public async Task CheckMachine_Reject(string username1, string username2, string machineID)
{
Connection connection1 = await API_TestEnv_Test.Connect(username1);
Session session1 = connection1.Session;
Connection connection2 = await API_TestEnv_Test.Connect(username2);
Session session2 = connection1.Session;
MachineSystem.IInfoInterface infoInterface1 = await session1.MachineSystem.Info().ConfigureAwait(false);
MachineSystem.IInfoInterface infoInterface2 = await session2.MachineSystem.Info().ConfigureAwait(false);
Machine machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
// Check State before run Test
if (machine1.State != MachineState.free)
{
API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2);
Assert.Inconclusive("State is not 'free'");
}
await machine1.Use.Use().ConfigureAwait(false);
machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
await machine1.Inuse.GiveBack().ConfigureAwait(false);
Machine machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false);
await machine2.Check.Reject().ConfigureAwait(false);
machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
await machine1.Inuse.GiveBack().ConfigureAwait(false);
machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false);
await machine2.Check.Check().ConfigureAwait(false);
machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2);
Assert.AreEqual(MachineState.free, machine1.State);
}
[TestCase("MakerA1", "GuestA1", "ManagerA1", "MachineA1")]
[Order(4)]
public async Task CheckMachine_NoPermission(string username1, string username2, string username3, string machineID)
{
Connection connection1 = await API_TestEnv_Test.Connect(username1);
Session session1 = connection1.Session;
Connection connection2 = await API_TestEnv_Test.Connect(username2);
Session session2 = connection1.Session;
Connection connection3 = await API_TestEnv_Test.Connect(username3);
Session session3 = connection1.Session;
MachineSystem.IInfoInterface infoInterface1 = await session1.MachineSystem.Info().ConfigureAwait(false);
MachineSystem.IInfoInterface infoInterface2 = await session2.MachineSystem.Info().ConfigureAwait(false);
MachineSystem.IInfoInterface infoInterface3 = await session3.MachineSystem.Info().ConfigureAwait(false);
Machine machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
// Check State before run Test
if (machine1.State != MachineState.free)
{
API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2);
Assert.Inconclusive("State is not 'free'");
}
await machine1.Use.Use().ConfigureAwait(false);
machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false);
await machine1.Inuse.GiveBack().ConfigureAwait(false);
Machine machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false);
bool result = ((CheckInterface_Proxy)machine2.Check).IsNull;
Machine machine3 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false);
await machine3.Check.Check().ConfigureAwait(false);
API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2);
Assert.IsTrue(result);
}
}
[TestFixture, Parallelizable(ParallelScope.Children)]