From 3561bb2771360b3e9098767750cf17870cb53e88 Mon Sep 17 00:00:00 2001 From: TheJoKlLa Date: Wed, 20 Apr 2022 23:20:24 +0200 Subject: [PATCH 1/7] Added Access Tests for Machine Interfaces --- FabAccessAPI_Test/API_TestEnv_Test.cs | 237 +++++++++++++++++++++++++- 1 file changed, 230 insertions(+), 7 deletions(-) diff --git a/FabAccessAPI_Test/API_TestEnv_Test.cs b/FabAccessAPI_Test/API_TestEnv_Test.cs index cf2f567..52ff50f 100644 --- a/FabAccessAPI_Test/API_TestEnv_Test.cs +++ b/FabAccessAPI_Test/API_TestEnv_Test.cs @@ -8,6 +8,7 @@ using System.Net.Security; using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks; +using static FabAccessAPI.Schema.Machine; using static FabAccessAPI.Schema.MachineSystem; namespace FabAccessAPI_Test @@ -57,7 +58,7 @@ namespace FabAccessAPI_Test } [TestFixture, Parallelizable(ParallelScope.Children)] - public class MachineSystem + public class MachineSystem_Test { [TestCase("Admin1", true)] [TestCase("Admin2", true)] @@ -133,7 +134,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); + MachineSystem.IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); IReadOnlyList machine_list = await infoInterface.GetMachineList().ConfigureAwait(false); int result = machine_list.Count; @@ -174,7 +175,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); + MachineSystem.IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); Machine machine = await infoInterface.GetMachine(machineName).ConfigureAwait(false); bool result = machine != null; @@ -191,7 +192,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); + MachineSystem.IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); Machine machine = await infoInterface.GetMachine(machineName).ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection); @@ -230,7 +231,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); + MachineSystem.IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); Machine machine = await infoInterface.GetMachine(urn).ConfigureAwait(false); bool result = machine != null; @@ -248,7 +249,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); + MachineSystem.IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); Machine machine = await infoInterface.GetMachine(urn).ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection); @@ -256,4 +257,226 @@ namespace FabAccessAPI_Test Assert.IsNull(machine); } } -} + + [TestFixture, Parallelizable(ParallelScope.Children)] + public class Machine_Test + { + [TestCase("Admin1", "MachineA1", "Description of MachineA1", @"https://fab-access.readthedocs.io", "CategoryA")] + [TestCase("Admin1", "MachineB2", "Description of MachineB2", @"https://fab-access.readthedocs.io", "CategoryB")] + [TestCase("Admin1", "MachineC3", "Description of MachineC3", @"https://fab-access.readthedocs.io", "CategoryC")] + [Order(1)] + public async Task ReadMachineData(string username, string machineID, string description, string wiki, string category) + { + 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); + + API_TestEnv_Test.Disconnect(connection); + + Assert.Multiple(() => + { + Assert.AreEqual(machineID, machine.Id); + Assert.AreEqual(description, machine.Description); + Assert.AreEqual(wiki, machine.Wiki); + Assert.AreEqual(category, machine.Category); + }); + } + + [TestCase("Admin1", "MachineA1", true)] + [TestCase("Admin1", "MachineB1", true)] + [TestCase("Admin1", "MachineC1", true)] + [TestCase("ManagerA1", "MachineA1", true)] + [TestCase("ManagerA1", "MachineB1", false)] + [TestCase("ManagerA1", "MachineC1", false)] + [TestCase("ManagerB1", "MachineA1", false)] + [TestCase("ManagerB1", "MachineB1", true)] + [TestCase("ManagerB1", "MachineC1", false)] + [TestCase("ManagerC1", "MachineA1", false)] + [TestCase("ManagerC1", "MachineB1", false)] + [TestCase("ManagerC1", "MachineC1", true)] + [TestCase("ManagerABC1", "MachineA1", true)] + [TestCase("ManagerABC1", "MachineB1", true)] + [TestCase("ManagerABC1", "MachineC1", true)] + [TestCase("MakerA1", "MachineA1", true)] + [TestCase("MakerB1", "MachineB1", true)] + [TestCase("MakerC1", "MachineC1", true)] + [TestCase("GuestA1", "MachineA1", false)] + [TestCase("GuestB1", "MachineB1", false)] + [TestCase("GuestC1", "MachineC1", false)] + [TestCase("MakerQRA", "MachineA1", true)] + [TestCase("MakerQRB", "MachineB1", true)] + [TestCase("MakerQRC", "MachineC1", true)] + [Order(2)] + public async Task UseInterface(string username, string machineID, bool expectInterface) + { + 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); + + bool result = !((UseInterface_Proxy)machine.Use).IsNull; + + API_TestEnv_Test.Disconnect(connection); + + Assert.AreEqual(expectInterface, result); + } + + [TestCase("Admin1", "MachineA1", true)] + [TestCase("Admin1", "MachineB1", true)] + [TestCase("Admin1", "MachineC1", true)] + [TestCase("ManagerA1", "MachineA1", true)] + [TestCase("ManagerA1", "MachineB1", false)] + [TestCase("ManagerA1", "MachineC1", false)] + [TestCase("ManagerB1", "MachineA1", false)] + [TestCase("ManagerB1", "MachineB1", true)] + [TestCase("ManagerB1", "MachineC1", false)] + [TestCase("ManagerC1", "MachineA1", false)] + [TestCase("ManagerC1", "MachineB1", false)] + [TestCase("ManagerC1", "MachineC1", true)] + [TestCase("ManagerABC1", "MachineA1", true)] + [TestCase("ManagerABC1", "MachineB1", true)] + [TestCase("ManagerABC1", "MachineC1", true)] + [TestCase("MakerA1", "MachineA1", true)] + [TestCase("MakerB1", "MachineB1", true)] + [TestCase("MakerC1", "MachineC1", true)] + [TestCase("GuestA1", "MachineA1", false)] + [TestCase("GuestB1", "MachineB1", false)] + [TestCase("GuestC1", "MachineC1", false)] + [TestCase("MakerQRA", "MachineA1", true)] + [TestCase("MakerQRB", "MachineB1", true)] + [TestCase("MakerQRC", "MachineC1", true)] + [Order(2)] + public async Task InUseInterface(string username, string machineID, bool expectInterface) + { + 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); + + bool result = !((InUseInterface_Proxy)machine.Inuse).IsNull; + + API_TestEnv_Test.Disconnect(connection); + + Assert.AreEqual(expectInterface, result); + } + + + //[TestCase("MakerQRC", "MachineC1", true)] + //[Order(3)] + //public async Task TakeoverInterface(string username, string machineID, bool expectInterface) + //{ + // 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); + + // bool result = !((TakeoverInterface_Proxy)machine.Takeover).IsNull; + + // API_TestEnv_Test.Disconnect(connection); + + // Assert.AreEqual(expectInterface, result); + //} + + //[TestCase("MakerQRC", "MachineC1", true)] + //[Order(4)] + //public async Task ToCheckInterface(string username, string machineID, bool expectInterface) + //{ + // 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); + + // bool result = !((CheckInterface_Proxy)machine.Check).IsNull; + + // API_TestEnv_Test.Disconnect(connection); + + // Assert.AreEqual(expectInterface, result); + //} + + [TestCase("Admin1", "MachineA1", true)] + [TestCase("Admin1", "MachineB1", true)] + [TestCase("Admin1", "MachineC1", true)] + [TestCase("ManagerA1", "MachineA1", true)] + [TestCase("ManagerA1", "MachineB1", false)] + [TestCase("ManagerA1", "MachineC1", false)] + [TestCase("ManagerB1", "MachineA1", false)] + [TestCase("ManagerB1", "MachineB1", true)] + [TestCase("ManagerB1", "MachineC1", false)] + [TestCase("ManagerC1", "MachineA1", false)] + [TestCase("ManagerC1", "MachineB1", false)] + [TestCase("ManagerC1", "MachineC1", true)] + [TestCase("ManagerABC1", "MachineA1", true)] + [TestCase("ManagerABC1", "MachineB1", true)] + [TestCase("ManagerABC1", "MachineC1", true)] + [TestCase("MakerA1", "MachineA1", false)] + [TestCase("MakerB1", "MachineB1", false)] + [TestCase("MakerC1", "MachineC1", false)] + [TestCase("GuestA1", "MachineA1", false)] + [TestCase("GuestB1", "MachineB1", false)] + [TestCase("GuestC1", "MachineC1", false)] + [TestCase("MakerQRA", "MachineA1", false)] + [TestCase("MakerQRB", "MachineB1", false)] + [TestCase("MakerQRC", "MachineC1", false)] + [Order(5)] + public async Task ManageInterface(string username, string machineID, bool expectInterface) + { + 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); + + bool result = !((ManageInterface_Proxy)machine.Manage).IsNull; + + API_TestEnv_Test.Disconnect(connection); + + Assert.AreEqual(expectInterface, result); + } + + //[TestCase("Admin1", "MachineA1", true)] + //[TestCase("Admin1", "MachineB1", true)] + //[TestCase("Admin1", "MachineC1", true)] + //[TestCase("ManagerA1", "MachineA1", false)] + //[TestCase("ManagerA1", "MachineB1", false)] + //[TestCase("ManagerA1", "MachineC1", false)] + //[TestCase("ManagerB1", "MachineA1", false)] + //[TestCase("ManagerB1", "MachineB1", false)] + //[TestCase("ManagerB1", "MachineC1", false)] + //[TestCase("ManagerC1", "MachineA1", false)] + //[TestCase("ManagerC1", "MachineB1", false)] + //[TestCase("ManagerC1", "MachineC1", false)] + //[TestCase("ManagerABC1", "MachineA1", false)] + //[TestCase("ManagerABC1", "MachineB1", false)] + //[TestCase("ManagerABC1", "MachineC1", false)] + //[TestCase("MakerA1", "MachineA1", false)] + //[TestCase("MakerB1", "MachineB1", false)] + //[TestCase("MakerC1", "MachineC1", false)] + //[TestCase("GuestA1", "MachineA1", false)] + //[TestCase("GuestB1", "MachineB1", false)] + //[TestCase("GuestC1", "MachineC1", false)] + //[TestCase("MakerQRA", "MachineA1", false)] + //[TestCase("MakerQRB", "MachineB1", false)] + //[TestCase("MakerQRC", "MachineC1", false)] + //[Order(6)] + //public async Task AdminInterface(string username, string machineID, bool expectInterface) + //{ + // 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); + + // bool result = !((AdminInterface_Proxy)machine.Admin).IsNull; + + // API_TestEnv_Test.Disconnect(connection); + + // Assert.AreEqual(expectInterface, result); + //} + } +} \ No newline at end of file From 90fbd0ff1b51fd545fcdc2f729b5053a7a35effa Mon Sep 17 00:00:00 2001 From: TheJoKlLa Date: Thu, 21 Apr 2022 01:20:30 +0200 Subject: [PATCH 2/7] Added more Tests for Machine --- FabAccessAPI_Test/API_TestEnv_Test.cs | 259 +++++++++++++------------- FabAccessAPI_Test/Connection_Test.cs | 2 +- 2 files changed, 133 insertions(+), 128 deletions(-) diff --git a/FabAccessAPI_Test/API_TestEnv_Test.cs b/FabAccessAPI_Test/API_TestEnv_Test.cs index 52ff50f..8d6cbb9 100644 --- a/FabAccessAPI_Test/API_TestEnv_Test.cs +++ b/FabAccessAPI_Test/API_TestEnv_Test.cs @@ -58,6 +58,7 @@ namespace FabAccessAPI_Test } [TestFixture, Parallelizable(ParallelScope.Children)] + [Order(1)] public class MachineSystem_Test { [TestCase("Admin1", true)] @@ -259,13 +260,35 @@ namespace FabAccessAPI_Test } [TestFixture, Parallelizable(ParallelScope.Children)] - public class Machine_Test + [Order(2)] + public class Machine_Test_Stateless { - [TestCase("Admin1", "MachineA1", "Description of MachineA1", @"https://fab-access.readthedocs.io", "CategoryA")] - [TestCase("Admin1", "MachineB2", "Description of MachineB2", @"https://fab-access.readthedocs.io", "CategoryB")] - [TestCase("Admin1", "MachineC3", "Description of MachineC3", @"https://fab-access.readthedocs.io", "CategoryC")] + [TestCase("Admin1", "MachineA1", true)] + [TestCase("Admin1", "MachineB1", true)] + [TestCase("Admin1", "MachineC1", true)] + [TestCase("ManagerA1", "MachineA1", true)] + [TestCase("ManagerA1", "MachineB1", false)] + [TestCase("ManagerA1", "MachineC1", false)] + [TestCase("ManagerB1", "MachineA1", false)] + [TestCase("ManagerB1", "MachineB1", true)] + [TestCase("ManagerB1", "MachineC1", false)] + [TestCase("ManagerC1", "MachineA1", false)] + [TestCase("ManagerC1", "MachineB1", false)] + [TestCase("ManagerC1", "MachineC1", true)] + [TestCase("ManagerABC1", "MachineA1", true)] + [TestCase("ManagerABC1", "MachineB1", true)] + [TestCase("ManagerABC1", "MachineC1", true)] + [TestCase("MakerA1", "MachineA1", true)] + [TestCase("MakerB1", "MachineB1", true)] + [TestCase("MakerC1", "MachineC1", true)] + [TestCase("GuestA1", "MachineA1", true)] + [TestCase("GuestB1", "MachineB1", true)] + [TestCase("GuestC1", "MachineC1", true)] + [TestCase("MakerQRA", "MachineA1", true)] + [TestCase("MakerQRB", "MachineB1", true)] + [TestCase("MakerQRC", "MachineC1", true)] [Order(1)] - public async Task ReadMachineData(string username, string machineID, string description, string wiki, string category) + public async Task InfoInterface(string username, string machineID, bool expectInterface) { Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; @@ -273,132 +296,13 @@ namespace FabAccessAPI_Test MachineSystem.IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); Machine machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false); - API_TestEnv_Test.Disconnect(connection); - - Assert.Multiple(() => - { - Assert.AreEqual(machineID, machine.Id); - Assert.AreEqual(description, machine.Description); - Assert.AreEqual(wiki, machine.Wiki); - Assert.AreEqual(category, machine.Category); - }); - } - - [TestCase("Admin1", "MachineA1", true)] - [TestCase("Admin1", "MachineB1", true)] - [TestCase("Admin1", "MachineC1", true)] - [TestCase("ManagerA1", "MachineA1", true)] - [TestCase("ManagerA1", "MachineB1", false)] - [TestCase("ManagerA1", "MachineC1", false)] - [TestCase("ManagerB1", "MachineA1", false)] - [TestCase("ManagerB1", "MachineB1", true)] - [TestCase("ManagerB1", "MachineC1", false)] - [TestCase("ManagerC1", "MachineA1", false)] - [TestCase("ManagerC1", "MachineB1", false)] - [TestCase("ManagerC1", "MachineC1", true)] - [TestCase("ManagerABC1", "MachineA1", true)] - [TestCase("ManagerABC1", "MachineB1", true)] - [TestCase("ManagerABC1", "MachineC1", true)] - [TestCase("MakerA1", "MachineA1", true)] - [TestCase("MakerB1", "MachineB1", true)] - [TestCase("MakerC1", "MachineC1", true)] - [TestCase("GuestA1", "MachineA1", false)] - [TestCase("GuestB1", "MachineB1", false)] - [TestCase("GuestC1", "MachineC1", false)] - [TestCase("MakerQRA", "MachineA1", true)] - [TestCase("MakerQRB", "MachineB1", true)] - [TestCase("MakerQRC", "MachineC1", true)] - [Order(2)] - public async Task UseInterface(string username, string machineID, bool expectInterface) - { - 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); - - bool result = !((UseInterface_Proxy)machine.Use).IsNull; + bool result = !((Machine.InfoInterface_Proxy)machine.Info).IsNull; API_TestEnv_Test.Disconnect(connection); Assert.AreEqual(expectInterface, result); } - [TestCase("Admin1", "MachineA1", true)] - [TestCase("Admin1", "MachineB1", true)] - [TestCase("Admin1", "MachineC1", true)] - [TestCase("ManagerA1", "MachineA1", true)] - [TestCase("ManagerA1", "MachineB1", false)] - [TestCase("ManagerA1", "MachineC1", false)] - [TestCase("ManagerB1", "MachineA1", false)] - [TestCase("ManagerB1", "MachineB1", true)] - [TestCase("ManagerB1", "MachineC1", false)] - [TestCase("ManagerC1", "MachineA1", false)] - [TestCase("ManagerC1", "MachineB1", false)] - [TestCase("ManagerC1", "MachineC1", true)] - [TestCase("ManagerABC1", "MachineA1", true)] - [TestCase("ManagerABC1", "MachineB1", true)] - [TestCase("ManagerABC1", "MachineC1", true)] - [TestCase("MakerA1", "MachineA1", true)] - [TestCase("MakerB1", "MachineB1", true)] - [TestCase("MakerC1", "MachineC1", true)] - [TestCase("GuestA1", "MachineA1", false)] - [TestCase("GuestB1", "MachineB1", false)] - [TestCase("GuestC1", "MachineC1", false)] - [TestCase("MakerQRA", "MachineA1", true)] - [TestCase("MakerQRB", "MachineB1", true)] - [TestCase("MakerQRC", "MachineC1", true)] - [Order(2)] - public async Task InUseInterface(string username, string machineID, bool expectInterface) - { - 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); - - bool result = !((InUseInterface_Proxy)machine.Inuse).IsNull; - - API_TestEnv_Test.Disconnect(connection); - - Assert.AreEqual(expectInterface, result); - } - - - //[TestCase("MakerQRC", "MachineC1", true)] - //[Order(3)] - //public async Task TakeoverInterface(string username, string machineID, bool expectInterface) - //{ - // 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); - - // bool result = !((TakeoverInterface_Proxy)machine.Takeover).IsNull; - - // API_TestEnv_Test.Disconnect(connection); - - // Assert.AreEqual(expectInterface, result); - //} - - //[TestCase("MakerQRC", "MachineC1", true)] - //[Order(4)] - //public async Task ToCheckInterface(string username, string machineID, bool expectInterface) - //{ - // 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); - - // bool result = !((CheckInterface_Proxy)machine.Check).IsNull; - - // API_TestEnv_Test.Disconnect(connection); - - // Assert.AreEqual(expectInterface, result); - //} - [TestCase("Admin1", "MachineA1", true)] [TestCase("Admin1", "MachineB1", true)] [TestCase("Admin1", "MachineC1", true)] @@ -423,7 +327,7 @@ namespace FabAccessAPI_Test [TestCase("MakerQRA", "MachineA1", false)] [TestCase("MakerQRB", "MachineB1", false)] [TestCase("MakerQRC", "MachineC1", false)] - [Order(5)] + [Order(2)] public async Task ManageInterface(string username, string machineID, bool expectInterface) { Connection connection = await API_TestEnv_Test.Connect(username); @@ -463,7 +367,7 @@ namespace FabAccessAPI_Test //[TestCase("MakerQRA", "MachineA1", false)] //[TestCase("MakerQRB", "MachineB1", false)] //[TestCase("MakerQRC", "MachineC1", false)] - //[Order(6)] + //[Order(3)] //public async Task AdminInterface(string username, string machineID, bool expectInterface) //{ // Connection connection = await API_TestEnv_Test.Connect(username); @@ -478,5 +382,106 @@ namespace FabAccessAPI_Test // Assert.AreEqual(expectInterface, result); //} + + [TestCase("Admin1", "MachineA1", "Description of MachineA1", @"https://fab-access.readthedocs.io", "CategoryA")] + [TestCase("Admin1", "MachineB2", "Description of MachineB2", @"https://fab-access.readthedocs.io", "CategoryB")] + [TestCase("Admin1", "MachineC3", "Description of MachineC3", @"https://fab-access.readthedocs.io", "CategoryC")] + [Order(4)] + public async Task ReadMachineData(string username, string machineID, string description, string wiki, string category) + { + 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); + + API_TestEnv_Test.Disconnect(connection); + + Assert.Multiple(() => + { + Assert.AreEqual(machineID, machine.Id); + Assert.AreEqual(description, machine.Description); + Assert.AreEqual(wiki, machine.Wiki); + Assert.AreEqual(category, machine.Category); + }); + } + } + + [TestFixture] + [Order(3)] + public class Machine_Test + { + public async Task ForceFree(string username, string machineID) + { + Console.WriteLine("start: " + 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); + + await machine.Manage.ForceFree().ConfigureAwait(false); + + API_TestEnv_Test.Disconnect(connection); + + Console.WriteLine("finished: " + machineID); + } + + [OneTimeSetUp] + public async Task OneTimeSetUp() + { + List tasks = new List() + { + ForceFree("Admin1", "MachineA1"), + ForceFree("Admin1", "MachineA2"), + ForceFree("Admin1", "MachineA3"), + ForceFree("Admin1", "MachineA4"), + ForceFree("Admin1", "MachineA5"), + ForceFree("Admin1", "MachineB1"), + ForceFree("Admin1", "MachineB2"), + ForceFree("Admin1", "MachineB3"), + ForceFree("Admin1", "MachineB4"), + ForceFree("Admin1", "MachineB5"), + ForceFree("Admin1", "MachineC1"), + ForceFree("Admin1", "MachineC2"), + ForceFree("Admin1", "MachineC3"), + ForceFree("Admin1", "MachineC4"), + ForceFree("Admin1", "MachineC5") + }; + + await Task.WhenAll(tasks); + } + + // TODO: Force State before Test + [TestCase("Admin1", "MachineA1")] + [TestCase("ManagerA1", "MachineA1")] + [TestCase("MakerA1", "MachineA1")] + [Order(1)] + public async Task UseGiveBack(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) + { + 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); + } } } \ No newline at end of file diff --git a/FabAccessAPI_Test/Connection_Test.cs b/FabAccessAPI_Test/Connection_Test.cs index 49a436b..f7a97eb 100644 --- a/FabAccessAPI_Test/Connection_Test.cs +++ b/FabAccessAPI_Test/Connection_Test.cs @@ -10,7 +10,7 @@ using System.Threading.Tasks; namespace FabAccessAPI_Test { - + [TestFixture, Order(0)] public class Connection_Test { const string TESTSERVER = "bffh.lab.bln.kjknet.de"; From 8d7957f0f99d0b065b42120617518880d9a8e95e Mon Sep 17 00:00:00 2001 From: TheJoKlLa Date: Thu, 21 Apr 2022 01:34:46 +0200 Subject: [PATCH 3/7] Added UseWithoutDiscloseMaschineList --- FabAccessAPI_Test/API_TestEnv_Test.cs | 40 +++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/FabAccessAPI_Test/API_TestEnv_Test.cs b/FabAccessAPI_Test/API_TestEnv_Test.cs index 8d6cbb9..606477c 100644 --- a/FabAccessAPI_Test/API_TestEnv_Test.cs +++ b/FabAccessAPI_Test/API_TestEnv_Test.cs @@ -9,7 +9,6 @@ using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks; using static FabAccessAPI.Schema.Machine; -using static FabAccessAPI.Schema.MachineSystem; namespace FabAccessAPI_Test { @@ -411,6 +410,8 @@ namespace FabAccessAPI_Test [Order(3)] public class Machine_Test { + + #region SetUp public async Task ForceFree(string username, string machineID) { Console.WriteLine("start: " + machineID); @@ -451,8 +452,8 @@ namespace FabAccessAPI_Test await Task.WhenAll(tasks); } + #endregion - // TODO: Force State before Test [TestCase("Admin1", "MachineA1")] [TestCase("ManagerA1", "MachineA1")] [TestCase("MakerA1", "MachineA1")] @@ -483,5 +484,40 @@ namespace FabAccessAPI_Test 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) + { + API_TestEnv_Test.Disconnect(connection); + Assert.Inconclusive("State is not 'free'"); + } + + await machine.Use.Use().ConfigureAwait(false); + + IReadOnlyList 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); + + machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false); + + API_TestEnv_Test.Disconnect(connection); + + Assert.AreEqual(MachineState.free, machine.State); + } } } \ No newline at end of file From 8170f93d59f453e0eb6e590a9031c1208d118c9c Mon Sep 17 00:00:00 2001 From: TheJoKlLa Date: Thu, 21 Apr 2022 14:27:45 +0200 Subject: [PATCH 4/7] Added: User and Permission Test --- FabAccessAPI_Test/API_TestEnv_Test.cs | 333 +++++++++++++++++++++++--- 1 file changed, 298 insertions(+), 35 deletions(-) diff --git a/FabAccessAPI_Test/API_TestEnv_Test.cs b/FabAccessAPI_Test/API_TestEnv_Test.cs index 606477c..696709b 100644 --- a/FabAccessAPI_Test/API_TestEnv_Test.cs +++ b/FabAccessAPI_Test/API_TestEnv_Test.cs @@ -342,45 +342,45 @@ namespace FabAccessAPI_Test Assert.AreEqual(expectInterface, result); } - //[TestCase("Admin1", "MachineA1", true)] - //[TestCase("Admin1", "MachineB1", true)] - //[TestCase("Admin1", "MachineC1", true)] - //[TestCase("ManagerA1", "MachineA1", false)] - //[TestCase("ManagerA1", "MachineB1", false)] - //[TestCase("ManagerA1", "MachineC1", false)] - //[TestCase("ManagerB1", "MachineA1", false)] - //[TestCase("ManagerB1", "MachineB1", false)] - //[TestCase("ManagerB1", "MachineC1", false)] - //[TestCase("ManagerC1", "MachineA1", false)] - //[TestCase("ManagerC1", "MachineB1", false)] - //[TestCase("ManagerC1", "MachineC1", false)] - //[TestCase("ManagerABC1", "MachineA1", false)] - //[TestCase("ManagerABC1", "MachineB1", false)] - //[TestCase("ManagerABC1", "MachineC1", false)] - //[TestCase("MakerA1", "MachineA1", false)] - //[TestCase("MakerB1", "MachineB1", false)] - //[TestCase("MakerC1", "MachineC1", false)] - //[TestCase("GuestA1", "MachineA1", false)] - //[TestCase("GuestB1", "MachineB1", false)] - //[TestCase("GuestC1", "MachineC1", false)] - //[TestCase("MakerQRA", "MachineA1", false)] - //[TestCase("MakerQRB", "MachineB1", false)] - //[TestCase("MakerQRC", "MachineC1", false)] - //[Order(3)] - //public async Task AdminInterface(string username, string machineID, bool expectInterface) - //{ - // Connection connection = await API_TestEnv_Test.Connect(username); - // Session session = connection.Session; + [TestCase("Admin1", "MachineA1", true)] + [TestCase("Admin1", "MachineB1", true)] + [TestCase("Admin1", "MachineC1", true)] + [TestCase("ManagerA1", "MachineA1", false)] + [TestCase("ManagerA1", "MachineB1", false)] + [TestCase("ManagerA1", "MachineC1", false)] + [TestCase("ManagerB1", "MachineA1", false)] + [TestCase("ManagerB1", "MachineB1", false)] + [TestCase("ManagerB1", "MachineC1", false)] + [TestCase("ManagerC1", "MachineA1", false)] + [TestCase("ManagerC1", "MachineB1", false)] + [TestCase("ManagerC1", "MachineC1", false)] + [TestCase("ManagerABC1", "MachineA1", false)] + [TestCase("ManagerABC1", "MachineB1", false)] + [TestCase("ManagerABC1", "MachineC1", false)] + [TestCase("MakerA1", "MachineA1", false)] + [TestCase("MakerB1", "MachineB1", false)] + [TestCase("MakerC1", "MachineC1", false)] + [TestCase("GuestA1", "MachineA1", false)] + [TestCase("GuestB1", "MachineB1", false)] + [TestCase("GuestC1", "MachineC1", false)] + [TestCase("MakerQRA", "MachineA1", false)] + [TestCase("MakerQRB", "MachineB1", false)] + [TestCase("MakerQRC", "MachineC1", false)] + [Order(3)] + public async Task AdminInterface(string username, string machineID, bool expectInterface) + { + 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); + MachineSystem.IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); + Machine machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false); - // bool result = !((AdminInterface_Proxy)machine.Admin).IsNull; + bool result = !((AdminInterface_Proxy)machine.Admin).IsNull; - // API_TestEnv_Test.Disconnect(connection); + API_TestEnv_Test.Disconnect(connection); - // Assert.AreEqual(expectInterface, result); - //} + Assert.AreEqual(expectInterface, result); + } [TestCase("Admin1", "MachineA1", "Description of MachineA1", @"https://fab-access.readthedocs.io", "CategoryA")] [TestCase("Admin1", "MachineB2", "Description of MachineB2", @"https://fab-access.readthedocs.io", "CategoryB")] @@ -520,4 +520,267 @@ namespace FabAccessAPI_Test Assert.AreEqual(MachineState.free, machine.State); } } + + [TestFixture, Parallelizable(ParallelScope.Children)] + [Order(4)] + public class PermissionSystem_Test + { + [TestCase("Admin1", true)] + [TestCase("ManagerA1", true)] + [TestCase("MakerA1", true)] + [TestCase("GuestA1", true)] + [Order(1)] + public async Task AccessPermissionSystem(string username, bool expectInterface) + { + Connection connection = await API_TestEnv_Test.Connect(username); + Session session = connection.Session; + + bool result = !((PermissionSystem_Proxy)session.PermissionSystem).IsNull; + + API_TestEnv_Test.Disconnect(connection); + + Assert.AreEqual(expectInterface, result); + } + + //[TestCase("Admin1", true)] + //[TestCase("ManagerA1", true)] + //[TestCase("MakerA1", true)] + //[TestCase("GuestA1", true)] + //[Order(2)] + //public async Task InfoInterface(string username, bool expectInterface) + //{ + // Connection connection = await API_TestEnv_Test.Connect(username); + // Session session = connection.Session; + + // MachineSystem.IInfoInterface infoInterface = await session.PermissionSystem.Info().ConfigureAwait(false); + + // bool result = !((Machine.InfoInterface_Proxy)machine.Info).IsNull; + + // API_TestEnv_Test.Disconnect(connection); + + // Assert.AreEqual(expectInterface, result); + //} + + [TestCase("Admin1", 13)] + [TestCase("ManagerA1", 13)] + [TestCase("MakerA1", 13)] + [TestCase("GuestA1", 13)] + [Order(3)] + public async Task ListRoles(string username, int expectRolesCount) + { + Connection connection = await API_TestEnv_Test.Connect(username); + Session session = connection.Session; + + PermissionSystem.IInfoInterface infoInterface = await session.PermissionSystem.Info().ConfigureAwait(false); + IReadOnlyList roles_list = await infoInterface.GetRoleList().ConfigureAwait(false); + + API_TestEnv_Test.Disconnect(connection); + + Assert.AreEqual(expectRolesCount, roles_list.Count); + } + } + + [TestFixture, Parallelizable(ParallelScope.Children)] + [Order(5)] + public class UserSystem_Test + { + [TestCase("Admin1", true)] + [TestCase("ManagerA1", true)] + [TestCase("MakerA1", true)] + [TestCase("GuestA1", true)] + [Order(1)] + public async Task AccessUserSystem(string username, bool expectInterface) + { + Connection connection = await API_TestEnv_Test.Connect(username); + Session session = connection.Session; + + bool result = !((UserSystem_Proxy)session.UserSystem).IsNull; + + API_TestEnv_Test.Disconnect(connection); + + Assert.AreEqual(expectInterface, result); + } + + + //[TestCase("Admin1", true)] + //[TestCase("ManagerA1", true)] + //[TestCase("MakerA1", true)] + //[TestCase("GuestA1", true)] + //[Order(2)] + //public async Task InfoInterface(string username, bool expectInterface) + //{ + // Connection connection = await API_TestEnv_Test.Connect(username); + // Session session = connection.Session; + + // UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); + + // bool result = !((UserSystem.InfoInterface_Proxy)infoInterface.Info).IsNull; + + // API_TestEnv_Test.Disconnect(connection); + + // Assert.AreEqual(expectInterface, result); + //} + + //[TestCase("Admin1", true)] + //[TestCase("ManagerA1", false)] + //[TestCase("MakerA1", false)] + //[TestCase("GuestA1", false)] + //[Order(3)] + //public async Task ManageInterface(string username, bool expectInterface) + //{ + // Connection connection = await API_TestEnv_Test.Connect(username); + // Session session = connection.Session; + + // UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); + + // bool result = !((UserSystem.InfoInterface_Proxy)infoInterface.Info).IsNull; + + // API_TestEnv_Test.Disconnect(connection); + + // Assert.AreEqual(expectInterface, result); + //} + + [TestCase("Admin1")] + [TestCase("ManagerA1")] + [TestCase("MakerA1")] + [TestCase("GuestA1")] + [Order(4)] + public async Task GetUserSelf(string username) + { + Connection connection = await API_TestEnv_Test.Connect(username); + Session session = connection.Session; + + UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); + User user = (await infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; + + API_TestEnv_Test.Disconnect(connection); + + Assert.IsNotNull(user); + } + } + + [TestFixture, Parallelizable(ParallelScope.Children)] + [Order(6)] + public class User_Test_Stateless + { + [TestCase("Admin1", true)] + [TestCase("ManagerA1", true)] + [TestCase("MakerA1", true)] + [TestCase("GuestA1", true)] + [Order(1)] + public async Task InfoInterface(string username, bool expectInterface) + { + Connection connection = await API_TestEnv_Test.Connect(username); + Session session = connection.Session; + + UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); + User user = (await infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; + + bool result = !((User.InfoInterface_Proxy)user.Info).IsNull; + + API_TestEnv_Test.Disconnect(connection); + + Assert.AreEqual(expectInterface, result); + } + + [TestCase("Admin1", true)] + [TestCase("ManagerA1", true)] + [TestCase("MakerA1", true)] + [TestCase("GuestA1", true)] + [Order(2)] + public async Task ManageInterface(string username, bool expectInterface) + { + Connection connection = await API_TestEnv_Test.Connect(username); + Session session = connection.Session; + + UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); + User user = (await infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; + + bool result = !((User.ManageInterface_Proxy)user.Manage).IsNull; + + API_TestEnv_Test.Disconnect(connection); + + Assert.AreEqual(expectInterface, result); + } + + [TestCase("Admin1", true)] + [TestCase("ManagerA1", false)] + [TestCase("MakerA1", false)] + [TestCase("GuestA1", false)] + [Order(3)] + public async Task AdminInterface(string username, bool expectInterface) + { + Connection connection = await API_TestEnv_Test.Connect(username); + Session session = connection.Session; + + UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); + User user = (await infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; + + bool result = !((User.AdminInterface_Proxy)user.Admin).IsNull; + + API_TestEnv_Test.Disconnect(connection); + + Assert.AreEqual(expectInterface, result); + } + + [TestCase("Admin1")] + [TestCase("ManagerA1")] + [TestCase("MakerA1")] + [TestCase("GuestA1")] + [Order(4)] + public async Task ReadUserData(string username) + { + Connection connection = await API_TestEnv_Test.Connect(username); + Session session = connection.Session; + + UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); + User user = (await infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; + + API_TestEnv_Test.Disconnect(connection); + + Assert.Multiple(() => + { + Assert.AreEqual(username, user.Username); + }); + } + + [TestCase("Admin1", "somerole")] + [TestCase("ManagerA1")] + [TestCase("MakerA1")] + [TestCase("GuestA1")] + [Order(5)] + public async Task ListUserRoles(string username, params string[] expect_roles) + { + Connection connection = await API_TestEnv_Test.Connect(username); + Session session = connection.Session; + + UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); + User user = (await infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; + + List roles_user = new List(await user.Info.ListRoles().ConfigureAwait(false)); + List expect_roles_list = new List(expect_roles); + + API_TestEnv_Test.Disconnect(connection); + + if (roles_user.Count != expect_roles_list.Count) + { + Assert.Fail("Roles Count is different"); + } + + foreach (Role role_user in roles_user) + { + if(!expect_roles_list.Exists(x => x == role_user.Name)) + { + Assert.Fail("Roles are different"); + } + } + } + } + + [TestFixture] + [Order(7)] + public class User_Test + { + + } } \ No newline at end of file From 08d0fe449c6dbc87fc29ef61885f01874dec09ea Mon Sep 17 00:00:00 2001 From: TheJoKlLa Date: Thu, 21 Apr 2022 19:31:33 +0200 Subject: [PATCH 5/7] Added: Complex Tests for ToCheck and Transfer --- FabAccessAPI_Test/API_TestEnv_Test.cs | 219 +++++++++++++++++++++++--- 1 file changed, 199 insertions(+), 20 deletions(-) diff --git a/FabAccessAPI_Test/API_TestEnv_Test.cs b/FabAccessAPI_Test/API_TestEnv_Test.cs index 696709b..fb81cbb 100644 --- a/FabAccessAPI_Test/API_TestEnv_Test.cs +++ b/FabAccessAPI_Test/API_TestEnv_Test.cs @@ -410,7 +410,6 @@ namespace FabAccessAPI_Test [Order(3)] public class Machine_Test { - #region SetUp public async Task ForceFree(string username, string machineID) { @@ -467,7 +466,7 @@ namespace FabAccessAPI_Test Machine machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false); // Check State before run Test - if(machine.State != MachineState.free) + if (machine.State != MachineState.free) { API_TestEnv_Test.Disconnect(connection); Assert.Inconclusive("State is not 'free'"); @@ -485,39 +484,219 @@ namespace FabAccessAPI_Test Assert.AreEqual(MachineState.free, machine.State); } - [TestCase("MakerQRA", "MachineA1")] - [Order(1)] - public async Task UseWithoutDiscloseMaschineList(string username, string machineID) + [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 connection = await API_TestEnv_Test.Connect(username); - Session session = connection.Session; + Connection connection1 = await API_TestEnv_Test.Connect(username1); + Session session1 = connection1.Session; - MachineSystem.IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); - Machine machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false); + 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 (machine.State != MachineState.free) + if (machine1.State != MachineState.free) { - API_TestEnv_Test.Disconnect(connection); + API_TestEnv_Test.Disconnect(connection1); + API_TestEnv_Test.Disconnect(connection2); Assert.Inconclusive("State is not 'free'"); } - await machine.Use.Use().ConfigureAwait(false); + await machine1.Use.Use().ConfigureAwait(false); + machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + await machine1.Inuse.Releasefortakeover().ConfigureAwait(false); - IReadOnlyList machines = await infoInterface.GetMachineList().ConfigureAwait(false); - if(machines.Count != 1 && machines[0].Id != machineID) + 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) { - Assert.Fail(); + API_TestEnv_Test.Disconnect(connection1); + API_TestEnv_Test.Disconnect(connection2); + Assert.Inconclusive("State is not 'free'"); } - machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false); - await machine.Inuse.GiveBack().ConfigureAwait(false); + await machine1.Use.Use().ConfigureAwait(false); + machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + await machine1.Inuse.Releasefortakeover().ConfigureAwait(false); - machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false); + Machine machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false); + await machine2.Takeover.Reject().ConfigureAwait(false); - API_TestEnv_Test.Disconnect(connection); + machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + await machine1.Inuse.GiveBack().ConfigureAwait(false); - Assert.AreEqual(MachineState.free, machine.State); + 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); } } From f70c3596db9bb9389b7238777903e07ac20be00d Mon Sep 17 00:00:00 2001 From: TheJoKlLa Date: Thu, 21 Apr 2022 23:58:03 +0200 Subject: [PATCH 6/7] Changed API --- FabAccessAPI/schema | 2 +- FabAccessAPI_Test/API_TestEnv_Test.cs | 127 ++++++++++---------------- 2 files changed, 48 insertions(+), 81 deletions(-) diff --git a/FabAccessAPI/schema b/FabAccessAPI/schema index c9283eb..557f37b 160000 --- a/FabAccessAPI/schema +++ b/FabAccessAPI/schema @@ -1 +1 @@ -Subproject commit c9283ebd696ed6dd428a7c3d24820889f7ab4bf3 +Subproject commit 557f37b7cf7d7f06f27e8bddb0c45ce1153e2d06 diff --git a/FabAccessAPI_Test/API_TestEnv_Test.cs b/FabAccessAPI_Test/API_TestEnv_Test.cs index fb81cbb..0dbaa09 100644 --- a/FabAccessAPI_Test/API_TestEnv_Test.cs +++ b/FabAccessAPI_Test/API_TestEnv_Test.cs @@ -96,7 +96,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - bool result = !((MachineSystem_Proxy)session.MachineSystem).IsNull; + bool result = session.MachineSystem != null; API_TestEnv_Test.Disconnect(connection); @@ -134,8 +134,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - MachineSystem.IInfoInterface infoInterface = await session.MachineSystem.Info().ConfigureAwait(false); - IReadOnlyList machine_list = await infoInterface.GetMachineList().ConfigureAwait(false); + IReadOnlyList machine_list = await session.MachineSystem.Info.GetMachineList().ConfigureAwait(false); int result = machine_list.Count; @@ -175,8 +174,7 @@ namespace FabAccessAPI_Test 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(machineName).ConfigureAwait(false); + Machine machine = await session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false); bool result = machine != null; API_TestEnv_Test.Disconnect(connection); @@ -192,8 +190,7 @@ namespace FabAccessAPI_Test 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(machineName).ConfigureAwait(false); + Machine machine = await session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection); @@ -231,8 +228,7 @@ namespace FabAccessAPI_Test 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(urn).ConfigureAwait(false); + Machine machine = await session.MachineSystem.Info.GetMachine(urn).ConfigureAwait(false); bool result = machine != null; API_TestEnv_Test.Disconnect(connection); @@ -249,8 +245,7 @@ namespace FabAccessAPI_Test 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(urn).ConfigureAwait(false); + Machine machine = await session.MachineSystem.Info.GetMachine(urn).ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection); @@ -292,8 +287,7 @@ namespace FabAccessAPI_Test 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); + Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); bool result = !((Machine.InfoInterface_Proxy)machine.Info).IsNull; @@ -332,8 +326,7 @@ namespace FabAccessAPI_Test 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); + Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); bool result = !((ManageInterface_Proxy)machine.Manage).IsNull; @@ -372,8 +365,7 @@ namespace FabAccessAPI_Test 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); + Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); bool result = !((AdminInterface_Proxy)machine.Admin).IsNull; @@ -391,8 +383,7 @@ namespace FabAccessAPI_Test 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); + Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection); @@ -417,8 +408,7 @@ namespace FabAccessAPI_Test 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); + Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine.Manage.ForceFree().ConfigureAwait(false); @@ -462,8 +452,7 @@ namespace FabAccessAPI_Test 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); + Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); // Check State before run Test if (machine.State != MachineState.free) @@ -474,10 +463,10 @@ namespace FabAccessAPI_Test await machine.Use.Use().ConfigureAwait(false); - machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false); + machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine.Inuse.GiveBack().ConfigureAwait(false); - machine = await infoInterface.GetMachine(machineID).ConfigureAwait(false); + machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection); @@ -496,10 +485,7 @@ namespace FabAccessAPI_Test 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); + Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); // Check State before run Test if (machine1.State != MachineState.free) @@ -510,16 +496,16 @@ namespace FabAccessAPI_Test } await machine1.Use.Use().ConfigureAwait(false); - machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine1.Inuse.Releasefortakeover().ConfigureAwait(false); - Machine machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false); + Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine2.Takeover.Accept().ConfigureAwait(false); - machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false); + machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine2.Inuse.GiveBack().ConfigureAwait(false); - machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection2); @@ -539,10 +525,7 @@ namespace FabAccessAPI_Test 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); + Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); // Check State before run Test if (machine1.State != MachineState.free) @@ -553,16 +536,16 @@ namespace FabAccessAPI_Test } await machine1.Use.Use().ConfigureAwait(false); - machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine1.Inuse.Releasefortakeover().ConfigureAwait(false); - Machine machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false); + Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine2.Takeover.Reject().ConfigureAwait(false); - machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine1.Inuse.GiveBack().ConfigureAwait(false); - machine2 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + machine2 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection2); @@ -582,10 +565,7 @@ namespace FabAccessAPI_Test 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); + Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); // Check State before run Test if (machine1.State != MachineState.free) @@ -596,13 +576,13 @@ namespace FabAccessAPI_Test } await machine1.Use.Use().ConfigureAwait(false); - machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine1.Inuse.GiveBack().ConfigureAwait(false); - Machine machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false); + Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine2.Check.Check().ConfigureAwait(false); - machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection2); @@ -622,10 +602,8 @@ namespace FabAccessAPI_Test 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); + Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); // Check State before run Test if (machine1.State != MachineState.free) @@ -636,19 +614,19 @@ namespace FabAccessAPI_Test } await machine1.Use.Use().ConfigureAwait(false); - machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine1.Inuse.GiveBack().ConfigureAwait(false); - Machine machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false); + Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine2.Check.Reject().ConfigureAwait(false); - machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine1.Inuse.GiveBack().ConfigureAwait(false); - machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false); + machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine2.Check.Check().ConfigureAwait(false); - machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection2); @@ -669,11 +647,7 @@ namespace FabAccessAPI_Test 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); + Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); // Check State before run Test if (machine1.State != MachineState.free) @@ -684,13 +658,13 @@ namespace FabAccessAPI_Test } await machine1.Use.Use().ConfigureAwait(false); - machine1 = await infoInterface1.GetMachine(machineID).ConfigureAwait(false); + machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine1.Inuse.GiveBack().ConfigureAwait(false); - Machine machine2 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false); + Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); bool result = ((CheckInterface_Proxy)machine2.Check).IsNull; - Machine machine3 = await infoInterface2.GetMachine(machineID).ConfigureAwait(false); + Machine machine3 = await session3.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); await machine3.Check.Check().ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection1); @@ -714,7 +688,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - bool result = !((PermissionSystem_Proxy)session.PermissionSystem).IsNull; + bool result = session.PermissionSystem != null; API_TestEnv_Test.Disconnect(connection); @@ -750,8 +724,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - PermissionSystem.IInfoInterface infoInterface = await session.PermissionSystem.Info().ConfigureAwait(false); - IReadOnlyList roles_list = await infoInterface.GetRoleList().ConfigureAwait(false); + IReadOnlyList roles_list = await session.PermissionSystem.Info.GetRoleList().ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection); @@ -773,7 +746,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - bool result = !((UserSystem_Proxy)session.UserSystem).IsNull; + bool result = session.UserSystem != null; API_TestEnv_Test.Disconnect(connection); @@ -829,8 +802,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); - User user = (await infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; + User user = await session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection); @@ -852,8 +824,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); - User user = (await infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; + User user = await session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); bool result = !((User.InfoInterface_Proxy)user.Info).IsNull; @@ -872,8 +843,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); - User user = (await infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; + User user = await session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); bool result = !((User.ManageInterface_Proxy)user.Manage).IsNull; @@ -892,8 +862,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); - User user = (await infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; + User user = await session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); bool result = !((User.AdminInterface_Proxy)user.Admin).IsNull; @@ -912,8 +881,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); - User user = (await infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; + User user = await session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection); @@ -933,8 +901,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - UserSystem.IInfoInterface infoInterface = await session.UserSystem.Info().ConfigureAwait(false); - User user = (await infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; + User user = await session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); List roles_user = new List(await user.Info.ListRoles().ConfigureAwait(false)); List expect_roles_list = new List(expect_roles); From 05de8cc7c99a1606e6238532f2424ebdfaf56885 Mon Sep 17 00:00:00 2001 From: TheJoKlLa Date: Sun, 24 Apr 2022 21:24:09 +0200 Subject: [PATCH 7/7] Updated API --- Borepin/Borepin/Model/MachineVisualize.cs | 24 +- .../Borepin/PageModel/MachineListPageModel.cs | 25 +- Borepin/Borepin/PageModel/MachinePageModel.cs | 6 +- Borepin/Borepin/PageModel/ScanPageModel.cs | 9 +- FabAccessAPI/schema | 2 +- FabAccessAPI_Test/API_TestEnv_Test.cs | 224 +++++++----------- 6 files changed, 116 insertions(+), 174 deletions(-) diff --git a/Borepin/Borepin/Model/MachineVisualize.cs b/Borepin/Borepin/Model/MachineVisualize.cs index c1011ab..baeaa71 100644 --- a/Borepin/Borepin/Model/MachineVisualize.cs +++ b/Borepin/Borepin/Model/MachineVisualize.cs @@ -27,29 +27,37 @@ namespace Borepin.Model Name = _Machine.Name; Description = _Machine.Description; State = _Machine.State; - Manager = new UserVisualize(_Machine.Manager); - Manager.LoadData(); - MachineInfoExtended machineInfoExtended = await _Machine.Manage.GetMachineInfoExtended().ConfigureAwait(false); - if(machineInfoExtended != null) + if(_Machine.Manager.Just != null) { - if (machineInfoExtended.CurrentUser == null || machineInfoExtended.CurrentUser.Username == null) + Manager = new UserVisualize(_Machine.Manager.Just); + Manager.LoadData(); + } + else + { + Manager = null; + } + + if(_Machine.Manage != null) + { + MachineInfoExtended machineInfoExtended = await _Machine.Manage.GetMachineInfoExtended().ConfigureAwait(false); + if (machineInfoExtended.CurrentUser.Just == null) { CurrentUser = null; } else { - CurrentUser = new UserVisualize(machineInfoExtended.CurrentUser); + CurrentUser = new UserVisualize(machineInfoExtended.CurrentUser.Just); CurrentUser.LoadData(); } - if (machineInfoExtended.LastUser == null || machineInfoExtended.LastUser.Username == null) + if (machineInfoExtended.LastUser.Just == null) { LastUser = null; } else { - LastUser = new UserVisualize(machineInfoExtended.LastUser); + LastUser = new UserVisualize(machineInfoExtended.LastUser.Just); LastUser.LoadData(); } } diff --git a/Borepin/Borepin/PageModel/MachineListPageModel.cs b/Borepin/Borepin/PageModel/MachineListPageModel.cs index 6422af9..0caeb94 100644 --- a/Borepin/Borepin/PageModel/MachineListPageModel.cs +++ b/Borepin/Borepin/PageModel/MachineListPageModel.cs @@ -7,7 +7,6 @@ using Prism.Navigation; using Borepin.Service.BFFH; using Borepin.Base; using FabAccessAPI.Schema; -using Prism.Services.Dialogs; using Prism.Services; using Prism.AppModel; using static FabAccessAPI.Schema.Machine; @@ -20,16 +19,12 @@ namespace Borepin.PageModel public class MachineListPageModel : ConnectionModelBase, IPageLifecycleAware { #region Private Fields - private readonly IDialogService _DialogService; - private Machine _NextMachine; #endregion #region Constructors - public MachineListPageModel(INavigationService navigationService, IPageDialogService pageDialogService, IBFFHService bFFHService, IDialogService dialogService) : base(navigationService, pageDialogService, bFFHService) + public MachineListPageModel(INavigationService navigationService, IPageDialogService pageDialogService, IBFFHService bFFHService) : base(navigationService, pageDialogService, bFFHService) { - _DialogService = dialogService; - SelectInstanceCommand = new DelegateCommand(SelectInstanceCommandExecute); ScanCodeCommand = new DelegateCommand(async () => await ScanCodeCommandExecute().ConfigureAwait(false)); RefreshCommand = new DelegateCommand(async ()=> await RefreshCommandExecute().ConfigureAwait(true)); @@ -49,14 +44,11 @@ namespace Borepin.PageModel IsConnected = true; - IMachineSystem machineSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem; - MachineSystem.IInfoInterface machine_infoInterface = await machineSystem.Info().ConfigureAwait(false); + MachineSystem machineSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem; + UserSystem userSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).UserSystem; + User user_self = await userSystem.Info.GetUserSelf().ConfigureAwait(false); - IUserSystem userSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).UserSystem; - UserSystem.IInfoInterface user_infoInterface = await userSystem.Info().ConfigureAwait(false); - User user_self = (await user_infoInterface.GetUserSelf().ConfigureAwait(false)).Item1; - - IReadOnlyList machine_list = await machine_infoInterface.GetMachineList().ConfigureAwait(false); + IReadOnlyList machine_list = await machineSystem.Info.GetMachineList().ConfigureAwait(false); List viewmodel_list_user_assigned = new List(); List viewmodel_list_not_user_assigned = new List(); @@ -159,12 +151,9 @@ namespace Borepin.PageModel return; } - IMachineSystem machineInterface = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem; - + MachineSystem machineInterface = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem; - MachineSystem.IInfoInterface infoInterface = await machineInterface.Info().ConfigureAwait(false); - - Machine machine = await infoInterface.GetMachineURN(value).ConfigureAwait(false); + Machine machine = (await machineInterface.Info.GetMachineURN(value).ConfigureAwait(false)).Just; if(machine == null) { diff --git a/Borepin/Borepin/PageModel/MachinePageModel.cs b/Borepin/Borepin/PageModel/MachinePageModel.cs index 8f73a4b..78337c9 100644 --- a/Borepin/Borepin/PageModel/MachinePageModel.cs +++ b/Borepin/Borepin/PageModel/MachinePageModel.cs @@ -40,7 +40,7 @@ namespace Borepin.PageModel return; } - IMachineSystem machineSystem; + MachineSystem machineSystem; try { machineSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem; @@ -52,9 +52,7 @@ namespace Borepin.PageModel return; } - IInfoInterface info = await machineSystem.Info().ConfigureAwait(false); - - _Machine = await info.GetMachine(_ID).ConfigureAwait(false); + _Machine = (await machineSystem.Info.GetMachine(_ID).ConfigureAwait(false)).Just; MachineItem = new MachineVisualize(_Machine); MachineItem.LoadData(); diff --git a/Borepin/Borepin/PageModel/ScanPageModel.cs b/Borepin/Borepin/PageModel/ScanPageModel.cs index 47fe5f0..139da66 100644 --- a/Borepin/Borepin/PageModel/ScanPageModel.cs +++ b/Borepin/Borepin/PageModel/ScanPageModel.cs @@ -13,14 +13,11 @@ namespace Borepin.PageModel { #region Private Fields private object _Instance; - private readonly INavigationService _NavigationService; #endregion #region Contructors public ScanPageModel(INavigationService navigationService) : base(navigationService) { - _NavigationService = navigationService; - AbortCommand = new DelegateCommand(async () => await AbortCommandExecute().ConfigureAwait(true)); ScannedCommand = new DelegateCommand(ScannedCommandExecute); @@ -32,7 +29,7 @@ namespace Borepin.PageModel #region Data public override async Task LoadData() { - + await Task.CompletedTask.ConfigureAwait(false); } #endregion @@ -76,7 +73,7 @@ namespace Borepin.PageModel { { "result", "scanned" }, { "value", ScanResult.Text }, - { "instance", _Instance } + { "instance", _Instance }, }; Device.BeginInvokeOnMainThread(async () => @@ -99,7 +96,7 @@ namespace Borepin.PageModel INavigationParameters parameters = new NavigationParameters() { { "result", "abort" }, - { "instance", _Instance } + { "instance", _Instance }, }; await _NavigationService.GoBackAsync(parameters).ConfigureAwait(false); } diff --git a/FabAccessAPI/schema b/FabAccessAPI/schema index 557f37b..aea03aa 160000 --- a/FabAccessAPI/schema +++ b/FabAccessAPI/schema @@ -1 +1 @@ -Subproject commit 557f37b7cf7d7f06f27e8bddb0c45ce1153e2d06 +Subproject commit aea03aabe3d1322892c1896ba757ceeedb92ed73 diff --git a/FabAccessAPI_Test/API_TestEnv_Test.cs b/FabAccessAPI_Test/API_TestEnv_Test.cs index 0dbaa09..50fe060 100644 --- a/FabAccessAPI_Test/API_TestEnv_Test.cs +++ b/FabAccessAPI_Test/API_TestEnv_Test.cs @@ -89,29 +89,15 @@ namespace FabAccessAPI_Test [TestCase("MakerQRA", true)] [TestCase("MakerQRB", true)] [TestCase("MakerQRC", true)] - - [Order(1)] - public async Task AccessMachineSystem(string username, bool expectAllow) + [Order(2)] + public async Task AccessMachineSystem_Info(string username, bool expectAllow) { Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - bool result = session.MachineSystem != null; - - API_TestEnv_Test.Disconnect(connection); - - Assert.AreEqual(expectAllow, result); + Assert.AreEqual(expectAllow, !((MachineSystem.InfoInterface_Proxy)session.MachineSystem.Info).IsNull); } - //[TestCase("", true)] - //[Order(2)] - //public async Task AccessMachineSystem_Info(string username, bool expectAllow) - //{ - // Session session = await API_TestEnv_Test.Connect(username); - - // Assert.AreEqual(expectAllow, session.MachineSystem.Info); - //} - [TestCase("Admin1", 15)] [TestCase("ManagerA1", 5)] [TestCase("ManagerB1", 5)] @@ -167,15 +153,15 @@ namespace FabAccessAPI_Test [TestCase("MakerQRA", "MachineA1", true)] [TestCase("MakerQRB", "MachineB1", true)] [TestCase("MakerQRC", "MachineC1", true)] - [Order(4)] public async Task GetMachineByName(string username, string machineName, bool expectedAllow) { Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - Machine machine = await session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false); - bool result = machine != null; + Optional optional = await session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false); + + bool result = optional.Just != null; API_TestEnv_Test.Disconnect(connection); @@ -190,11 +176,11 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - Machine machine = await session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false); + Optional optional = await session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection); - Assert.IsNull(machine); + Assert.IsNull(optional.Just); } [TestCase("Admin1", "urn:fabaccess:resource:MachineA1", true)] @@ -228,8 +214,8 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - Machine machine = await session.MachineSystem.Info.GetMachine(urn).ConfigureAwait(false); - bool result = machine != null; + Optional optional = await session.MachineSystem.Info.GetMachineURN(urn).ConfigureAwait(false); + bool result = optional.Just != null; API_TestEnv_Test.Disconnect(connection); @@ -245,11 +231,11 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - Machine machine = await session.MachineSystem.Info.GetMachine(urn).ConfigureAwait(false); + Optional optional = await session.MachineSystem.Info.GetMachineURN(urn).ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection); - Assert.IsNull(machine); + Assert.IsNull(optional.Just); } } @@ -261,13 +247,7 @@ namespace FabAccessAPI_Test [TestCase("Admin1", "MachineB1", true)] [TestCase("Admin1", "MachineC1", true)] [TestCase("ManagerA1", "MachineA1", true)] - [TestCase("ManagerA1", "MachineB1", false)] - [TestCase("ManagerA1", "MachineC1", false)] - [TestCase("ManagerB1", "MachineA1", false)] [TestCase("ManagerB1", "MachineB1", true)] - [TestCase("ManagerB1", "MachineC1", false)] - [TestCase("ManagerC1", "MachineA1", false)] - [TestCase("ManagerC1", "MachineB1", false)] [TestCase("ManagerC1", "MachineC1", true)] [TestCase("ManagerABC1", "MachineA1", true)] [TestCase("ManagerABC1", "MachineB1", true)] @@ -287,7 +267,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; bool result = !((Machine.InfoInterface_Proxy)machine.Info).IsNull; @@ -300,13 +280,7 @@ namespace FabAccessAPI_Test [TestCase("Admin1", "MachineB1", true)] [TestCase("Admin1", "MachineC1", true)] [TestCase("ManagerA1", "MachineA1", true)] - [TestCase("ManagerA1", "MachineB1", false)] - [TestCase("ManagerA1", "MachineC1", false)] - [TestCase("ManagerB1", "MachineA1", false)] [TestCase("ManagerB1", "MachineB1", true)] - [TestCase("ManagerB1", "MachineC1", false)] - [TestCase("ManagerC1", "MachineA1", false)] - [TestCase("ManagerC1", "MachineB1", false)] [TestCase("ManagerC1", "MachineC1", true)] [TestCase("ManagerABC1", "MachineA1", true)] [TestCase("ManagerABC1", "MachineB1", true)] @@ -326,7 +300,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; bool result = !((ManageInterface_Proxy)machine.Manage).IsNull; @@ -339,13 +313,7 @@ namespace FabAccessAPI_Test [TestCase("Admin1", "MachineB1", true)] [TestCase("Admin1", "MachineC1", true)] [TestCase("ManagerA1", "MachineA1", false)] - [TestCase("ManagerA1", "MachineB1", false)] - [TestCase("ManagerA1", "MachineC1", false)] - [TestCase("ManagerB1", "MachineA1", false)] [TestCase("ManagerB1", "MachineB1", false)] - [TestCase("ManagerB1", "MachineC1", false)] - [TestCase("ManagerC1", "MachineA1", false)] - [TestCase("ManagerC1", "MachineB1", false)] [TestCase("ManagerC1", "MachineC1", false)] [TestCase("ManagerABC1", "MachineA1", false)] [TestCase("ManagerABC1", "MachineB1", false)] @@ -359,13 +327,13 @@ namespace FabAccessAPI_Test [TestCase("MakerQRA", "MachineA1", false)] [TestCase("MakerQRB", "MachineB1", false)] [TestCase("MakerQRC", "MachineC1", false)] - [Order(3)] + [Order(3), Ignore("Not Implemented")] public async Task AdminInterface(string username, string machineID, bool expectInterface) { Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; bool result = !((AdminInterface_Proxy)machine.Admin).IsNull; @@ -383,7 +351,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; API_TestEnv_Test.Disconnect(connection); @@ -402,42 +370,19 @@ namespace FabAccessAPI_Test public class Machine_Test { #region SetUp - public async Task ForceFree(string username, string machineID) + [SetUp] + public async Task SetUp() { - Console.WriteLine("start: " + machineID); - Connection connection = await API_TestEnv_Test.Connect(username); + Connection connection = await API_TestEnv_Test.Connect("Admin1"); Session session = connection.Session; - Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + IReadOnlyList machine_list = await session.MachineSystem.Info.GetMachineList().ConfigureAwait(false); - await machine.Manage.ForceFree().ConfigureAwait(false); - - API_TestEnv_Test.Disconnect(connection); - - Console.WriteLine("finished: " + machineID); - } - - [OneTimeSetUp] - public async Task OneTimeSetUp() - { - List tasks = new List() + List tasks = new List(); + foreach(Machine m in machine_list) { - ForceFree("Admin1", "MachineA1"), - ForceFree("Admin1", "MachineA2"), - ForceFree("Admin1", "MachineA3"), - ForceFree("Admin1", "MachineA4"), - ForceFree("Admin1", "MachineA5"), - ForceFree("Admin1", "MachineB1"), - ForceFree("Admin1", "MachineB2"), - ForceFree("Admin1", "MachineB3"), - ForceFree("Admin1", "MachineB4"), - ForceFree("Admin1", "MachineB5"), - ForceFree("Admin1", "MachineC1"), - ForceFree("Admin1", "MachineC2"), - ForceFree("Admin1", "MachineC3"), - ForceFree("Admin1", "MachineC4"), - ForceFree("Admin1", "MachineC5") - }; + tasks.Add(m.Manage.ForceFree()); + } await Task.WhenAll(tasks); } @@ -452,7 +397,7 @@ namespace FabAccessAPI_Test Connection connection = await API_TestEnv_Test.Connect(username); Session session = connection.Session; - Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; // Check State before run Test if (machine.State != MachineState.free) @@ -463,10 +408,10 @@ namespace FabAccessAPI_Test await machine.Use.Use().ConfigureAwait(false); - machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine.Inuse.GiveBack().ConfigureAwait(false); - machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; API_TestEnv_Test.Disconnect(connection); @@ -476,7 +421,7 @@ namespace FabAccessAPI_Test [TestCase("ManagerA1", "MakerA1", "MachineA1")] [TestCase("MakerA1", "Admin1", "MachineA1")] [TestCase("ManagerA1", "GuestA1", "MachineA1")] - [Order(2)] + [Order(2), Ignore("Not Implemented")] public async Task TransferMachine(string username1, string username2, string machineID) { Connection connection1 = await API_TestEnv_Test.Connect(username1); @@ -485,7 +430,7 @@ namespace FabAccessAPI_Test Connection connection2 = await API_TestEnv_Test.Connect(username2); Session session2 = connection1.Session; - Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; // Check State before run Test if (machine1.State != MachineState.free) @@ -496,16 +441,16 @@ namespace FabAccessAPI_Test } await machine1.Use.Use().ConfigureAwait(false); - machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine1.Inuse.Releasefortakeover().ConfigureAwait(false); - Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine2.Takeover.Accept().ConfigureAwait(false); - machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine2.Inuse.GiveBack().ConfigureAwait(false); - machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection2); @@ -516,7 +461,7 @@ namespace FabAccessAPI_Test [TestCase("ManagerA1", "MakerA1", "MachineA1")] [TestCase("MakerA1", "Admin1", "MachineA1")] [TestCase("ManagerA1", "GuestA1", "MachineA1")] - [Order(3)] + [Order(3), Ignore("Not Implemented")] public async Task TransferMachine_Reject(string username1, string username2, string machineID) { Connection connection1 = await API_TestEnv_Test.Connect(username1); @@ -525,7 +470,7 @@ namespace FabAccessAPI_Test Connection connection2 = await API_TestEnv_Test.Connect(username2); Session session2 = connection1.Session; - Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; // Check State before run Test if (machine1.State != MachineState.free) @@ -536,16 +481,16 @@ namespace FabAccessAPI_Test } await machine1.Use.Use().ConfigureAwait(false); - machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine1.Inuse.Releasefortakeover().ConfigureAwait(false); - Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine2.Takeover.Reject().ConfigureAwait(false); - machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine1.Inuse.GiveBack().ConfigureAwait(false); - machine2 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine2 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection2); @@ -556,7 +501,7 @@ namespace FabAccessAPI_Test [TestCase("ManagerA1", "ManagerA1", "MachineA1")] [TestCase("ManagerA1", "Admin1", "MachineA1")] [TestCase("MakerA1", "Admin1", "MachineA1")] - [Order(4)] + [Order(4), Ignore("Not Implemented")] public async Task CheckMachine(string username1, string username2, string machineID) { Connection connection1 = await API_TestEnv_Test.Connect(username1); @@ -565,7 +510,7 @@ namespace FabAccessAPI_Test Connection connection2 = await API_TestEnv_Test.Connect(username2); Session session2 = connection1.Session; - Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; // Check State before run Test if (machine1.State != MachineState.free) @@ -576,13 +521,13 @@ namespace FabAccessAPI_Test } await machine1.Use.Use().ConfigureAwait(false); - machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine1.Inuse.GiveBack().ConfigureAwait(false); - Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine2.Check.Check().ConfigureAwait(false); - machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection2); @@ -593,7 +538,7 @@ namespace FabAccessAPI_Test [TestCase("ManagerA1", "ManagerA1", "MachineA1")] [TestCase("ManagerA1", "Admin1", "MachineA1")] [TestCase("MakerA1", "Admin1", "MachineA1")] - [Order(5)] + [Order(5), Ignore("Not Implemented")] public async Task CheckMachine_Reject(string username1, string username2, string machineID) { Connection connection1 = await API_TestEnv_Test.Connect(username1); @@ -603,7 +548,7 @@ namespace FabAccessAPI_Test Session session2 = connection1.Session; - Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; // Check State before run Test if (machine1.State != MachineState.free) @@ -614,19 +559,19 @@ namespace FabAccessAPI_Test } await machine1.Use.Use().ConfigureAwait(false); - machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine1.Inuse.GiveBack().ConfigureAwait(false); - Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine2.Check.Reject().ConfigureAwait(false); - machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine1.Inuse.GiveBack().ConfigureAwait(false); - machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine2.Check.Check().ConfigureAwait(false); - machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection2); @@ -635,7 +580,7 @@ namespace FabAccessAPI_Test } [TestCase("MakerA1", "GuestA1", "ManagerA1", "MachineA1")] - [Order(4)] + [Order(4), Ignore("Not Implemented")] public async Task CheckMachine_NoPermission(string username1, string username2, string username3, string machineID) { Connection connection1 = await API_TestEnv_Test.Connect(username1); @@ -645,9 +590,9 @@ namespace FabAccessAPI_Test Session session2 = connection1.Session; Connection connection3 = await API_TestEnv_Test.Connect(username3); - Session session3 = connection1.Session; + Session session3 = connection3.Session; - Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; // Check State before run Test if (machine1.State != MachineState.free) @@ -658,13 +603,13 @@ namespace FabAccessAPI_Test } await machine1.Use.Use().ConfigureAwait(false); - machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine1.Inuse.GiveBack().ConfigureAwait(false); - Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; bool result = ((CheckInterface_Proxy)machine2.Check).IsNull; - Machine machine3 = await session3.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); + Machine machine3 = (await session3.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; await machine3.Check.Check().ConfigureAwait(false); API_TestEnv_Test.Disconnect(connection1); @@ -672,6 +617,29 @@ namespace FabAccessAPI_Test Assert.IsTrue(result); } + + [TestCase("ManagerA1", "MachineA1")] + [Order(5)] + public async Task CurrentUser(string username, string machineID) + { + Connection connection = await API_TestEnv_Test.Connect(username); + Session session = connection.Session; + + Machine machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; + + // Check State before run Test + if (machine.State != MachineState.free) + { + API_TestEnv_Test.Disconnect(connection); + Assert.Inconclusive("State is not 'free'"); + } + + MachineInfoExtended machineInfoExtended = await machine.Manage.GetMachineInfoExtended().ConfigureAwait(false); + + API_TestEnv_Test.Disconnect(connection); + + Assert.IsNull(machineInfoExtended.CurrentUser.Just); + } } [TestFixture, Parallelizable(ParallelScope.Children)] @@ -718,7 +686,7 @@ namespace FabAccessAPI_Test [TestCase("ManagerA1", 13)] [TestCase("MakerA1", 13)] [TestCase("GuestA1", 13)] - [Order(3)] + [Order(3), Ignore("Not Implemented")] public async Task ListRoles(string username, int expectRolesCount) { Connection connection = await API_TestEnv_Test.Connect(username); @@ -736,24 +704,6 @@ namespace FabAccessAPI_Test [Order(5)] public class UserSystem_Test { - [TestCase("Admin1", true)] - [TestCase("ManagerA1", true)] - [TestCase("MakerA1", true)] - [TestCase("GuestA1", true)] - [Order(1)] - public async Task AccessUserSystem(string username, bool expectInterface) - { - Connection connection = await API_TestEnv_Test.Connect(username); - Session session = connection.Session; - - bool result = session.UserSystem != null; - - API_TestEnv_Test.Disconnect(connection); - - Assert.AreEqual(expectInterface, result); - } - - //[TestCase("Admin1", true)] //[TestCase("ManagerA1", true)] //[TestCase("MakerA1", true)] @@ -837,7 +787,7 @@ namespace FabAccessAPI_Test [TestCase("ManagerA1", true)] [TestCase("MakerA1", true)] [TestCase("GuestA1", true)] - [Order(2)] + [Order(2), Ignore("Not Implemented")] public async Task ManageInterface(string username, bool expectInterface) { Connection connection = await API_TestEnv_Test.Connect(username); @@ -856,7 +806,7 @@ namespace FabAccessAPI_Test [TestCase("ManagerA1", false)] [TestCase("MakerA1", false)] [TestCase("GuestA1", false)] - [Order(3)] + [Order(3), Ignore("Not Implemented")] public async Task AdminInterface(string username, bool expectInterface) { Connection connection = await API_TestEnv_Test.Connect(username); @@ -895,7 +845,7 @@ namespace FabAccessAPI_Test [TestCase("ManagerA1")] [TestCase("MakerA1")] [TestCase("GuestA1")] - [Order(5)] + [Order(5), Ignore("Not Implemented")] public async Task ListUserRoles(string username, params string[] expect_roles) { Connection connection = await API_TestEnv_Test.Connect(username); @@ -915,7 +865,7 @@ namespace FabAccessAPI_Test foreach (Role role_user in roles_user) { - if(!expect_roles_list.Exists(x => x == role_user.Name)) + if (!expect_roles_list.Exists(x => x == role_user.Name)) { Assert.Fail("Roles are different"); } @@ -927,6 +877,6 @@ namespace FabAccessAPI_Test [Order(7)] public class User_Test { - + } } \ No newline at end of file