diff --git a/FabAccessAPI/schema b/FabAccessAPI/schema index ec8352c..158d307 160000 --- a/FabAccessAPI/schema +++ b/FabAccessAPI/schema @@ -1 +1 @@ -Subproject commit ec8352c6ae97a0c0b75ad8bcdd5b0cb156f753e7 +Subproject commit 158d307d74a8e82d5b7c9f4de1afcb180cc6eceb diff --git a/FabAccessAPI_Test/API_Test.cs b/FabAccessAPI_Test/API_ClassTest.cs similarity index 98% rename from FabAccessAPI_Test/API_Test.cs rename to FabAccessAPI_Test/API_ClassTest.cs index 66e294c..d94815c 100644 --- a/FabAccessAPI_Test/API_Test.cs +++ b/FabAccessAPI_Test/API_ClassTest.cs @@ -149,7 +149,7 @@ namespace FabAccessAPI_Test try { // Stop here and cut internet connection - await api.Session.MachineSystem.Info.GetMachineList().ConfigureAwait(false); + await api.Session.Resources.List().ConfigureAwait(false); } catch { @@ -168,7 +168,5 @@ namespace FabAccessAPI_Test ClassicAssert.AreEqual(1, event_Disconnected, "event_Disconnected"); }); } - - } } diff --git a/FabAccessAPI_Test/API_SpecTests/Bootstrap.cs b/FabAccessAPI_Test/API_SpecTests/Bootstrap.cs new file mode 100644 index 0000000..ccf32dd --- /dev/null +++ b/FabAccessAPI_Test/API_SpecTests/Bootstrap.cs @@ -0,0 +1,137 @@ +using FabAccessAPI; +using NUnit.Framework; +using System.Threading.Tasks; +using FabAccessAPI.Schema; +using NUnit.Framework.Legacy; +using System.Runtime.Serialization; +using Capnp.Rpc; +using System.Net.Security; +using System.Security.Cryptography.X509Certificates; +using System.Xml.Serialization; + +namespace FabAccessAPI_Test.API_SpecTests +{ + [TestFixture, Parallelizable(ParallelScope.Children)] + public class Bootstrap + { + private bool _RemoteCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) + { + return true; + } + + private Stream _InjectSSL(Stream tcpstream) + { + SslStream sslStream = new SslStream(tcpstream, false, new RemoteCertificateValidationCallback(_RemoteCertificateValidationCallback)); + sslStream.ReadTimeout = 5000; + sslStream.AuthenticateAsClient("bffhd"); + sslStream.ReadTimeout = -1; + + return sslStream; + } + + [TestCase(1, 0)] + public async Task getAPIVersion(int major, int minor) + { + TcpRpcClient tcpRpcClient = new TcpRpcClient(); + tcpRpcClient.InjectMidlayer(_InjectSSL); + + tcpRpcClient.Connect(TestEnv.TESTSERVER, TestEnv.TESTSERVER_PORT); + await tcpRpcClient.WhenConnected; + + IBootstrap _Bootstrap = tcpRpcClient.GetMain(); + + FabAccessAPI.Schema.Version data = await _Bootstrap.GetAPIVersion().ConfigureAwait(false); + + FabAccessAPI.Schema.Version expected = new FabAccessAPI.Schema.Version() + { + Major = major, + Minor = minor + }; + + tcpRpcClient.Dispose(); + + Assert.That(data, Is.EqualTo(expected)); + } + + [TestCase("bffhd", "TODO")] + public async Task getServerRelease(string name, string release) + { + TcpRpcClient tcpRpcClient = new TcpRpcClient(); + tcpRpcClient.InjectMidlayer(_InjectSSL); + + tcpRpcClient.Connect(TestEnv.TESTSERVER, TestEnv.TESTSERVER_PORT); + await tcpRpcClient.WhenConnected; + + IBootstrap _Bootstrap = tcpRpcClient.GetMain(); + + (string data_name, string data_release) = await _Bootstrap.GetServerRelease().ConfigureAwait(false); + + tcpRpcClient.Dispose(); + + Assert.That(data_name, Is.EqualTo(name)); + Assert.That(data_release, Is.EqualTo(release)); + } + + [TestCase("FabAccessTest", "test.fab-access.space")] + public async Task getServerInfo(string spacename, string instanceurl) + { + TcpRpcClient tcpRpcClient = new TcpRpcClient(); + tcpRpcClient.InjectMidlayer(_InjectSSL); + + tcpRpcClient.Connect(TestEnv.TESTSERVER, TestEnv.TESTSERVER_PORT); + await tcpRpcClient.WhenConnected; + + IBootstrap _Bootstrap = tcpRpcClient.GetMain(); + + (string data_spacename, string data_instanceurl) = await _Bootstrap.GetServerInfo().ConfigureAwait(false); + + tcpRpcClient.Dispose(); + + Assert.That(data_spacename, Is.EqualTo(spacename)); + Assert.That(data_instanceurl, Is.EqualTo(instanceurl)); + } + + [TestCase("FabAccessTest", "test.fab-access.space")] + public async Task mechanisms() + { + TcpRpcClient tcpRpcClient = new TcpRpcClient(); + tcpRpcClient.InjectMidlayer(_InjectSSL); + + tcpRpcClient.Connect(TestEnv.TESTSERVER, TestEnv.TESTSERVER_PORT); + await tcpRpcClient.WhenConnected; + + IBootstrap _Bootstrap = tcpRpcClient.GetMain(); + + Assert.Fail("Not Defined"); + } + + [TestCase("User0")] + public async Task APIConnect(string username) + { + API api = new API(); + ConnectionData connectionData = TestEnv.CreateConnetionData(username); + await api.Connect(connectionData); + + ServerData data = api.ServerData; + + await api.Disconnect(); + + ServerData expected = new ServerData + { + APIVersion = new FabAccessAPI.Schema.Version() + { + Major = 1, + Minor = 0 + }, + ServerName = "bffhd", + ServerRelease = "TODO", + SpaceName = "FabAccessTest", + InstanceURL = "test.fab-access.space" + }; + + Assert.That(data, Is.EqualTo(expected)); + } + } + + +} diff --git a/FabAccessAPI_Test/API_TestEnv/MachineSystem_Test_Stateless.cs b/FabAccessAPI_Test/API_TestEnv/MachineSystem_Test_Stateless.cs index b16be5c..5bcd2aa 100644 --- a/FabAccessAPI_Test/API_TestEnv/MachineSystem_Test_Stateless.cs +++ b/FabAccessAPI_Test/API_TestEnv/MachineSystem_Test_Stateless.cs @@ -1,199 +1,199 @@ -using FabAccessAPI; -using FabAccessAPI.Schema; -using NUnit.Framework; -using NUnit.Framework.Legacy; -using System.Collections.Generic; -using System.Threading.Tasks; +// using FabAccessAPI; +// using FabAccessAPI.Schema; +// using NUnit.Framework; +// using NUnit.Framework.Legacy; +// using System.Collections.Generic; +// using System.Threading.Tasks; -namespace FabAccessAPI_Test.API_TestEnv -{ - [TestFixture, Parallelizable(ParallelScope.Children)] - [Order(1)] - public class MachineSystem_Test_Stateless - { - [TestCase("Admin1", true)] - [TestCase("Admin2", true)] - [TestCase("ManagerA1", true)] - [TestCase("ManagerA2", true)] - [TestCase("ManagerB1", true)] - [TestCase("ManagerB2", true)] - [TestCase("ManagerC1", true)] - [TestCase("ManagerC2", true)] - [TestCase("ManagerABC1", true)] - [TestCase("ManagerABC2", true)] - [TestCase("MakerA1", true)] - [TestCase("MakerA2", true)] - [TestCase("MakerB1", true)] - [TestCase("MakerB2", true)] - [TestCase("MakerC1", true)] - [TestCase("MakerC2", true)] - [TestCase("MakerABC1", true)] - [TestCase("MakerABC2", true)] - [TestCase("GuestA1", true)] - [TestCase("GuestA2", true)] - [TestCase("GuestB1", true)] - [TestCase("GuestB2", true)] - [TestCase("GuestC1", true)] - [TestCase("GuestC2", true)] - [TestCase("GuestABC1", true)] - [TestCase("GuestABC2", true)] - [TestCase("MakerQRA", true)] - [TestCase("MakerQRB", true)] - [TestCase("MakerQRC", true)] - [Order(2)] - public async Task AccessMachineSystem_Info(string username, bool expectAllow) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// namespace FabAccessAPI_Test.API_TestEnv +// { +// [TestFixture, Parallelizable(ParallelScope.Children)] +// [Order(1)] +// public class MachineSystem_Test_Stateless +// { +// [TestCase("Admin1", true)] +// [TestCase("Admin2", true)] +// [TestCase("ManagerA1", true)] +// [TestCase("ManagerA2", true)] +// [TestCase("ManagerB1", true)] +// [TestCase("ManagerB2", true)] +// [TestCase("ManagerC1", true)] +// [TestCase("ManagerC2", true)] +// [TestCase("ManagerABC1", true)] +// [TestCase("ManagerABC2", true)] +// [TestCase("MakerA1", true)] +// [TestCase("MakerA2", true)] +// [TestCase("MakerB1", true)] +// [TestCase("MakerB2", true)] +// [TestCase("MakerC1", true)] +// [TestCase("MakerC2", true)] +// [TestCase("MakerABC1", true)] +// [TestCase("MakerABC2", true)] +// [TestCase("GuestA1", true)] +// [TestCase("GuestA2", true)] +// [TestCase("GuestB1", true)] +// [TestCase("GuestB2", true)] +// [TestCase("GuestC1", true)] +// [TestCase("GuestC2", true)] +// [TestCase("GuestABC1", true)] +// [TestCase("GuestABC2", true)] +// [TestCase("MakerQRA", true)] +// [TestCase("MakerQRB", true)] +// [TestCase("MakerQRC", true)] +// [Order(2)] +// public async Task AccessMachineSystem_Info(string username, bool expectAllow) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - ClassicAssert.AreEqual(expectAllow, !((MachineSystem.InfoInterface_Proxy)api.Session.MachineSystem.Info).IsNull); - } +// ClassicAssert.AreEqual(expectAllow, !((MachineSystem.InfoInterface_Proxy)api.Session.MachineSystem.Info).IsNull); +// } - [TestCase("Admin1", 15)] - [TestCase("ManagerA1", 5)] - [TestCase("ManagerB1", 5)] - [TestCase("ManagerC1", 5)] - [TestCase("ManagerABC1", 15)] - [TestCase("MakerA1", 5)] - [TestCase("MakerB1", 5)] - [TestCase("MakerC1", 5)] - [TestCase("MakerABC1", 15)] - [TestCase("GuestA1", 5)] - [TestCase("GuestB1", 5)] - [TestCase("GuestC1", 5)] - [TestCase("GuestABC1", 15)] - [TestCase("MakerQRA", 0)] - [TestCase("MakerQRB", 0)] - [TestCase("MakerQRC", 0)] - [Order(3)] - public async Task ListMachines(string username, int expectedMachineCount) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", 15)] +// [TestCase("ManagerA1", 5)] +// [TestCase("ManagerB1", 5)] +// [TestCase("ManagerC1", 5)] +// [TestCase("ManagerABC1", 15)] +// [TestCase("MakerA1", 5)] +// [TestCase("MakerB1", 5)] +// [TestCase("MakerC1", 5)] +// [TestCase("MakerABC1", 15)] +// [TestCase("GuestA1", 5)] +// [TestCase("GuestB1", 5)] +// [TestCase("GuestC1", 5)] +// [TestCase("GuestABC1", 15)] +// [TestCase("MakerQRA", 0)] +// [TestCase("MakerQRB", 0)] +// [TestCase("MakerQRC", 0)] +// [Order(3)] +// public async Task ListMachines(string username, int expectedMachineCount) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - IReadOnlyList machine_list = await api.Session.MachineSystem.Info.GetMachineList().ConfigureAwait(false); +// IReadOnlyList machine_list = await api.Session.MachineSystem.Info.GetMachineList().ConfigureAwait(false); - int result = machine_list.Count; +// int result = machine_list.Count; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectedMachineCount, result); - } +// ClassicAssert.AreEqual(expectedMachineCount, 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", true)] - [TestCase("GuestB1", "MachineB1", true)] - [TestCase("GuestC1", "MachineC1", true)] - [TestCase("MakerQRA", "MachineA1", true)] - [TestCase("MakerQRB", "MachineB1", true)] - [TestCase("MakerQRC", "MachineC1", true)] - [Order(4)] - public async Task GetMachineByName(string username, string machineName, bool expectedAllow) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [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(4)] +// public async Task GetMachineByName(string username, string machineName, bool expectedAllow) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - Optional optional = await api.Session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false); +// Optional optional = await api.Session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false); - bool result = optional.Just != null; +// bool result = optional.Just != null; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectedAllow, result); - } +// ClassicAssert.AreEqual(expectedAllow, result); +// } - [TestCase("Admin1", "MachineX")] - [TestCase("Admin1", "urn:fabaccess:resource:MachineA1")] - [Order(5)] - public async Task GetMachineByName_WrongName(string username, string machineName) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "MachineX")] +// [TestCase("Admin1", "urn:fabaccess:resource:MachineA1")] +// [Order(5)] +// public async Task GetMachineByName_WrongName(string username, string machineName) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - Optional optional = await api.Session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false); +// Optional optional = await api.Session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false); - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.IsNull(optional.Just); - } +// ClassicAssert.IsNull(optional.Just); +// } - [TestCase("Admin1", "urn:fabaccess:resource:MachineA1", true)] - [TestCase("Admin1", "urn:fabaccess:resource:MachineB1", true)] - [TestCase("Admin1", "urn:fabaccess:resource:MachineC1", true)] - [TestCase("ManagerA1", "urn:fabaccess:resource:MachineA1", true)] - [TestCase("ManagerA1", "urn:fabaccess:resource:MachineB1", false)] - [TestCase("ManagerA1", "urn:fabaccess:resource:MachineC1", false)] - [TestCase("ManagerB1", "urn:fabaccess:resource:MachineA1", false)] - [TestCase("ManagerB1", "urn:fabaccess:resource:MachineB1", true)] - [TestCase("ManagerB1", "urn:fabaccess:resource:MachineC1", false)] - [TestCase("ManagerC1", "urn:fabaccess:resource:MachineA1", false)] - [TestCase("ManagerC1", "urn:fabaccess:resource:MachineB1", false)] - [TestCase("ManagerC1", "urn:fabaccess:resource:MachineC1", true)] - [TestCase("ManagerABC1", "urn:fabaccess:resource:MachineA1", true)] - [TestCase("ManagerABC1", "urn:fabaccess:resource:MachineB1", true)] - [TestCase("ManagerABC1", "urn:fabaccess:resource:MachineC1", true)] - [TestCase("MakerA1", "urn:fabaccess:resource:MachineA1", true)] - [TestCase("MakerB1", "urn:fabaccess:resource:MachineB1", true)] - [TestCase("MakerC1", "urn:fabaccess:resource:MachineC1", true)] - [TestCase("GuestA1", "urn:fabaccess:resource:MachineA1", true)] - [TestCase("GuestB1", "urn:fabaccess:resource:MachineB1", true)] - [TestCase("GuestC1", "urn:fabaccess:resource:MachineC1", true)] - [TestCase("MakerQRA", "urn:fabaccess:resource:MachineA1", true)] - [TestCase("MakerQRB", "urn:fabaccess:resource:MachineB1", true)] - [TestCase("MakerQRC", "urn:fabaccess:resource:MachineC1", true)] +// [TestCase("Admin1", "urn:fabaccess:resource:MachineA1", true)] +// [TestCase("Admin1", "urn:fabaccess:resource:MachineB1", true)] +// [TestCase("Admin1", "urn:fabaccess:resource:MachineC1", true)] +// [TestCase("ManagerA1", "urn:fabaccess:resource:MachineA1", true)] +// [TestCase("ManagerA1", "urn:fabaccess:resource:MachineB1", false)] +// [TestCase("ManagerA1", "urn:fabaccess:resource:MachineC1", false)] +// [TestCase("ManagerB1", "urn:fabaccess:resource:MachineA1", false)] +// [TestCase("ManagerB1", "urn:fabaccess:resource:MachineB1", true)] +// [TestCase("ManagerB1", "urn:fabaccess:resource:MachineC1", false)] +// [TestCase("ManagerC1", "urn:fabaccess:resource:MachineA1", false)] +// [TestCase("ManagerC1", "urn:fabaccess:resource:MachineB1", false)] +// [TestCase("ManagerC1", "urn:fabaccess:resource:MachineC1", true)] +// [TestCase("ManagerABC1", "urn:fabaccess:resource:MachineA1", true)] +// [TestCase("ManagerABC1", "urn:fabaccess:resource:MachineB1", true)] +// [TestCase("ManagerABC1", "urn:fabaccess:resource:MachineC1", true)] +// [TestCase("MakerA1", "urn:fabaccess:resource:MachineA1", true)] +// [TestCase("MakerB1", "urn:fabaccess:resource:MachineB1", true)] +// [TestCase("MakerC1", "urn:fabaccess:resource:MachineC1", true)] +// [TestCase("GuestA1", "urn:fabaccess:resource:MachineA1", true)] +// [TestCase("GuestB1", "urn:fabaccess:resource:MachineB1", true)] +// [TestCase("GuestC1", "urn:fabaccess:resource:MachineC1", true)] +// [TestCase("MakerQRA", "urn:fabaccess:resource:MachineA1", true)] +// [TestCase("MakerQRB", "urn:fabaccess:resource:MachineB1", true)] +// [TestCase("MakerQRC", "urn:fabaccess:resource:MachineC1", true)] - [Order(6)] - public async Task GetMachineByURN(string username, string urn, bool expectedAllow) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [Order(6)] +// public async Task GetMachineByURN(string username, string urn, bool expectedAllow) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - Optional optional = await api.Session.MachineSystem.Info.GetMachineURN(urn).ConfigureAwait(false); - bool result = optional.Just != null; +// Optional optional = await api.Session.MachineSystem.Info.GetMachineURN(urn).ConfigureAwait(false); +// bool result = optional.Just != null; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectedAllow, result); - } +// ClassicAssert.AreEqual(expectedAllow, result); +// } - [TestCase("Admin1", "urn:fabaccess:resource:MachineX")] - [TestCase("Admin1", "MachineA1")] - [TestCase("Admin1", "something")] - [Order(7)] - public async Task GetMachineByURN_WrongURN(string username, string urn) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "urn:fabaccess:resource:MachineX")] +// [TestCase("Admin1", "MachineA1")] +// [TestCase("Admin1", "something")] +// [Order(7)] +// public async Task GetMachineByURN_WrongURN(string username, string urn) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - Optional optional = await api.Session.MachineSystem.Info.GetMachineURN(urn).ConfigureAwait(false); +// Optional optional = await api.Session.MachineSystem.Info.GetMachineURN(urn).ConfigureAwait(false); - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.IsNull(optional.Just); - } - } +// ClassicAssert.IsNull(optional.Just); +// } +// } -} +// } diff --git a/FabAccessAPI_Test/API_TestEnv/Machine_Test.cs b/FabAccessAPI_Test/API_TestEnv/Machine_Test.cs index 65a5746..69be5a0 100644 --- a/FabAccessAPI_Test/API_TestEnv/Machine_Test.cs +++ b/FabAccessAPI_Test/API_TestEnv/Machine_Test.cs @@ -1,301 +1,301 @@ -using FabAccessAPI; -using FabAccessAPI.Schema; -using NUnit.Framework; -using NUnit.Framework.Legacy; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace FabAccessAPI_Test.API_TestEnv -{ - [TestFixture] - public class Machine_Test - { - #region SetUp - [SetUp] - public async Task SetUp() - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData("Admin1"); - await api.Connect(connectionData); - - IReadOnlyList machine_list = await api.Session.MachineSystem.Info.GetMachineList().ConfigureAwait(false); - - List tasks = new List(); - foreach (Machine m in machine_list) - { - tasks.Add(m.Manage.ForceFree()); - } - - await Task.WhenAll(tasks); - } - #endregion - - [TestCase("Admin1", "MachineA1")] - [TestCase("ManagerA1", "MachineA1")] - [TestCase("MakerA1", "MachineA1")] - [Order(1)] - public async Task UseGiveBack(string username, string machineID) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); - - Machine machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - - // Check State before run Test - if (machine.State != Machine.MachineState.free) - { - await api.Disconnect(); - ClassicAssert.Inconclusive("State is not 'free'"); - } - - await machine.Use.Use().ConfigureAwait(false); - - machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine.Inuse.GiveBack().ConfigureAwait(false); - - machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - - await api.Disconnect(); - - ClassicAssert.AreEqual(Machine.MachineState.free, machine.State); - } - - [TestCase("ManagerA1", "MakerA1", "MachineA1")] - [TestCase("MakerA1", "Admin1", "MachineA1")] - [TestCase("ManagerA1", "GuestA1", "MachineA1")] - [Order(2), Ignore("Not Implemented")] - public async Task TransferMachine(string username1, string username2, string machineID) - { - API api1 = new API(); - ConnectionData connectionData1 = TestEnv.CreateConnetionData(username1); - await api1.Connect(connectionData1); - - API api2 = new API(); - ConnectionData connectionData2 = TestEnv.CreateConnetionData(username2); - await api2.Connect(connectionData2); - - Machine machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - - // Check State before run Test - if (machine1.State != Machine.MachineState.free) - { - await api1.Disconnect(); - await api2.Disconnect(); - ClassicAssert.Inconclusive("State is not 'free'"); - } - - await machine1.Use.Use().ConfigureAwait(false); - machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine1.Inuse.Releasefortakeover().ConfigureAwait(false); - - Machine machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine2.Takeover.Accept().ConfigureAwait(false); - - machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine2.Inuse.GiveBack().ConfigureAwait(false); - - machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - - await api1.Disconnect(); - await api2.Disconnect(); - - ClassicAssert.AreEqual(Machine.MachineState.free, machine1.State); - } - - [TestCase("ManagerA1", "MakerA1", "MachineA1")] - [TestCase("MakerA1", "Admin1", "MachineA1")] - [TestCase("ManagerA1", "GuestA1", "MachineA1")] - [Order(3), Ignore("Not Implemented")] - public async Task TransferMachine_Reject(string username1, string username2, string machineID) - { - API api1 = new API(); - ConnectionData connectionData1 = TestEnv.CreateConnetionData(username1); - await api1.Connect(connectionData1); - - API api2 = new API(); - ConnectionData connectionData2 = TestEnv.CreateConnetionData(username2); - await api2.Connect(connectionData2); - - Machine machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - - // Check State before run Test - if (machine1.State != Machine.MachineState.free) - { - await api1.Disconnect(); - await api2.Disconnect(); - ClassicAssert.Inconclusive("State is not 'free'"); - } - - await machine1.Use.Use().ConfigureAwait(false); - machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine1.Inuse.Releasefortakeover().ConfigureAwait(false); - - Machine machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine2.Takeover.Reject().ConfigureAwait(false); - - machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine1.Inuse.GiveBack().ConfigureAwait(false); - - machine2 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// using FabAccessAPI; +// using FabAccessAPI.Schema; +// using NUnit.Framework; +// using NUnit.Framework.Legacy; +// using System.Collections.Generic; +// using System.Threading.Tasks; + +// namespace FabAccessAPI_Test.API_TestEnv +// { +// [TestFixture] +// public class Machine_Test +// { +// #region SetUp +// [SetUp] +// public async Task SetUp() +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData("Admin1"); +// await api.Connect(connectionData); + +// IReadOnlyList machine_list = await api.Session.MachineSystem.Info.GetMachineList().ConfigureAwait(false); + +// List tasks = new List(); +// foreach (Machine m in machine_list) +// { +// tasks.Add(m.Manage.ForceFree()); +// } + +// await Task.WhenAll(tasks); +// } +// #endregion + +// [TestCase("Admin1", "MachineA1")] +// [TestCase("ManagerA1", "MachineA1")] +// [TestCase("MakerA1", "MachineA1")] +// [Order(1)] +// public async Task UseGiveBack(string username, string machineID) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); + +// Machine machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; + +// // Check State before run Test +// if (machine.State != Machine.MachineState.free) +// { +// await api.Disconnect(); +// ClassicAssert.Inconclusive("State is not 'free'"); +// } + +// await machine.Use.Use().ConfigureAwait(false); + +// machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine.Inuse.GiveBack().ConfigureAwait(false); + +// machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; + +// await api.Disconnect(); + +// ClassicAssert.AreEqual(Machine.MachineState.free, machine.State); +// } + +// [TestCase("ManagerA1", "MakerA1", "MachineA1")] +// [TestCase("MakerA1", "Admin1", "MachineA1")] +// [TestCase("ManagerA1", "GuestA1", "MachineA1")] +// [Order(2), Ignore("Not Implemented")] +// public async Task TransferMachine(string username1, string username2, string machineID) +// { +// API api1 = new API(); +// ConnectionData connectionData1 = TestEnv.CreateConnetionData(username1); +// await api1.Connect(connectionData1); + +// API api2 = new API(); +// ConnectionData connectionData2 = TestEnv.CreateConnetionData(username2); +// await api2.Connect(connectionData2); + +// Machine machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; + +// // Check State before run Test +// if (machine1.State != Machine.MachineState.free) +// { +// await api1.Disconnect(); +// await api2.Disconnect(); +// ClassicAssert.Inconclusive("State is not 'free'"); +// } + +// await machine1.Use.Use().ConfigureAwait(false); +// machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine1.Inuse.Releasefortakeover().ConfigureAwait(false); + +// Machine machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine2.Takeover.Accept().ConfigureAwait(false); + +// machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine2.Inuse.GiveBack().ConfigureAwait(false); + +// machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; + +// await api1.Disconnect(); +// await api2.Disconnect(); + +// ClassicAssert.AreEqual(Machine.MachineState.free, machine1.State); +// } + +// [TestCase("ManagerA1", "MakerA1", "MachineA1")] +// [TestCase("MakerA1", "Admin1", "MachineA1")] +// [TestCase("ManagerA1", "GuestA1", "MachineA1")] +// [Order(3), Ignore("Not Implemented")] +// public async Task TransferMachine_Reject(string username1, string username2, string machineID) +// { +// API api1 = new API(); +// ConnectionData connectionData1 = TestEnv.CreateConnetionData(username1); +// await api1.Connect(connectionData1); + +// API api2 = new API(); +// ConnectionData connectionData2 = TestEnv.CreateConnetionData(username2); +// await api2.Connect(connectionData2); + +// Machine machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; + +// // Check State before run Test +// if (machine1.State != Machine.MachineState.free) +// { +// await api1.Disconnect(); +// await api2.Disconnect(); +// ClassicAssert.Inconclusive("State is not 'free'"); +// } + +// await machine1.Use.Use().ConfigureAwait(false); +// machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine1.Inuse.Releasefortakeover().ConfigureAwait(false); + +// Machine machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine2.Takeover.Reject().ConfigureAwait(false); + +// machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine1.Inuse.GiveBack().ConfigureAwait(false); + +// machine2 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await api1.Disconnect(); - await api2.Disconnect(); +// await api1.Disconnect(); +// await api2.Disconnect(); - ClassicAssert.AreEqual(Machine.MachineState.free, machine2.State); - } - - [TestCase("ManagerA1", "ManagerA1", "MachineA1")] - [TestCase("ManagerA1", "Admin1", "MachineA1")] - [TestCase("MakerA1", "Admin1", "MachineA1")] - [Order(4), Ignore("Not Implemented")] - public async Task CheckMachine(string username1, string username2, string machineID) - { - API api1 = new API(); - ConnectionData connectionData1 = TestEnv.CreateConnetionData(username1); - await api1.Connect(connectionData1); - - API api2 = new API(); - ConnectionData connectionData2 = TestEnv.CreateConnetionData(username2); - await api2.Connect(connectionData2); - - Machine machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - - // Check State before run Test - if (machine1.State != Machine.MachineState.free) - { - await api1.Disconnect(); - await api2.Disconnect(); - ClassicAssert.Inconclusive("State is not 'free'"); - } - - await machine1.Use.Use().ConfigureAwait(false); - machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine1.Inuse.GiveBack().ConfigureAwait(false); - - Machine machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine2.Check.Check().ConfigureAwait(false); - - machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - - await api1.Disconnect(); - await api2.Disconnect(); - - ClassicAssert.AreEqual(Machine.MachineState.free, machine1.State); - } +// ClassicAssert.AreEqual(Machine.MachineState.free, machine2.State); +// } + +// [TestCase("ManagerA1", "ManagerA1", "MachineA1")] +// [TestCase("ManagerA1", "Admin1", "MachineA1")] +// [TestCase("MakerA1", "Admin1", "MachineA1")] +// [Order(4), Ignore("Not Implemented")] +// public async Task CheckMachine(string username1, string username2, string machineID) +// { +// API api1 = new API(); +// ConnectionData connectionData1 = TestEnv.CreateConnetionData(username1); +// await api1.Connect(connectionData1); + +// API api2 = new API(); +// ConnectionData connectionData2 = TestEnv.CreateConnetionData(username2); +// await api2.Connect(connectionData2); + +// Machine machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; + +// // Check State before run Test +// if (machine1.State != Machine.MachineState.free) +// { +// await api1.Disconnect(); +// await api2.Disconnect(); +// ClassicAssert.Inconclusive("State is not 'free'"); +// } + +// await machine1.Use.Use().ConfigureAwait(false); +// machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine1.Inuse.GiveBack().ConfigureAwait(false); + +// Machine machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine2.Check.Check().ConfigureAwait(false); + +// machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; + +// await api1.Disconnect(); +// await api2.Disconnect(); + +// ClassicAssert.AreEqual(Machine.MachineState.free, machine1.State); +// } - [TestCase("ManagerA1", "ManagerA1", "MachineA1")] - [TestCase("ManagerA1", "Admin1", "MachineA1")] - [TestCase("MakerA1", "Admin1", "MachineA1")] - [Order(5), Ignore("Not Implemented")] - public async Task CheckMachine_Reject(string username1, string username2, string machineID) - { - API api1 = new API(); - ConnectionData connectionData1 = TestEnv.CreateConnetionData(username1); - await api1.Connect(connectionData1); - - API api2 = new API(); - ConnectionData connectionData2 = TestEnv.CreateConnetionData(username2); - await api2.Connect(connectionData2); - - - Machine machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - - // Check State before run Test - if (machine1.State != Machine.MachineState.free) - { - await api1.Disconnect(); - await api2.Disconnect(); - ClassicAssert.Inconclusive("State is not 'free'"); - } - - await machine1.Use.Use().ConfigureAwait(false); - machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine1.Inuse.GiveBack().ConfigureAwait(false); +// [TestCase("ManagerA1", "ManagerA1", "MachineA1")] +// [TestCase("ManagerA1", "Admin1", "MachineA1")] +// [TestCase("MakerA1", "Admin1", "MachineA1")] +// [Order(5), Ignore("Not Implemented")] +// public async Task CheckMachine_Reject(string username1, string username2, string machineID) +// { +// API api1 = new API(); +// ConnectionData connectionData1 = TestEnv.CreateConnetionData(username1); +// await api1.Connect(connectionData1); + +// API api2 = new API(); +// ConnectionData connectionData2 = TestEnv.CreateConnetionData(username2); +// await api2.Connect(connectionData2); + + +// Machine machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; + +// // Check State before run Test +// if (machine1.State != Machine.MachineState.free) +// { +// await api1.Disconnect(); +// await api2.Disconnect(); +// ClassicAssert.Inconclusive("State is not 'free'"); +// } + +// await machine1.Use.Use().ConfigureAwait(false); +// machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine1.Inuse.GiveBack().ConfigureAwait(false); - Machine machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine2.Check.Reject().ConfigureAwait(false); - - machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine1.Inuse.GiveBack().ConfigureAwait(false); - - machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine2.Check.Check().ConfigureAwait(false); - - machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - - await api1.Disconnect(); - await api2.Disconnect(); +// Machine machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine2.Check.Reject().ConfigureAwait(false); + +// machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine1.Inuse.GiveBack().ConfigureAwait(false); + +// machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine2.Check.Check().ConfigureAwait(false); + +// machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; + +// await api1.Disconnect(); +// await api2.Disconnect(); - ClassicAssert.AreEqual(Machine.MachineState.free, machine1.State); - } +// ClassicAssert.AreEqual(Machine.MachineState.free, machine1.State); +// } - [TestCase("MakerA1", "GuestA1", "ManagerA1", "MachineA1")] - [Order(4), Ignore("Not Implemented")] - public async Task CheckMachine_NoPermission(string username1, string username2, string username3, string machineID) - { - API api1 = new API(); - ConnectionData connectionData1 = TestEnv.CreateConnetionData(username1); - await api1.Connect(connectionData1); - - API api2 = new API(); - ConnectionData connectionData2 = TestEnv.CreateConnetionData(username2); - await api2.Connect(connectionData2); - - API api3 = new API(); - ConnectionData connectionData3 = TestEnv.CreateConnetionData(username3); - await api3.Connect(connectionData3); - - Machine machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - - // Check State before run Test - if (machine1.State != Machine.MachineState.free) - { - await api1.Disconnect(); - await api2.Disconnect(); - await api3.Disconnect(); - ClassicAssert.Inconclusive("State is not 'free'"); - } +// [TestCase("MakerA1", "GuestA1", "ManagerA1", "MachineA1")] +// [Order(4), Ignore("Not Implemented")] +// public async Task CheckMachine_NoPermission(string username1, string username2, string username3, string machineID) +// { +// API api1 = new API(); +// ConnectionData connectionData1 = TestEnv.CreateConnetionData(username1); +// await api1.Connect(connectionData1); + +// API api2 = new API(); +// ConnectionData connectionData2 = TestEnv.CreateConnetionData(username2); +// await api2.Connect(connectionData2); + +// API api3 = new API(); +// ConnectionData connectionData3 = TestEnv.CreateConnetionData(username3); +// await api3.Connect(connectionData3); + +// Machine machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; + +// // Check State before run Test +// if (machine1.State != Machine.MachineState.free) +// { +// await api1.Disconnect(); +// await api2.Disconnect(); +// await api3.Disconnect(); +// ClassicAssert.Inconclusive("State is not 'free'"); +// } - await machine1.Use.Use().ConfigureAwait(false); - machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine1.Inuse.GiveBack().ConfigureAwait(false); +// await machine1.Use.Use().ConfigureAwait(false); +// machine1 = (await api1.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine1.Inuse.GiveBack().ConfigureAwait(false); - Machine machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - bool result = ((Machine.CheckInterface_Proxy)machine2.Check).IsNull; - - Machine machine3 = (await api3.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await machine3.Check.Check().ConfigureAwait(false); +// Machine machine2 = (await api2.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// bool result = ((Machine.CheckInterface_Proxy)machine2.Check).IsNull; + +// Machine machine3 = (await api3.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// await machine3.Check.Check().ConfigureAwait(false); - await api1.Disconnect(); - await api2.Disconnect(); - await api3.Disconnect(); +// await api1.Disconnect(); +// await api2.Disconnect(); +// await api3.Disconnect(); - ClassicAssert.IsTrue(result); - } +// ClassicAssert.IsTrue(result); +// } - [TestCase("ManagerA1", "MachineA1")] - [Order(5)] - public async Task CurrentUser(string username, string machineID) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); - - Machine machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - - // Check State before run Test - if (machine.State != Machine.MachineState.free) - { - await api.Disconnect(); - ClassicAssert.Inconclusive("State is not 'free'"); - } +// [TestCase("ManagerA1", "MachineA1")] +// [Order(5)] +// public async Task CurrentUser(string username, string machineID) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); + +// Machine machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; + +// // Check State before run Test +// if (machine.State != Machine.MachineState.free) +// { +// await api.Disconnect(); +// ClassicAssert.Inconclusive("State is not 'free'"); +// } - Machine.MachineInfoExtended machineInfoExtended = await machine.Manage.GetMachineInfoExtended().ConfigureAwait(false); +// Machine.MachineInfoExtended machineInfoExtended = await machine.Manage.GetMachineInfoExtended().ConfigureAwait(false); - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.IsNull(machineInfoExtended.CurrentUser.Just); - } - } -} +// ClassicAssert.IsNull(machineInfoExtended.CurrentUser.Just); +// } +// } +// } diff --git a/FabAccessAPI_Test/API_TestEnv/Machine_Test_Stateless.cs b/FabAccessAPI_Test/API_TestEnv/Machine_Test_Stateless.cs index 99f054d..05a885e 100644 --- a/FabAccessAPI_Test/API_TestEnv/Machine_Test_Stateless.cs +++ b/FabAccessAPI_Test/API_TestEnv/Machine_Test_Stateless.cs @@ -1,139 +1,139 @@ -using FabAccessAPI; -using NUnit.Framework; -using System.Threading.Tasks; -using FabAccessAPI.Schema; -using NUnit.Framework.Legacy; +// using FabAccessAPI; +// using NUnit.Framework; +// using System.Threading.Tasks; +// using FabAccessAPI.Schema; +// using NUnit.Framework.Legacy; -namespace FabAccessAPI_Test.API_TestEnv -{ - [TestFixture, Parallelizable(ParallelScope.Children)] - [Order(2)] - public class Machine_Test_Stateless - { - [TestCase("Admin1", "MachineA1", true)] - [TestCase("Admin1", "MachineB1", true)] - [TestCase("Admin1", "MachineC1", true)] - [TestCase("ManagerA1", "MachineA1", true)] - [TestCase("ManagerB1", "MachineB1", true)] - [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 InfoInterface(string username, string machineID, bool expectInterface) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// namespace FabAccessAPI_Test.API_TestEnv +// { +// [TestFixture, Parallelizable(ParallelScope.Children)] +// [Order(2)] +// public class Machine_Test_Stateless +// { +// [TestCase("Admin1", "MachineA1", true)] +// [TestCase("Admin1", "MachineB1", true)] +// [TestCase("Admin1", "MachineC1", true)] +// [TestCase("ManagerA1", "MachineA1", true)] +// [TestCase("ManagerB1", "MachineB1", true)] +// [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 InfoInterface(string username, string machineID, bool expectInterface) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - Machine machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// Machine machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - bool result = !((Machine.InfoInterface_Proxy)machine.Info).IsNull; +// bool result = !((Machine.InfoInterface_Proxy)machine.Info).IsNull; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectInterface, result); - } +// ClassicAssert.AreEqual(expectInterface, result); +// } - [TestCase("Admin1", "MachineA1", true)] - [TestCase("Admin1", "MachineB1", true)] - [TestCase("Admin1", "MachineC1", true)] - [TestCase("ManagerA1", "MachineA1", true)] - [TestCase("ManagerB1", "MachineB1", true)] - [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(2)] - public async Task ManageInterface(string username, string machineID, bool expectInterface) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "MachineA1", true)] +// [TestCase("Admin1", "MachineB1", true)] +// [TestCase("Admin1", "MachineC1", true)] +// [TestCase("ManagerA1", "MachineA1", true)] +// [TestCase("ManagerB1", "MachineB1", true)] +// [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(2)] +// public async Task ManageInterface(string username, string machineID, bool expectInterface) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - Machine machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// Machine machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - bool result = !((Machine.ManageInterface_Proxy)machine.Manage).IsNull; +// bool result = !((Machine.ManageInterface_Proxy)machine.Manage).IsNull; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectInterface, result); - } +// ClassicAssert.AreEqual(expectInterface, result); +// } - [TestCase("Admin1", "MachineA1", true)] - [TestCase("Admin1", "MachineB1", true)] - [TestCase("Admin1", "MachineC1", true)] - [TestCase("ManagerA1", "MachineA1", false)] - [TestCase("ManagerB1", "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), Ignore("Not Implemented")] - public async Task AdminInterface(string username, string machineID, bool expectInterface) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "MachineA1", true)] +// [TestCase("Admin1", "MachineB1", true)] +// [TestCase("Admin1", "MachineC1", true)] +// [TestCase("ManagerA1", "MachineA1", false)] +// [TestCase("ManagerB1", "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), Ignore("Not Implemented")] +// public async Task AdminInterface(string username, string machineID, bool expectInterface) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - Machine machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// Machine machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - bool result = !((Machine.AdminInterface_Proxy)machine.Admin).IsNull; +// bool result = !((Machine.AdminInterface_Proxy)machine.Admin).IsNull; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectInterface, result); - } +// ClassicAssert.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) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [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) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - Machine machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; +// Machine machine = (await api.Session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.Multiple(() => - { - ClassicAssert.AreEqual(machineID, machine.Id); - ClassicAssert.AreEqual(description, machine.Description); - ClassicAssert.AreEqual(wiki, machine.Wiki); - ClassicAssert.AreEqual(category, machine.Category); - }); - } - } +// ClassicAssert.Multiple(() => +// { +// ClassicAssert.AreEqual(machineID, machine.Id); +// ClassicAssert.AreEqual(description, machine.Description); +// ClassicAssert.AreEqual(wiki, machine.Wiki); +// ClassicAssert.AreEqual(category, machine.Category); +// }); +// } +// } -} +// } diff --git a/FabAccessAPI_Test/API_TestEnv/PermissionSystem_Test_Stateless.cs b/FabAccessAPI_Test/API_TestEnv/PermissionSystem_Test_Stateless.cs index 9c2d635..542a574 100644 --- a/FabAccessAPI_Test/API_TestEnv/PermissionSystem_Test_Stateless.cs +++ b/FabAccessAPI_Test/API_TestEnv/PermissionSystem_Test_Stateless.cs @@ -1,70 +1,70 @@ -using FabAccessAPI; -using FabAccessAPI.Schema; -using NUnit.Framework; -using NUnit.Framework.Legacy; -using System.Collections.Generic; -using System.Threading.Tasks; +// using FabAccessAPI; +// using FabAccessAPI.Schema; +// using NUnit.Framework; +// using NUnit.Framework.Legacy; +// using System.Collections.Generic; +// using System.Threading.Tasks; -namespace FabAccessAPI_Test.API_TestEnv -{ - [TestFixture, Parallelizable(ParallelScope.Children)] - [Order(1)] - public class PermissionSystem_Test_Stateless - { - [TestCase("Admin1", true)] - [TestCase("ManagerA1", true)] - [TestCase("MakerA1", true)] - [TestCase("GuestA1", true)] - [Order(1)] - public async Task AccessPermissionSystem(string username, bool expectInterface) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// namespace FabAccessAPI_Test.API_TestEnv +// { +// [TestFixture, Parallelizable(ParallelScope.Children)] +// [Order(1)] +// public class PermissionSystem_Test_Stateless +// { +// [TestCase("Admin1", true)] +// [TestCase("ManagerA1", true)] +// [TestCase("MakerA1", true)] +// [TestCase("GuestA1", true)] +// [Order(1)] +// public async Task AccessPermissionSystem(string username, bool expectInterface) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - bool result = api.Session.PermissionSystem != null; +// bool result = api.Session.PermissionSystem != null; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectInterface, result); - } +// ClassicAssert.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) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", true)] +// [TestCase("ManagerA1", true)] +// [TestCase("MakerA1", true)] +// [TestCase("GuestA1", true)] +// [Order(2)] +// public async Task InfoInterface(string username, bool expectInterface) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - PermissionSystem.InfoInterface_Proxy infoInterface = (PermissionSystem.InfoInterface_Proxy)api.Session.PermissionSystem.Info; +// PermissionSystem.InfoInterface_Proxy infoInterface = (PermissionSystem.InfoInterface_Proxy)api.Session.PermissionSystem.Info; - bool result = !infoInterface.IsNull; +// bool result = !infoInterface.IsNull; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectInterface, result); - } +// ClassicAssert.AreEqual(expectInterface, result); +// } - [TestCase("Admin1", 13)] - [TestCase("ManagerA1", 13)] - [TestCase("MakerA1", 13)] - [TestCase("GuestA1", 13)] - [Order(3), Ignore("Not implemented")] - public async Task ListRoles(string username, int expectRolesCount) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", 13)] +// [TestCase("ManagerA1", 13)] +// [TestCase("MakerA1", 13)] +// [TestCase("GuestA1", 13)] +// [Order(3), Ignore("Not implemented")] +// public async Task ListRoles(string username, int expectRolesCount) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - IReadOnlyList roles_list = await api.Session.PermissionSystem.Info.GetRoleList().ConfigureAwait(false); +// IReadOnlyList roles_list = await api.Session.PermissionSystem.Info.GetRoleList().ConfigureAwait(false); - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectRolesCount, roles_list.Count); - } - } -} +// ClassicAssert.AreEqual(expectRolesCount, roles_list.Count); +// } +// } +// } diff --git a/FabAccessAPI_Test/API_TestEnv/UserSystem_Test.cs b/FabAccessAPI_Test/API_TestEnv/UserSystem_Test.cs index 99536e5..7bc0f52 100644 --- a/FabAccessAPI_Test/API_TestEnv/UserSystem_Test.cs +++ b/FabAccessAPI_Test/API_TestEnv/UserSystem_Test.cs @@ -1,143 +1,143 @@ -using Capnp.Rpc; -using FabAccessAPI; -using FabAccessAPI.Schema; -using NUnit.Framework; -using NUnit.Framework.Legacy; -using System; -using System.Collections.Generic; -using System.Threading.Tasks; +// using Capnp.Rpc; +// using FabAccessAPI; +// using FabAccessAPI.Schema; +// using NUnit.Framework; +// using NUnit.Framework.Legacy; +// using System; +// using System.Collections.Generic; +// using System.Threading.Tasks; -namespace FabAccessAPI_Test.API_TestEnv -{ - [TestFixture] - public class UserSystem_Test - { - #region SetUp - [SetUp] - public async Task SetUp() - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData("Admin1"); - await api.Connect(connectionData); +// namespace FabAccessAPI_Test.API_TestEnv +// { +// [TestFixture] +// public class UserSystem_Test +// { +// #region SetUp +// [SetUp] +// public async Task SetUp() +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData("Admin1"); +// await api.Connect(connectionData); - IReadOnlyList user_list = await api.Session.UserSystem.Manage.GetUserList().ConfigureAwait(false); +// IReadOnlyList user_list = await api.Session.UserSystem.Manage.GetUserList().ConfigureAwait(false); - List tasks = new List(); - foreach (User u in user_list) - { - if(u.Username.StartsWith("New")) - { - tasks.Add(api.Session.UserSystem.Manage.RemoveUser(u)); - } - } +// List tasks = new List(); +// foreach (User u in user_list) +// { +// if(u.Username.StartsWith("New")) +// { +// tasks.Add(api.Session.UserSystem.Manage.RemoveUser(u)); +// } +// } - await Task.WhenAll(tasks); - } - #endregion +// await Task.WhenAll(tasks); +// } +// #endregion - [TestCase("Admin1", "NewUserA1")] - [Order(1)] - public async Task AddUser_DEPRECATED(string username, string username2) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "NewUserA1")] +// [Order(1)] +// public async Task AddUser_DEPRECATED(string username, string username2) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - bool methodNotImplemented = false; +// bool methodNotImplemented = false; - try - { - User user = (await api.Session.UserSystem.Manage.AddUser(username2, TestEnv.PASSWORD).ConfigureAwait(false)); - } - catch (RpcException exception) when (string.Equals(exception.Message, "method not implemented", StringComparison.Ordinal)) - { - methodNotImplemented = true; - } +// try +// { +// User user = (await api.Session.UserSystem.Manage.AddUser(username2, TestEnv.PASSWORD).ConfigureAwait(false)); +// } +// catch (RpcException exception) when (string.Equals(exception.Message, "method not implemented", StringComparison.Ordinal)) +// { +// methodNotImplemented = true; +// } - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.IsTrue(methodNotImplemented); - } +// ClassicAssert.IsTrue(methodNotImplemented); +// } - [TestCase("Admin1", "NewUserA1")] - [TestCase("Admin1", "NewUserB1")] - [TestCase("Admin1", "NewUserC1")] - [Order(1)] - public async Task AddUser(string username, string username2) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "NewUserA1")] +// [TestCase("Admin1", "NewUserB1")] +// [TestCase("Admin1", "NewUserC1")] +// [Order(1)] +// public async Task AddUser(string username, string username2) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - User user = (await api.Session.UserSystem.Manage.AddUserFallible(username2, TestEnv.PASSWORD).ConfigureAwait(false)).Successful; +// User user = (await api.Session.UserSystem.Manage.AddUserFallible(username2, TestEnv.PASSWORD).ConfigureAwait(false)).Successful; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.IsNotNull(user); - } +// ClassicAssert.IsNotNull(user); +// } - [TestCase("Admin1", "Admin1")] - [TestCase("Admin1", "ManagerA1")] - [TestCase("Admin1", "MakerA1")] - [TestCase("Admin1", "GuestA1")] - [Order(2)] - public async Task AddUser_AllreadyExists(string username, string username2) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "Admin1")] +// [TestCase("Admin1", "ManagerA1")] +// [TestCase("Admin1", "MakerA1")] +// [TestCase("Admin1", "GuestA1")] +// [Order(2)] +// public async Task AddUser_AllreadyExists(string username, string username2) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - UserSystem.ManageInterface.AddUserError.AddUserErrorEnum error = (await api.Session.UserSystem.Manage.AddUserFallible(username2, TestEnv.PASSWORD).ConfigureAwait(false)).Failed.Error; - await api.Disconnect(); +// UserSystem.ManageInterface.AddUserError.AddUserErrorEnum error = (await api.Session.UserSystem.Manage.AddUserFallible(username2, TestEnv.PASSWORD).ConfigureAwait(false)).Failed.Error; +// await api.Disconnect(); - ClassicAssert.AreEqual(UserSystem.ManageInterface.AddUserError.AddUserErrorEnum.alreadyExists, error); - } +// ClassicAssert.AreEqual(UserSystem.ManageInterface.AddUserError.AddUserErrorEnum.alreadyExists, error); +// } - [TestCase("Admin1", "")] - [Order(2)] - public async Task AddUser_InvalidUsername(string username, string username2) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "")] +// [Order(2)] +// public async Task AddUser_InvalidUsername(string username, string username2) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - UserSystem.ManageInterface.AddUserError.AddUserErrorEnum error = (await api.Session.UserSystem.Manage.AddUserFallible(username2, TestEnv.PASSWORD).ConfigureAwait(false)).Failed.Error; - await api.Disconnect(); +// UserSystem.ManageInterface.AddUserError.AddUserErrorEnum error = (await api.Session.UserSystem.Manage.AddUserFallible(username2, TestEnv.PASSWORD).ConfigureAwait(false)).Failed.Error; +// await api.Disconnect(); - ClassicAssert.AreEqual(UserSystem.ManageInterface.AddUserError.AddUserErrorEnum.usernameInvalid, error); - } +// ClassicAssert.AreEqual(UserSystem.ManageInterface.AddUserError.AddUserErrorEnum.usernameInvalid, error); +// } - [TestCase("Admin1", "NewUserC1", "")] - [Order(2)] - public async Task AddUser_InvalidPassword(string username, string username2, string password) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "NewUserC1", "")] +// [Order(2)] +// public async Task AddUser_InvalidPassword(string username, string username2, string password) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - UserSystem.ManageInterface.AddUserError.AddUserErrorEnum error = (await api.Session.UserSystem.Manage.AddUserFallible(username2, password).ConfigureAwait(false)).Failed.Error; - await api.Disconnect(); +// UserSystem.ManageInterface.AddUserError.AddUserErrorEnum error = (await api.Session.UserSystem.Manage.AddUserFallible(username2, password).ConfigureAwait(false)).Failed.Error; +// await api.Disconnect(); - ClassicAssert.AreEqual(UserSystem.ManageInterface.AddUserError.AddUserErrorEnum.passwordInvalid, error); - } +// ClassicAssert.AreEqual(UserSystem.ManageInterface.AddUserError.AddUserErrorEnum.passwordInvalid, error); +// } - [TestCase("Admin1", "NewUserA1")] - [TestCase("Admin1", "NewUserB1")] - [TestCase("Admin1", "NewUserC1")] - [Order(3)] - public async Task AddRemoveUser(string username, string username2) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "NewUserA1")] +// [TestCase("Admin1", "NewUserB1")] +// [TestCase("Admin1", "NewUserC1")] +// [Order(3)] +// public async Task AddRemoveUser(string username, string username2) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - User user = (await api.Session.UserSystem.Manage.AddUserFallible(username2, TestEnv.PASSWORD).ConfigureAwait(false)).Successful; +// User user = (await api.Session.UserSystem.Manage.AddUserFallible(username2, TestEnv.PASSWORD).ConfigureAwait(false)).Successful; - await api.Session.UserSystem.Manage.RemoveUser(user); +// await api.Session.UserSystem.Manage.RemoveUser(user); - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.IsNotNull(user); - } - } -} +// ClassicAssert.IsNotNull(user); +// } +// } +// } diff --git a/FabAccessAPI_Test/API_TestEnv/UserSystem_Test_Stateless.cs b/FabAccessAPI_Test/API_TestEnv/UserSystem_Test_Stateless.cs index 2f058b5..ab0c45b 100644 --- a/FabAccessAPI_Test/API_TestEnv/UserSystem_Test_Stateless.cs +++ b/FabAccessAPI_Test/API_TestEnv/UserSystem_Test_Stateless.cs @@ -1,123 +1,123 @@ -using FabAccessAPI; -using FabAccessAPI.Schema; -using NUnit.Framework; -using NUnit.Framework.Legacy; -using System.Threading.Tasks; +// using FabAccessAPI; +// using FabAccessAPI.Schema; +// using NUnit.Framework; +// using NUnit.Framework.Legacy; +// using System.Threading.Tasks; -namespace FabAccessAPI_Test.API_TestEnv -{ - [TestFixture, Parallelizable(ParallelScope.Children)] - [Order(1)] - public class UserSystem_Test_Stateless - { - [TestCase("Admin1", true)] - [TestCase("ManagerA1", true)] - [TestCase("MakerA1", true)] - [TestCase("GuestA1", true)] - [Order(2)] - public async Task InfoInterface(string username, bool expectInterface) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// namespace FabAccessAPI_Test.API_TestEnv +// { +// [TestFixture, Parallelizable(ParallelScope.Children)] +// [Order(1)] +// public class UserSystem_Test_Stateless +// { +// [TestCase("Admin1", true)] +// [TestCase("ManagerA1", true)] +// [TestCase("MakerA1", true)] +// [TestCase("GuestA1", true)] +// [Order(2)] +// public async Task InfoInterface(string username, bool expectInterface) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - UserSystem.InfoInterface_Proxy infoInterface = (UserSystem.InfoInterface_Proxy)api.Session.UserSystem.Info; +// UserSystem.InfoInterface_Proxy infoInterface = (UserSystem.InfoInterface_Proxy)api.Session.UserSystem.Info; - bool result = !infoInterface.IsNull; +// bool result = !infoInterface.IsNull; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectInterface, result); - } +// ClassicAssert.AreEqual(expectInterface, result); +// } - [TestCase("Admin1", true)] - [TestCase("ManagerA1", true)] - [TestCase("MakerA1", false)] - [TestCase("GuestA1", false)] - [Order(3)] - public async Task ManageInterface(string username, bool expectInterface) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", true)] +// [TestCase("ManagerA1", true)] +// [TestCase("MakerA1", false)] +// [TestCase("GuestA1", false)] +// [Order(3)] +// public async Task ManageInterface(string username, bool expectInterface) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - UserSystem.ManageInterface_Proxy manageInterface = (UserSystem.ManageInterface_Proxy)api.Session.UserSystem.Manage; +// UserSystem.ManageInterface_Proxy manageInterface = (UserSystem.ManageInterface_Proxy)api.Session.UserSystem.Manage; - bool result = !manageInterface.IsNull; +// bool result = !manageInterface.IsNull; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectInterface, result); - } +// ClassicAssert.AreEqual(expectInterface, result); +// } - [TestCase("Admin1", true)] - [TestCase("ManagerA1", true)] - [TestCase("MakerA1", false)] - [TestCase("GuestA1", false)] - [Order(3)] - public async Task SearchInterface(string username, bool expectInterface) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", true)] +// [TestCase("ManagerA1", true)] +// [TestCase("MakerA1", false)] +// [TestCase("GuestA1", false)] +// [Order(3)] +// public async Task SearchInterface(string username, bool expectInterface) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - UserSystem.SearchInterface_Proxy searchInterface = (UserSystem.SearchInterface_Proxy)api.Session.UserSystem.Search; +// UserSystem.SearchInterface_Proxy searchInterface = (UserSystem.SearchInterface_Proxy)api.Session.UserSystem.Search; - bool result = !searchInterface.IsNull; +// bool result = !searchInterface.IsNull; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectInterface, result); - } +// ClassicAssert.AreEqual(expectInterface, result); +// } - [TestCase("Admin1")] - [TestCase("ManagerA1")] - [TestCase("MakerA1")] - [TestCase("GuestA1")] - [Order(4)] - public async Task GetUserSelf(string username) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1")] +// [TestCase("ManagerA1")] +// [TestCase("MakerA1")] +// [TestCase("GuestA1")] +// [Order(4)] +// public async Task GetUserSelf(string username) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - User user = await api.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); +// User user = await api.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.IsNotNull(user); - } +// ClassicAssert.IsNotNull(user); +// } - [TestCase("Admin1", "Admin1")] - [TestCase("Admin1", "MakerA1")] - [TestCase("Admin1", "GuestA1")] - [Order(4)] - public async Task GetUserByUsername(string username, string username2) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "Admin1")] +// [TestCase("Admin1", "MakerA1")] +// [TestCase("Admin1", "GuestA1")] +// [Order(4)] +// public async Task GetUserByUsername(string username, string username2) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - User user = (await api.Session.UserSystem.Search.GetUserByName(username2).ConfigureAwait(false)).Just; +// User user = (await api.Session.UserSystem.Search.GetUserByName(username2).ConfigureAwait(false)).Just; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.IsNotNull(user); - } +// ClassicAssert.IsNotNull(user); +// } - [TestCase("Admin1", "UnknownUser")] - [Order(5)] - public async Task GetUserByUsername_NotExist(string username, string username2) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "UnknownUser")] +// [Order(5)] +// public async Task GetUserByUsername_NotExist(string username, string username2) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - User user = (await api.Session.UserSystem.Search.GetUserByName(username2).ConfigureAwait(false)).Just; +// User user = (await api.Session.UserSystem.Search.GetUserByName(username2).ConfigureAwait(false)).Just; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.IsNull(user); - } - } -} +// ClassicAssert.IsNull(user); +// } +// } +// } diff --git a/FabAccessAPI_Test/API_TestEnv/User_Test.cs b/FabAccessAPI_Test/API_TestEnv/User_Test.cs index 8633d7c..8aacc65 100644 --- a/FabAccessAPI_Test/API_TestEnv/User_Test.cs +++ b/FabAccessAPI_Test/API_TestEnv/User_Test.cs @@ -1,69 +1,69 @@ -using FabAccessAPI; -using FabAccessAPI.Schema; -using NUnit.Framework; -using NUnit.Framework.Legacy; -using System.Collections.Generic; -using System.Threading.Tasks; +// using FabAccessAPI; +// using FabAccessAPI.Schema; +// using NUnit.Framework; +// using NUnit.Framework.Legacy; +// using System.Collections.Generic; +// using System.Threading.Tasks; -namespace FabAccessAPI_Test.API_TestEnv -{ - [TestFixture] - public class User_Test - { - #region SetUp - [SetUp] - public async Task SetUp() - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData("Admin1"); - await api.Connect(connectionData); +// namespace FabAccessAPI_Test.API_TestEnv +// { +// [TestFixture] +// public class User_Test +// { +// #region SetUp +// [SetUp] +// public async Task SetUp() +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData("Admin1"); +// await api.Connect(connectionData); - IReadOnlyList user_list = await api.Session.UserSystem.Manage.GetUserList().ConfigureAwait(false); +// IReadOnlyList user_list = await api.Session.UserSystem.Manage.GetUserList().ConfigureAwait(false); - List tasks = new List(); - foreach (User u in user_list) - { - if (u.Username.StartsWith("New")) - { - tasks.Add(api.Session.UserSystem.Manage.RemoveUser(u)); - } - } +// List tasks = new List(); +// foreach (User u in user_list) +// { +// if (u.Username.StartsWith("New")) +// { +// tasks.Add(api.Session.UserSystem.Manage.RemoveUser(u)); +// } +// } - await Task.WhenAll(tasks); - } - #endregion +// await Task.WhenAll(tasks); +// } +// #endregion - [TestCase("Admin1", "NewMakerA1", "UseA", "ReadA", "DiscloseA")] - [Order(1)] - [Ignore("Deprecated")] - public async Task AddRoles(string username, string username2, params string[] roles) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "NewMakerA1", "UseA", "ReadA", "DiscloseA")] +// [Order(1)] +// [Ignore("Deprecated")] +// public async Task AddRoles(string username, string username2, params string[] roles) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - await api.Session.UserSystem.Manage.AddUser(username2, TestEnv.PASSWORD); +// await api.Session.UserSystem.Manage.AddUser(username2, TestEnv.PASSWORD); - User user = (await api.Session.UserSystem.Search.GetUserByName(username2).ConfigureAwait(false)).Just; +// User user = (await api.Session.UserSystem.Search.GetUserByName(username2).ConfigureAwait(false)).Just; - foreach(string s in roles) - { - await user.Admin.AddRole(new Role() { Name = s }).ConfigureAwait(false); - } +// foreach(string s in roles) +// { +// await user.Admin.AddRole(new Role() { Name = s }).ConfigureAwait(false); +// } - user = (await api.Session.UserSystem.Search.GetUserByName(username2).ConfigureAwait(false)).Just; - List user_roles = new List(await user.Info.ListRoles().ConfigureAwait(false)); +// user = (await api.Session.UserSystem.Search.GetUserByName(username2).ConfigureAwait(false)).Just; +// List user_roles = new List(await user.Info.ListRoles().ConfigureAwait(false)); - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.Multiple(() => - { - ClassicAssert.AreEqual(3, user_roles.Count); - foreach (string s in roles) - { - ClassicAssert.IsTrue(user_roles.Exists(x => x.Name == s)); - } - }); - } - } -} +// ClassicAssert.Multiple(() => +// { +// ClassicAssert.AreEqual(3, user_roles.Count); +// foreach (string s in roles) +// { +// ClassicAssert.IsTrue(user_roles.Exists(x => x.Name == s)); +// } +// }); +// } +// } +// } diff --git a/FabAccessAPI_Test/API_TestEnv/User_Test_Stateless.cs b/FabAccessAPI_Test/API_TestEnv/User_Test_Stateless.cs index 8cb6c91..f291acb 100644 --- a/FabAccessAPI_Test/API_TestEnv/User_Test_Stateless.cs +++ b/FabAccessAPI_Test/API_TestEnv/User_Test_Stateless.cs @@ -1,127 +1,127 @@ -using FabAccessAPI; -using FabAccessAPI.Schema; -using NUnit.Framework; -using NUnit.Framework.Legacy; -using System.Collections.Generic; -using System.Threading.Tasks; +// using FabAccessAPI; +// using FabAccessAPI.Schema; +// using NUnit.Framework; +// using NUnit.Framework.Legacy; +// using System.Collections.Generic; +// using System.Threading.Tasks; -namespace FabAccessAPI_Test.API_TestEnv -{ - [TestFixture, Parallelizable(ParallelScope.Children)] - [Order(2)] - 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) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// namespace FabAccessAPI_Test.API_TestEnv +// { +// [TestFixture, Parallelizable(ParallelScope.Children)] +// [Order(2)] +// 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) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - User user = await api.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); +// User user = await api.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); - bool result = !((User.InfoInterface_Proxy)user.Info).IsNull; +// bool result = !((User.InfoInterface_Proxy)user.Info).IsNull; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectInterface, result); - } +// ClassicAssert.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) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", true)] +// [TestCase("ManagerA1", true)] +// [TestCase("MakerA1", true)] +// [TestCase("GuestA1", true)] +// [Order(2)] +// public async Task ManageInterface(string username, bool expectInterface) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - User user = await api.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); +// User user = await api.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); - bool result = !((User.ManageInterface_Proxy)user.Manage).IsNull; +// bool result = !((User.ManageInterface_Proxy)user.Manage).IsNull; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectInterface, result); - } +// ClassicAssert.AreEqual(expectInterface, result); +// } - [TestCase("Admin1", true)] - [TestCase("ManagerA1", true)] - [TestCase("MakerA1", false)] - [TestCase("GuestA1", false)] - [Order(3)] - public async Task AdminInterface(string username, bool expectInterface) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", true)] +// [TestCase("ManagerA1", true)] +// [TestCase("MakerA1", false)] +// [TestCase("GuestA1", false)] +// [Order(3)] +// public async Task AdminInterface(string username, bool expectInterface) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - User user = await api.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); +// User user = await api.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); - bool result = !((User.AdminInterface_Proxy)user.Admin).IsNull; +// bool result = !((User.AdminInterface_Proxy)user.Admin).IsNull; - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.AreEqual(expectInterface, result); - } +// ClassicAssert.AreEqual(expectInterface, result); +// } - [TestCase("Admin1")] - [TestCase("ManagerA1")] - [TestCase("MakerA1")] - [TestCase("GuestA1")] - [Order(4)] - public async Task ReadUserData(string username) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1")] +// [TestCase("ManagerA1")] +// [TestCase("MakerA1")] +// [TestCase("GuestA1")] +// [Order(4)] +// public async Task ReadUserData(string username) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - User user = await api.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); +// User user = await api.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); - await api.Disconnect(); +// await api.Disconnect(); - ClassicAssert.Multiple(() => - { - ClassicAssert.AreEqual(username, user.Username); - }); - } +// ClassicAssert.Multiple(() => +// { +// ClassicAssert.AreEqual(username, user.Username); +// }); +// } - [TestCase("Admin1", "Admin", "ManageUsers")] - [TestCase("ManagerA1", "ManageA", "UseA", "ReadA", "DiscloseA", "ManageUsers")] - [TestCase("MakerA1", "UseA", "ReadA", "DiscloseA")] - [TestCase("GuestA1", "ReadA", "DiscloseA")] - [Order(5)] - public async Task ListUserRoles(string username, params string[] expect_roles) - { - API api = new API(); - ConnectionData connectionData = TestEnv.CreateConnetionData(username); - await api.Connect(connectionData); +// [TestCase("Admin1", "Admin", "ManageUsers")] +// [TestCase("ManagerA1", "ManageA", "UseA", "ReadA", "DiscloseA", "ManageUsers")] +// [TestCase("MakerA1", "UseA", "ReadA", "DiscloseA")] +// [TestCase("GuestA1", "ReadA", "DiscloseA")] +// [Order(5)] +// public async Task ListUserRoles(string username, params string[] expect_roles) +// { +// API api = new API(); +// ConnectionData connectionData = TestEnv.CreateConnetionData(username); +// await api.Connect(connectionData); - User user = await api.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false); +// User user = await api.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); +// List roles_user = new List(await user.Info.ListRoles().ConfigureAwait(false)); +// List expect_roles_list = new List(expect_roles); - await api.Disconnect(); +// await api.Disconnect(); - if (roles_user.Count != expect_roles_list.Count) - { - ClassicAssert.Fail("Roles Count is different"); - } +// if (roles_user.Count != expect_roles_list.Count) +// { +// ClassicAssert.Fail("Roles Count is different"); +// } - foreach (Role role_user in roles_user) - { - if (!expect_roles_list.Exists(x => x == role_user.Name)) - { - ClassicAssert.Fail("Roles are different"); - } - } - } - } -} +// foreach (Role role_user in roles_user) +// { +// if (!expect_roles_list.Exists(x => x == role_user.Name)) +// { +// ClassicAssert.Fail("Roles are different"); +// } +// } +// } +// } +// } diff --git a/FabAccessAPI_Test/TestEnv.cs b/FabAccessAPI_Test/TestEnv.cs index 356e208..9090409 100644 --- a/FabAccessAPI_Test/TestEnv.cs +++ b/FabAccessAPI_Test/TestEnv.cs @@ -12,7 +12,7 @@ namespace FabAccessAPI_Test public const int TESTSERVER_PORT = 59661; public const string PASSWORD = "secret"; - [TestCase("Testuser")] + [TestCase("UserA")] public static ConnectionData CreateConnetionData(string username) { ConnectionData connectionData = new ConnectionData() diff --git a/usecase.md b/usecase.md new file mode 100644 index 0000000..58c2204 --- /dev/null +++ b/usecase.md @@ -0,0 +1,267 @@ +Use Cases +=== + +# Requierements ++ User0 - User ohne Account ++ UserA - generischer User ++ UserB - generischer User mit gleichen Rollen wir UserA ++ UserC - generischer User ohne Rollen ++ MaschineA - frei zugängliche Resource mit festem Ort und Stromanschluss ++ TerminalA - NFC Reader bei MaschineA, welche nur MaschinA nutzen kann ++ RolleB - Rolle mit Berechtigungen MaschineB zu nutzen ++ MaschineB - beschränkt zugängliche Resource mit festem Ort und Stromanschluss ++ TerminalB - NFC Reader bei MaschineA, welche nur MaschineB mit PIN nutzen kann ++ TerminalB - NFC Reader bei MaschineA, welche nur MaschinB mit PIN nutzen kann ++ MaschineC - frei zugängliche Resource mit festem Ort und Stromanschluss, benötigt MaschineD zum funktionieren ++ MaschineD - Maschine mit welche von MaschineC gebraucht wird ++ MaschineE - Maschine, welche von meheren Nutzer gleichzeitig verwendet werden kann ++ ManagerA - User mit Berechtigung zum Verwalten von Usern und Vergeben von Berechtigungen ++ UserB ++ CardA - FabFireCard von UserA ++ CardB - FabFireCard von UserB ++ Borepin - Client zum Interagieren von BFFH über FabAccess API ++ BFFH - Server mit FabAccess API + +# Assumptions ++ die Pin für alle FabFireCards eine User ist die gleiche ++ Terminals wissen für welche Maschine sie eine PIN benötigen ++ Terminals sind immer an einen Satz von Maschinen gebunden und könnten nur diese Ausleihen ++ Maschinen fallen in einen definierten State zurück, wenn der Claim disowned wird oder disown failed, wenn sich einen Maschine in einem bestimmten State befindet ++ User können entweder einen Claim oder einen Interset an der selben Resource haben + +# Tests +## Serverdaten +User0 kann von BFFH im Bootstrape sich Informationen zu dem Serverrelease und namen holen und über die InstanceURL, sowie den Spacenamen. + +## Accounterzeugung +*User0 geht zu ManagerA und bittet um einen Account* + +ManagerA öffnet Borepin, wird automatisch angemeldet ++ öffnet die Nutzerverwaltung ++ beginnt mit dem Anlegen eines neuen Nutzers ++ trägt den Nutzernamen ein ++ fügt zusätzliche Informationen hinzu ++ gerneriert ein Initialpasswort für User0 ++ sagt User0 das Passwort / druckt User0 das Passwort aus / erstellt einen QR-Code mit Anmeldedaten / emuliert einen NTAG mit Anmeldedaten + +User0 installiert Borepin, öffnet Borepin und ++ trägt die Serveradresse ein ++ verbindet sich mit dem Server ++ logt sich mit Username und Passwort ein + +oder ++ scannt die Anmeldedaten per QR-Code / scannt die Anmeldedaten per NFC ++ verbindet sich mit dem Server und logt sich direkt ein + +-> BFFH zwingt User0 ein neues Passwort zu setzen +User0 setzt ein neues Passwort +Borepin holt ein Token für die zukünftige Anmeldung des Gerätes + +*User0 kann nun Resourcen ausleihen* + +## Rollenvergabe +*UserA möchte MaschineB verwenden können* + +UserA geht zu ManagerA und erhält eine Einweisung für MaschineB +ManagerA öffnet Borepin, wird automatisch angemeldet und ++ öffnet die Nutzerverwaltung ++ wählt UserA aus ++ fügt UserA RolleB zu + +*UserA kann nun Borepin öffnen, wird automatisch angemeldet und kann MaschineB nutzten* + +## Claim +*UserA steht vor MaschineA und möchte diese verwenden* + +UserA öffnet Borepin, wird automatisch angemeldet und ++ wählt MaschineA in einer Liste aus / scannt den QR-Code von MaschineA / scannt den NTAG von MaschineA ++ leiht MaschineA aus ++ schaltet den Strom von MaschineA frei ++ verwendet MaschineA ++ gibt MaschineA zurück, Strom wird gesperrt vom BFFH + +*UserA hat MaschineA verwendet* + +## Transfer +*UserA möchte UserB die MaschineB übergeben* + +UserA hatte MaschineB ausgeliehen, öffnet Borepin, wird automatisch angemeldet und ++ wählt MaschineA in einer Liste aus / scannt den QR-Code von MaschineA / scannt den NTAG von MaschineA ++ generiet ein Transfer QR-Code / emuliert eine Transfer NTAG + +UserB öffnet Borepin, wird automatisch angemeldet und ++ scannt Transfer QR-Code / scannt Transfer NTAG + +*UserB kann nun MaschineB verwenden, ohne das der Zustand der Maschine sich verändet hat* + +## Lend/Instruct +*UserA möchte UserC an MaschineB ausbilden* + +UserA hatte MaschineB ausgeliehen, öffnet Borepin, wird automatisch angemeldet und ++ wählt MaschineA in einer Liste aus / scannt den QR-Code von MaschineA / scannt den NTAG von MaschineA ++ generiet ein Lend QR-Code / emuliert eine Lend NTAG + +UserC öffnet Borepin, wird automatisch angemeldet und ++ scannt Lend QR-Code / scannt Lend NTAG ++ verwendet MaschineB ++ gibt MaschineB zurück + +UserA erhält MaschineB zurück, prüft MaschineB, gibt MaschineB zurück + +*UserC hat MaschineB verwendet, unter Verantwortung von UserA* + +## FabFireCard Erzeugung +*UserA geht zu ManagerA und möchte ein FabFireCard erhalten* + +ManagerA öffnet Borepin, wird automatisch angemeldet und ++ öffnet die Nutzerverwaltung ++ wählt UserA aus ++ hält eine leere DESFire Karte auf den NFC Scanner ++ legt eine FabFireCard für UserA an und beschreibt diese ++ gibt UserA die FabFireCard - Card A + +UserA öffnet Borepin, wird automatisch angemeldet und ++ geht auf seinem Profil ++ setzt eine Pin für die FabFireCard + +*UserA hat eine FabFireCard erhalten und eine zusätzliche Pin festgelegt* + +## Passwortänderungen +*UserA möchte sein Passwort ändern* + +UserA öffnet Borepin, wird automatisch angemeldet und ++ geht auf seinem Profil ++ beginnt mit dem Ändern des Passwort ++ gibt sein altes Passwort ein ++ gibt ein neues Passwort ein + +*UserA hat sein Passwort geändert* + +## FabFireCard Pin ändern +*UserA möchte seine PIN zur FabFireCard ändern* + +UserA öffnet Borepin, wird automatisch angemeldet und ++ geht auf seinem Profil ++ beginnt mit dem Ändern der Pin ++ gibt sein Passwort ein ++ gibt eine neue PIN ein + +*UserA hat seine PIN geändert* + +## Passwort vergessen +*UserA geht zu ManagerA und bittet darum ein neues Passwort zu erhalten* + +ManagerA öffnet Borepin, wird automatisch angemeldet und ++ öffnet die Nutzerverwaltung ++ wählt UserA aus ++ sagt User0 das Passwort / druckt User0 das Passwort aus / erstellt einen QR-Code mit Anmeldedaten / emuliert einen NTAG mit Anmeldedaten + +__Gleiches Verhalten wie bei Accounterzeugung__ +*UserA hat sein Passwort zurückgesetzt* + +## Terminalnutzung +*UserA möchte MaschineA mit CardA ausleihen* + +UserA steht vor TerminalA und ++ hält CardA auf den NFC Reader + +TerminalA meldet sich bei BFFH und ++ leiht MaschineA für UserA aus ++ schaltet den Strom frei + +UserA steht vor TerminalA und ++ gibt auf TerminalA ein, MaschineA zurückgeben + +oder UserA öffnet Borepin, wird automatisch angemeldet und ++ gibt MaschinA zurück + +*UserA hat MaschineA mit CardA ausgeliehen und verwendet* + +## Terminalnutzung mit PIN +*UserA möchte MaschineB mit CardA ausleihen* + +UserA steht vor TerminalB und ++ hält CardA auf den NFC Reader +-> TerminalB fordert eine PIN ++ tippt PIN ein + +TerminalB meldet sich bei BFFH und ++ leiht MaschineB für UserA aus ++ schaltet den Strom frei +__Gleiches Verhalten wie bei Accounterzeugung__ + +*UserA hat MaschineA mit CardA ausgeliehen und verwendet* + +## Reservieren +*UserA möchte für morgen MaschineA reservieren* + +UserA öffnet Borepin, wird automatisch angemeldet und ++ wählt MaschineA aus Liste aus ++ geht auf reservieren und trägt ein Zeitraum ein + +-> UserA erhält zum Begin der Reservierung automatisch den Claim für die MaschineA, wenn dieser verfügbar ist + +oder + +-> UserA erhält zum Begin der Reservierung eine Benachrichtigung, dass die Maschine gerade verwendet wird + +UserA geht zu ManagerA und bittet ihn die Maschine freizugeben + +ManagerA öffnet Borepin, wird automatisch angemeldet und ++ wählt MaschineA aus Liste aus ++ entfernt den Claim + +-> UserA erhält automatisch den Claim für MaschineA +*UserA kann MaschineA im Reservierungszeitraum nutzen* + +## Queuing +*UserB verwendet gerade MaschineA und UserA möchte als nächster an MaschineA* +UserA öffnet Borepin, wird automatisch angemeldet und ++ wählt MaschineA aus Liste aus ++ geht auf queuing + +UserB gibt MaschineA zurück +-> UserA erhält automatisch ein Claim auf MaschineA +*UserA kann direkt nach UserB MaschineA nutzen* + +## Intereset/Reservierung/Queuing aufhebn +*UserA hat einen Interest auf MaschineA* +UserA öffnet Borepin, wird automatisch angemeldet und ++ wählt MaschineA aus Liste aus ++ beendet Interest + +*UserA hat jetzt keinen Interest auf MaschineA* + +## Benachrichten +*UserA möchte wissen wann die MaschineA frei ist* +UserA öffnet Borepin, wird automatisch angemeldet und ++ wählt MaschineA aus Liste aus ++ aktiviert Benachrichtigungen für MaschineA (mit Optionen, um welchen State es geht) + +-> BFFH benachrichtigt UserA, dass die MaschineA frei ist +-> Noftiy wird wieder gelöscht + +oder + +-> BFFH benachrichtigt UserA, dass die MaschineA frei ist +UserA öffnet Borepin, wird automatisch angemeldet und ++ wählt MaschineA aus Liste aus ++ deaktiviert Benachrichtigungen für MaschineA + +*UserA wurde über Änderungen von MaschineA benachrichtigt* + +## Abhängige Maschinen +*UserA möchte MaschineC ausleihen* + +serA öffnet Borepin, wird automatisch angemeldet und ++ wählt MaschineA aus Liste aus ++ claimed MaschineA +-> MaschineD wird von BFFH geclaimed + +## Kaputte Maschine melden + +## Multi Claim + +## Claim überschreiben + +## Register \ No newline at end of file