Updated API

This commit is contained in:
TheJoKlLa 2022-04-24 21:24:09 +02:00
parent f70c3596db
commit 05de8cc7c9
6 changed files with 116 additions and 174 deletions

View File

@ -27,29 +27,37 @@ namespace Borepin.Model
Name = _Machine.Name; Name = _Machine.Name;
Description = _Machine.Description; Description = _Machine.Description;
State = _Machine.State; State = _Machine.State;
Manager = new UserVisualize(_Machine.Manager);
Manager.LoadData();
MachineInfoExtended machineInfoExtended = await _Machine.Manage.GetMachineInfoExtended().ConfigureAwait(false); if(_Machine.Manager.Just != null)
if(machineInfoExtended != null)
{ {
if (machineInfoExtended.CurrentUser == null || machineInfoExtended.CurrentUser.Username == null) Manager = new UserVisualize(_Machine.Manager.Just);
Manager.LoadData();
}
else
{
Manager = null;
}
if(_Machine.Manage != null)
{
MachineInfoExtended machineInfoExtended = await _Machine.Manage.GetMachineInfoExtended().ConfigureAwait(false);
if (machineInfoExtended.CurrentUser.Just == null)
{ {
CurrentUser = null; CurrentUser = null;
} }
else else
{ {
CurrentUser = new UserVisualize(machineInfoExtended.CurrentUser); CurrentUser = new UserVisualize(machineInfoExtended.CurrentUser.Just);
CurrentUser.LoadData(); CurrentUser.LoadData();
} }
if (machineInfoExtended.LastUser == null || machineInfoExtended.LastUser.Username == null) if (machineInfoExtended.LastUser.Just == null)
{ {
LastUser = null; LastUser = null;
} }
else else
{ {
LastUser = new UserVisualize(machineInfoExtended.LastUser); LastUser = new UserVisualize(machineInfoExtended.LastUser.Just);
LastUser.LoadData(); LastUser.LoadData();
} }
} }

View File

@ -7,7 +7,6 @@ using Prism.Navigation;
using Borepin.Service.BFFH; using Borepin.Service.BFFH;
using Borepin.Base; using Borepin.Base;
using FabAccessAPI.Schema; using FabAccessAPI.Schema;
using Prism.Services.Dialogs;
using Prism.Services; using Prism.Services;
using Prism.AppModel; using Prism.AppModel;
using static FabAccessAPI.Schema.Machine; using static FabAccessAPI.Schema.Machine;
@ -20,16 +19,12 @@ namespace Borepin.PageModel
public class MachineListPageModel : ConnectionModelBase, IPageLifecycleAware public class MachineListPageModel : ConnectionModelBase, IPageLifecycleAware
{ {
#region Private Fields #region Private Fields
private readonly IDialogService _DialogService;
private Machine _NextMachine; private Machine _NextMachine;
#endregion #endregion
#region Constructors #region Constructors
public MachineListPageModel(INavigationService navigationService, IPageDialogService pageDialogService, IBFFHService bFFHService, IDialogService dialogService) : base(navigationService, pageDialogService, bFFHService) public MachineListPageModel(INavigationService navigationService, IPageDialogService pageDialogService, IBFFHService bFFHService) : base(navigationService, pageDialogService, bFFHService)
{ {
_DialogService = dialogService;
SelectInstanceCommand = new DelegateCommand<object>(SelectInstanceCommandExecute); SelectInstanceCommand = new DelegateCommand<object>(SelectInstanceCommandExecute);
ScanCodeCommand = new DelegateCommand(async () => await ScanCodeCommandExecute().ConfigureAwait(false)); ScanCodeCommand = new DelegateCommand(async () => await ScanCodeCommandExecute().ConfigureAwait(false));
RefreshCommand = new DelegateCommand(async ()=> await RefreshCommandExecute().ConfigureAwait(true)); RefreshCommand = new DelegateCommand(async ()=> await RefreshCommandExecute().ConfigureAwait(true));
@ -49,14 +44,11 @@ namespace Borepin.PageModel
IsConnected = true; IsConnected = true;
IMachineSystem machineSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem; MachineSystem machineSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem;
MachineSystem.IInfoInterface machine_infoInterface = await machineSystem.Info().ConfigureAwait(false); UserSystem userSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).UserSystem;
User user_self = await userSystem.Info.GetUserSelf().ConfigureAwait(false);
IUserSystem userSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).UserSystem; IReadOnlyList<Machine> machine_list = await machineSystem.Info.GetMachineList().ConfigureAwait(false);
UserSystem.IInfoInterface user_infoInterface = await userSystem.Info().ConfigureAwait(false);
User user_self = (await user_infoInterface.GetUserSelf().ConfigureAwait(false)).Item1;
IReadOnlyList<Machine> machine_list = await machine_infoInterface.GetMachineList().ConfigureAwait(false);
List<MachineListItemViewModel> viewmodel_list_user_assigned = new List<MachineListItemViewModel>(); List<MachineListItemViewModel> viewmodel_list_user_assigned = new List<MachineListItemViewModel>();
List<MachineListItemViewModel> viewmodel_list_not_user_assigned = new List<MachineListItemViewModel>(); List<MachineListItemViewModel> viewmodel_list_not_user_assigned = new List<MachineListItemViewModel>();
@ -159,12 +151,9 @@ namespace Borepin.PageModel
return; return;
} }
IMachineSystem machineInterface = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem; MachineSystem machineInterface = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem;
Machine machine = (await machineInterface.Info.GetMachineURN(value).ConfigureAwait(false)).Just;
MachineSystem.IInfoInterface infoInterface = await machineInterface.Info().ConfigureAwait(false);
Machine machine = await infoInterface.GetMachineURN(value).ConfigureAwait(false);
if(machine == null) if(machine == null)
{ {

View File

@ -40,7 +40,7 @@ namespace Borepin.PageModel
return; return;
} }
IMachineSystem machineSystem; MachineSystem machineSystem;
try try
{ {
machineSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem; machineSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem;
@ -52,9 +52,7 @@ namespace Borepin.PageModel
return; return;
} }
IInfoInterface info = await machineSystem.Info().ConfigureAwait(false); _Machine = (await machineSystem.Info.GetMachine(_ID).ConfigureAwait(false)).Just;
_Machine = await info.GetMachine(_ID).ConfigureAwait(false);
MachineItem = new MachineVisualize(_Machine); MachineItem = new MachineVisualize(_Machine);
MachineItem.LoadData(); MachineItem.LoadData();

View File

@ -13,14 +13,11 @@ namespace Borepin.PageModel
{ {
#region Private Fields #region Private Fields
private object _Instance; private object _Instance;
private readonly INavigationService _NavigationService;
#endregion #endregion
#region Contructors #region Contructors
public ScanPageModel(INavigationService navigationService) : base(navigationService) public ScanPageModel(INavigationService navigationService) : base(navigationService)
{ {
_NavigationService = navigationService;
AbortCommand = new DelegateCommand(async () => await AbortCommandExecute().ConfigureAwait(true)); AbortCommand = new DelegateCommand(async () => await AbortCommandExecute().ConfigureAwait(true));
ScannedCommand = new DelegateCommand(ScannedCommandExecute); ScannedCommand = new DelegateCommand(ScannedCommandExecute);
@ -32,7 +29,7 @@ namespace Borepin.PageModel
#region Data #region Data
public override async Task LoadData() public override async Task LoadData()
{ {
await Task.CompletedTask.ConfigureAwait(false);
} }
#endregion #endregion
@ -76,7 +73,7 @@ namespace Borepin.PageModel
{ {
{ "result", "scanned" }, { "result", "scanned" },
{ "value", ScanResult.Text }, { "value", ScanResult.Text },
{ "instance", _Instance } { "instance", _Instance },
}; };
Device.BeginInvokeOnMainThread(async () => Device.BeginInvokeOnMainThread(async () =>
@ -99,7 +96,7 @@ namespace Borepin.PageModel
INavigationParameters parameters = new NavigationParameters() INavigationParameters parameters = new NavigationParameters()
{ {
{ "result", "abort" }, { "result", "abort" },
{ "instance", _Instance } { "instance", _Instance },
}; };
await _NavigationService.GoBackAsync(parameters).ConfigureAwait(false); await _NavigationService.GoBackAsync(parameters).ConfigureAwait(false);
} }

@ -1 +1 @@
Subproject commit 557f37b7cf7d7f06f27e8bddb0c45ce1153e2d06 Subproject commit aea03aabe3d1322892c1896ba757ceeedb92ed73

View File

@ -89,29 +89,15 @@ namespace FabAccessAPI_Test
[TestCase("MakerQRA", true)] [TestCase("MakerQRA", true)]
[TestCase("MakerQRB", true)] [TestCase("MakerQRB", true)]
[TestCase("MakerQRC", true)] [TestCase("MakerQRC", true)]
[Order(2)]
[Order(1)] public async Task AccessMachineSystem_Info(string username, bool expectAllow)
public async Task AccessMachineSystem(string username, bool expectAllow)
{ {
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session; Session session = connection.Session;
bool result = session.MachineSystem != null; Assert.AreEqual(expectAllow, !((MachineSystem.InfoInterface_Proxy)session.MachineSystem.Info).IsNull);
API_TestEnv_Test.Disconnect(connection);
Assert.AreEqual(expectAllow, result);
} }
//[TestCase("", true)]
//[Order(2)]
//public async Task AccessMachineSystem_Info(string username, bool expectAllow)
//{
// Session session = await API_TestEnv_Test.Connect(username);
// Assert.AreEqual(expectAllow, session.MachineSystem.Info);
//}
[TestCase("Admin1", 15)] [TestCase("Admin1", 15)]
[TestCase("ManagerA1", 5)] [TestCase("ManagerA1", 5)]
[TestCase("ManagerB1", 5)] [TestCase("ManagerB1", 5)]
@ -167,15 +153,15 @@ namespace FabAccessAPI_Test
[TestCase("MakerQRA", "MachineA1", true)] [TestCase("MakerQRA", "MachineA1", true)]
[TestCase("MakerQRB", "MachineB1", true)] [TestCase("MakerQRB", "MachineB1", true)]
[TestCase("MakerQRC", "MachineC1", true)] [TestCase("MakerQRC", "MachineC1", true)]
[Order(4)] [Order(4)]
public async Task GetMachineByName(string username, string machineName, bool expectedAllow) public async Task GetMachineByName(string username, string machineName, bool expectedAllow)
{ {
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session; Session session = connection.Session;
Machine machine = await session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false); Optional<Machine> optional = await session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false);
bool result = machine != null;
bool result = optional.Just != null;
API_TestEnv_Test.Disconnect(connection); API_TestEnv_Test.Disconnect(connection);
@ -190,11 +176,11 @@ namespace FabAccessAPI_Test
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session; Session session = connection.Session;
Machine machine = await session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false); Optional<Machine> optional = await session.MachineSystem.Info.GetMachine(machineName).ConfigureAwait(false);
API_TestEnv_Test.Disconnect(connection); API_TestEnv_Test.Disconnect(connection);
Assert.IsNull(machine); Assert.IsNull(optional.Just);
} }
[TestCase("Admin1", "urn:fabaccess:resource:MachineA1", true)] [TestCase("Admin1", "urn:fabaccess:resource:MachineA1", true)]
@ -228,8 +214,8 @@ namespace FabAccessAPI_Test
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session; Session session = connection.Session;
Machine machine = await session.MachineSystem.Info.GetMachine(urn).ConfigureAwait(false); Optional<Machine> optional = await session.MachineSystem.Info.GetMachineURN(urn).ConfigureAwait(false);
bool result = machine != null; bool result = optional.Just != null;
API_TestEnv_Test.Disconnect(connection); API_TestEnv_Test.Disconnect(connection);
@ -245,11 +231,11 @@ namespace FabAccessAPI_Test
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session; Session session = connection.Session;
Machine machine = await session.MachineSystem.Info.GetMachine(urn).ConfigureAwait(false); Optional<Machine> optional = await session.MachineSystem.Info.GetMachineURN(urn).ConfigureAwait(false);
API_TestEnv_Test.Disconnect(connection); API_TestEnv_Test.Disconnect(connection);
Assert.IsNull(machine); Assert.IsNull(optional.Just);
} }
} }
@ -261,13 +247,7 @@ namespace FabAccessAPI_Test
[TestCase("Admin1", "MachineB1", true)] [TestCase("Admin1", "MachineB1", true)]
[TestCase("Admin1", "MachineC1", true)] [TestCase("Admin1", "MachineC1", true)]
[TestCase("ManagerA1", "MachineA1", true)] [TestCase("ManagerA1", "MachineA1", true)]
[TestCase("ManagerA1", "MachineB1", false)]
[TestCase("ManagerA1", "MachineC1", false)]
[TestCase("ManagerB1", "MachineA1", false)]
[TestCase("ManagerB1", "MachineB1", true)] [TestCase("ManagerB1", "MachineB1", true)]
[TestCase("ManagerB1", "MachineC1", false)]
[TestCase("ManagerC1", "MachineA1", false)]
[TestCase("ManagerC1", "MachineB1", false)]
[TestCase("ManagerC1", "MachineC1", true)] [TestCase("ManagerC1", "MachineC1", true)]
[TestCase("ManagerABC1", "MachineA1", true)] [TestCase("ManagerABC1", "MachineA1", true)]
[TestCase("ManagerABC1", "MachineB1", true)] [TestCase("ManagerABC1", "MachineB1", true)]
@ -287,7 +267,7 @@ namespace FabAccessAPI_Test
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session; Session session = connection.Session;
Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
bool result = !((Machine.InfoInterface_Proxy)machine.Info).IsNull; bool result = !((Machine.InfoInterface_Proxy)machine.Info).IsNull;
@ -300,13 +280,7 @@ namespace FabAccessAPI_Test
[TestCase("Admin1", "MachineB1", true)] [TestCase("Admin1", "MachineB1", true)]
[TestCase("Admin1", "MachineC1", true)] [TestCase("Admin1", "MachineC1", true)]
[TestCase("ManagerA1", "MachineA1", true)] [TestCase("ManagerA1", "MachineA1", true)]
[TestCase("ManagerA1", "MachineB1", false)]
[TestCase("ManagerA1", "MachineC1", false)]
[TestCase("ManagerB1", "MachineA1", false)]
[TestCase("ManagerB1", "MachineB1", true)] [TestCase("ManagerB1", "MachineB1", true)]
[TestCase("ManagerB1", "MachineC1", false)]
[TestCase("ManagerC1", "MachineA1", false)]
[TestCase("ManagerC1", "MachineB1", false)]
[TestCase("ManagerC1", "MachineC1", true)] [TestCase("ManagerC1", "MachineC1", true)]
[TestCase("ManagerABC1", "MachineA1", true)] [TestCase("ManagerABC1", "MachineA1", true)]
[TestCase("ManagerABC1", "MachineB1", true)] [TestCase("ManagerABC1", "MachineB1", true)]
@ -326,7 +300,7 @@ namespace FabAccessAPI_Test
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session; Session session = connection.Session;
Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
bool result = !((ManageInterface_Proxy)machine.Manage).IsNull; bool result = !((ManageInterface_Proxy)machine.Manage).IsNull;
@ -339,13 +313,7 @@ namespace FabAccessAPI_Test
[TestCase("Admin1", "MachineB1", true)] [TestCase("Admin1", "MachineB1", true)]
[TestCase("Admin1", "MachineC1", true)] [TestCase("Admin1", "MachineC1", true)]
[TestCase("ManagerA1", "MachineA1", false)] [TestCase("ManagerA1", "MachineA1", false)]
[TestCase("ManagerA1", "MachineB1", false)]
[TestCase("ManagerA1", "MachineC1", false)]
[TestCase("ManagerB1", "MachineA1", false)]
[TestCase("ManagerB1", "MachineB1", false)] [TestCase("ManagerB1", "MachineB1", false)]
[TestCase("ManagerB1", "MachineC1", false)]
[TestCase("ManagerC1", "MachineA1", false)]
[TestCase("ManagerC1", "MachineB1", false)]
[TestCase("ManagerC1", "MachineC1", false)] [TestCase("ManagerC1", "MachineC1", false)]
[TestCase("ManagerABC1", "MachineA1", false)] [TestCase("ManagerABC1", "MachineA1", false)]
[TestCase("ManagerABC1", "MachineB1", false)] [TestCase("ManagerABC1", "MachineB1", false)]
@ -359,13 +327,13 @@ namespace FabAccessAPI_Test
[TestCase("MakerQRA", "MachineA1", false)] [TestCase("MakerQRA", "MachineA1", false)]
[TestCase("MakerQRB", "MachineB1", false)] [TestCase("MakerQRB", "MachineB1", false)]
[TestCase("MakerQRC", "MachineC1", false)] [TestCase("MakerQRC", "MachineC1", false)]
[Order(3)] [Order(3), Ignore("Not Implemented")]
public async Task AdminInterface(string username, string machineID, bool expectInterface) public async Task AdminInterface(string username, string machineID, bool expectInterface)
{ {
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session; Session session = connection.Session;
Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
bool result = !((AdminInterface_Proxy)machine.Admin).IsNull; bool result = !((AdminInterface_Proxy)machine.Admin).IsNull;
@ -383,7 +351,7 @@ namespace FabAccessAPI_Test
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session; Session session = connection.Session;
Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
API_TestEnv_Test.Disconnect(connection); API_TestEnv_Test.Disconnect(connection);
@ -402,43 +370,20 @@ namespace FabAccessAPI_Test
public class Machine_Test public class Machine_Test
{ {
#region SetUp #region SetUp
public async Task ForceFree(string username, string machineID) [SetUp]
public async Task SetUp()
{ {
Console.WriteLine("start: " + machineID); Connection connection = await API_TestEnv_Test.Connect("Admin1");
Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session; Session session = connection.Session;
Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); IReadOnlyList<Machine> machine_list = await session.MachineSystem.Info.GetMachineList().ConfigureAwait(false);
await machine.Manage.ForceFree().ConfigureAwait(false); List<Task> tasks = new List<Task>();
foreach(Machine m in machine_list)
API_TestEnv_Test.Disconnect(connection); {
tasks.Add(m.Manage.ForceFree());
Console.WriteLine("finished: " + machineID);
} }
[OneTimeSetUp]
public async Task OneTimeSetUp()
{
List<Task> tasks = new List<Task>()
{
ForceFree("Admin1", "MachineA1"),
ForceFree("Admin1", "MachineA2"),
ForceFree("Admin1", "MachineA3"),
ForceFree("Admin1", "MachineA4"),
ForceFree("Admin1", "MachineA5"),
ForceFree("Admin1", "MachineB1"),
ForceFree("Admin1", "MachineB2"),
ForceFree("Admin1", "MachineB3"),
ForceFree("Admin1", "MachineB4"),
ForceFree("Admin1", "MachineB5"),
ForceFree("Admin1", "MachineC1"),
ForceFree("Admin1", "MachineC2"),
ForceFree("Admin1", "MachineC3"),
ForceFree("Admin1", "MachineC4"),
ForceFree("Admin1", "MachineC5")
};
await Task.WhenAll(tasks); await Task.WhenAll(tasks);
} }
#endregion #endregion
@ -452,7 +397,7 @@ namespace FabAccessAPI_Test
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session; Session session = connection.Session;
Machine machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
// Check State before run Test // Check State before run Test
if (machine.State != MachineState.free) if (machine.State != MachineState.free)
@ -463,10 +408,10 @@ namespace FabAccessAPI_Test
await machine.Use.Use().ConfigureAwait(false); await machine.Use.Use().ConfigureAwait(false);
machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine.Inuse.GiveBack().ConfigureAwait(false); await machine.Inuse.GiveBack().ConfigureAwait(false);
machine = await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
API_TestEnv_Test.Disconnect(connection); API_TestEnv_Test.Disconnect(connection);
@ -476,7 +421,7 @@ namespace FabAccessAPI_Test
[TestCase("ManagerA1", "MakerA1", "MachineA1")] [TestCase("ManagerA1", "MakerA1", "MachineA1")]
[TestCase("MakerA1", "Admin1", "MachineA1")] [TestCase("MakerA1", "Admin1", "MachineA1")]
[TestCase("ManagerA1", "GuestA1", "MachineA1")] [TestCase("ManagerA1", "GuestA1", "MachineA1")]
[Order(2)] [Order(2), Ignore("Not Implemented")]
public async Task TransferMachine(string username1, string username2, string machineID) public async Task TransferMachine(string username1, string username2, string machineID)
{ {
Connection connection1 = await API_TestEnv_Test.Connect(username1); Connection connection1 = await API_TestEnv_Test.Connect(username1);
@ -485,7 +430,7 @@ namespace FabAccessAPI_Test
Connection connection2 = await API_TestEnv_Test.Connect(username2); Connection connection2 = await API_TestEnv_Test.Connect(username2);
Session session2 = connection1.Session; Session session2 = connection1.Session;
Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
// Check State before run Test // Check State before run Test
if (machine1.State != MachineState.free) if (machine1.State != MachineState.free)
@ -496,16 +441,16 @@ namespace FabAccessAPI_Test
} }
await machine1.Use.Use().ConfigureAwait(false); await machine1.Use.Use().ConfigureAwait(false);
machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine1.Inuse.Releasefortakeover().ConfigureAwait(false); await machine1.Inuse.Releasefortakeover().ConfigureAwait(false);
Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine2.Takeover.Accept().ConfigureAwait(false); await machine2.Takeover.Accept().ConfigureAwait(false);
machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine2.Inuse.GiveBack().ConfigureAwait(false); await machine2.Inuse.GiveBack().ConfigureAwait(false);
machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2); API_TestEnv_Test.Disconnect(connection2);
@ -516,7 +461,7 @@ namespace FabAccessAPI_Test
[TestCase("ManagerA1", "MakerA1", "MachineA1")] [TestCase("ManagerA1", "MakerA1", "MachineA1")]
[TestCase("MakerA1", "Admin1", "MachineA1")] [TestCase("MakerA1", "Admin1", "MachineA1")]
[TestCase("ManagerA1", "GuestA1", "MachineA1")] [TestCase("ManagerA1", "GuestA1", "MachineA1")]
[Order(3)] [Order(3), Ignore("Not Implemented")]
public async Task TransferMachine_Reject(string username1, string username2, string machineID) public async Task TransferMachine_Reject(string username1, string username2, string machineID)
{ {
Connection connection1 = await API_TestEnv_Test.Connect(username1); Connection connection1 = await API_TestEnv_Test.Connect(username1);
@ -525,7 +470,7 @@ namespace FabAccessAPI_Test
Connection connection2 = await API_TestEnv_Test.Connect(username2); Connection connection2 = await API_TestEnv_Test.Connect(username2);
Session session2 = connection1.Session; Session session2 = connection1.Session;
Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
// Check State before run Test // Check State before run Test
if (machine1.State != MachineState.free) if (machine1.State != MachineState.free)
@ -536,16 +481,16 @@ namespace FabAccessAPI_Test
} }
await machine1.Use.Use().ConfigureAwait(false); await machine1.Use.Use().ConfigureAwait(false);
machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine1.Inuse.Releasefortakeover().ConfigureAwait(false); await machine1.Inuse.Releasefortakeover().ConfigureAwait(false);
Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine2.Takeover.Reject().ConfigureAwait(false); await machine2.Takeover.Reject().ConfigureAwait(false);
machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine1.Inuse.GiveBack().ConfigureAwait(false); await machine1.Inuse.GiveBack().ConfigureAwait(false);
machine2 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine2 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2); API_TestEnv_Test.Disconnect(connection2);
@ -556,7 +501,7 @@ namespace FabAccessAPI_Test
[TestCase("ManagerA1", "ManagerA1", "MachineA1")] [TestCase("ManagerA1", "ManagerA1", "MachineA1")]
[TestCase("ManagerA1", "Admin1", "MachineA1")] [TestCase("ManagerA1", "Admin1", "MachineA1")]
[TestCase("MakerA1", "Admin1", "MachineA1")] [TestCase("MakerA1", "Admin1", "MachineA1")]
[Order(4)] [Order(4), Ignore("Not Implemented")]
public async Task CheckMachine(string username1, string username2, string machineID) public async Task CheckMachine(string username1, string username2, string machineID)
{ {
Connection connection1 = await API_TestEnv_Test.Connect(username1); Connection connection1 = await API_TestEnv_Test.Connect(username1);
@ -565,7 +510,7 @@ namespace FabAccessAPI_Test
Connection connection2 = await API_TestEnv_Test.Connect(username2); Connection connection2 = await API_TestEnv_Test.Connect(username2);
Session session2 = connection1.Session; Session session2 = connection1.Session;
Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
// Check State before run Test // Check State before run Test
if (machine1.State != MachineState.free) if (machine1.State != MachineState.free)
@ -576,13 +521,13 @@ namespace FabAccessAPI_Test
} }
await machine1.Use.Use().ConfigureAwait(false); await machine1.Use.Use().ConfigureAwait(false);
machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine1.Inuse.GiveBack().ConfigureAwait(false); await machine1.Inuse.GiveBack().ConfigureAwait(false);
Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine2.Check.Check().ConfigureAwait(false); await machine2.Check.Check().ConfigureAwait(false);
machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2); API_TestEnv_Test.Disconnect(connection2);
@ -593,7 +538,7 @@ namespace FabAccessAPI_Test
[TestCase("ManagerA1", "ManagerA1", "MachineA1")] [TestCase("ManagerA1", "ManagerA1", "MachineA1")]
[TestCase("ManagerA1", "Admin1", "MachineA1")] [TestCase("ManagerA1", "Admin1", "MachineA1")]
[TestCase("MakerA1", "Admin1", "MachineA1")] [TestCase("MakerA1", "Admin1", "MachineA1")]
[Order(5)] [Order(5), Ignore("Not Implemented")]
public async Task CheckMachine_Reject(string username1, string username2, string machineID) public async Task CheckMachine_Reject(string username1, string username2, string machineID)
{ {
Connection connection1 = await API_TestEnv_Test.Connect(username1); Connection connection1 = await API_TestEnv_Test.Connect(username1);
@ -603,7 +548,7 @@ namespace FabAccessAPI_Test
Session session2 = connection1.Session; Session session2 = connection1.Session;
Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
// Check State before run Test // Check State before run Test
if (machine1.State != MachineState.free) if (machine1.State != MachineState.free)
@ -614,19 +559,19 @@ namespace FabAccessAPI_Test
} }
await machine1.Use.Use().ConfigureAwait(false); await machine1.Use.Use().ConfigureAwait(false);
machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine1.Inuse.GiveBack().ConfigureAwait(false); await machine1.Inuse.GiveBack().ConfigureAwait(false);
Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine2.Check.Reject().ConfigureAwait(false); await machine2.Check.Reject().ConfigureAwait(false);
machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine1.Inuse.GiveBack().ConfigureAwait(false); await machine1.Inuse.GiveBack().ConfigureAwait(false);
machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine2.Check.Check().ConfigureAwait(false); await machine2.Check.Check().ConfigureAwait(false);
machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection1);
API_TestEnv_Test.Disconnect(connection2); API_TestEnv_Test.Disconnect(connection2);
@ -635,7 +580,7 @@ namespace FabAccessAPI_Test
} }
[TestCase("MakerA1", "GuestA1", "ManagerA1", "MachineA1")] [TestCase("MakerA1", "GuestA1", "ManagerA1", "MachineA1")]
[Order(4)] [Order(4), Ignore("Not Implemented")]
public async Task CheckMachine_NoPermission(string username1, string username2, string username3, string machineID) public async Task CheckMachine_NoPermission(string username1, string username2, string username3, string machineID)
{ {
Connection connection1 = await API_TestEnv_Test.Connect(username1); Connection connection1 = await API_TestEnv_Test.Connect(username1);
@ -645,9 +590,9 @@ namespace FabAccessAPI_Test
Session session2 = connection1.Session; Session session2 = connection1.Session;
Connection connection3 = await API_TestEnv_Test.Connect(username3); Connection connection3 = await API_TestEnv_Test.Connect(username3);
Session session3 = connection1.Session; Session session3 = connection3.Session;
Machine machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
// Check State before run Test // Check State before run Test
if (machine1.State != MachineState.free) if (machine1.State != MachineState.free)
@ -658,13 +603,13 @@ namespace FabAccessAPI_Test
} }
await machine1.Use.Use().ConfigureAwait(false); await machine1.Use.Use().ConfigureAwait(false);
machine1 = await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); machine1 = (await session1.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine1.Inuse.GiveBack().ConfigureAwait(false); await machine1.Inuse.GiveBack().ConfigureAwait(false);
Machine machine2 = await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine2 = (await session2.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
bool result = ((CheckInterface_Proxy)machine2.Check).IsNull; bool result = ((CheckInterface_Proxy)machine2.Check).IsNull;
Machine machine3 = await session3.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false); Machine machine3 = (await session3.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
await machine3.Check.Check().ConfigureAwait(false); await machine3.Check.Check().ConfigureAwait(false);
API_TestEnv_Test.Disconnect(connection1); API_TestEnv_Test.Disconnect(connection1);
@ -672,6 +617,29 @@ namespace FabAccessAPI_Test
Assert.IsTrue(result); Assert.IsTrue(result);
} }
[TestCase("ManagerA1", "MachineA1")]
[Order(5)]
public async Task CurrentUser(string username, string machineID)
{
Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session;
Machine machine = (await session.MachineSystem.Info.GetMachine(machineID).ConfigureAwait(false)).Just;
// Check State before run Test
if (machine.State != MachineState.free)
{
API_TestEnv_Test.Disconnect(connection);
Assert.Inconclusive("State is not 'free'");
}
MachineInfoExtended machineInfoExtended = await machine.Manage.GetMachineInfoExtended().ConfigureAwait(false);
API_TestEnv_Test.Disconnect(connection);
Assert.IsNull(machineInfoExtended.CurrentUser.Just);
}
} }
[TestFixture, Parallelizable(ParallelScope.Children)] [TestFixture, Parallelizable(ParallelScope.Children)]
@ -718,7 +686,7 @@ namespace FabAccessAPI_Test
[TestCase("ManagerA1", 13)] [TestCase("ManagerA1", 13)]
[TestCase("MakerA1", 13)] [TestCase("MakerA1", 13)]
[TestCase("GuestA1", 13)] [TestCase("GuestA1", 13)]
[Order(3)] [Order(3), Ignore("Not Implemented")]
public async Task ListRoles(string username, int expectRolesCount) public async Task ListRoles(string username, int expectRolesCount)
{ {
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
@ -736,24 +704,6 @@ namespace FabAccessAPI_Test
[Order(5)] [Order(5)]
public class UserSystem_Test public class UserSystem_Test
{ {
[TestCase("Admin1", true)]
[TestCase("ManagerA1", true)]
[TestCase("MakerA1", true)]
[TestCase("GuestA1", true)]
[Order(1)]
public async Task AccessUserSystem(string username, bool expectInterface)
{
Connection connection = await API_TestEnv_Test.Connect(username);
Session session = connection.Session;
bool result = session.UserSystem != null;
API_TestEnv_Test.Disconnect(connection);
Assert.AreEqual(expectInterface, result);
}
//[TestCase("Admin1", true)] //[TestCase("Admin1", true)]
//[TestCase("ManagerA1", true)] //[TestCase("ManagerA1", true)]
//[TestCase("MakerA1", true)] //[TestCase("MakerA1", true)]
@ -837,7 +787,7 @@ namespace FabAccessAPI_Test
[TestCase("ManagerA1", true)] [TestCase("ManagerA1", true)]
[TestCase("MakerA1", true)] [TestCase("MakerA1", true)]
[TestCase("GuestA1", true)] [TestCase("GuestA1", true)]
[Order(2)] [Order(2), Ignore("Not Implemented")]
public async Task ManageInterface(string username, bool expectInterface) public async Task ManageInterface(string username, bool expectInterface)
{ {
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
@ -856,7 +806,7 @@ namespace FabAccessAPI_Test
[TestCase("ManagerA1", false)] [TestCase("ManagerA1", false)]
[TestCase("MakerA1", false)] [TestCase("MakerA1", false)]
[TestCase("GuestA1", false)] [TestCase("GuestA1", false)]
[Order(3)] [Order(3), Ignore("Not Implemented")]
public async Task AdminInterface(string username, bool expectInterface) public async Task AdminInterface(string username, bool expectInterface)
{ {
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);
@ -895,7 +845,7 @@ namespace FabAccessAPI_Test
[TestCase("ManagerA1")] [TestCase("ManagerA1")]
[TestCase("MakerA1")] [TestCase("MakerA1")]
[TestCase("GuestA1")] [TestCase("GuestA1")]
[Order(5)] [Order(5), Ignore("Not Implemented")]
public async Task ListUserRoles(string username, params string[] expect_roles) public async Task ListUserRoles(string username, params string[] expect_roles)
{ {
Connection connection = await API_TestEnv_Test.Connect(username); Connection connection = await API_TestEnv_Test.Connect(username);