Doormode set and get

This commit is contained in:
Martijn Scheepers
2025-08-08 10:32:27 +02:00
parent eef3143cfb
commit 4402b50faf
5 changed files with 248 additions and 64 deletions

View File

@@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Connections;
using Microsoft.EntityFrameworkCore;
using Moq;
using System.Net;
using static Aperio_Control_Centre.Aadp.Enumerations;
namespace Aperio_Control_Centre.UnitTest.AperioServer
{
@@ -34,8 +35,8 @@ namespace Aperio_Control_Centre.UnitTest.AperioServer
//Assert.ThrowsExactly<NotSupportedException>(() => door.EmergencyOutsideState);
//Assert.ThrowsExactly<NotSupportedException>(() => door.ManualOpenState);
Assert.AreEqual(0, _screenLogging.Messages.Count);
Assert.AreEqual(0, _statusBroadcast.Messages.Count);
Assert.IsEmpty(_screenLogging.Messages);
Assert.IsEmpty(_statusBroadcast.Messages);
Assert.IsNotNull(_dbContextFactory);
ACSDatabaseContext db = _dbContextFactory.CreateDbContext();
@@ -54,7 +55,7 @@ namespace Aperio_Control_Centre.UnitTest.AperioServer
[TestMethod]
public void AperioBase_Init_Test()
public void AperioDoor_Init_Test()
{
AperioBase device = CreateAperioDoor();
Assert.IsNotNull(device);
@@ -96,7 +97,7 @@ namespace Aperio_Control_Centre.UnitTest.AperioServer
[TestMethod]
public void AperioBaseDevice_SetDoorState_Test()
public void AperioDoor_SetDoorState_Test()
{
Assert.IsNotNull(_statusBroadcast);
Assert.IsNotNull(_screenLogging);
@@ -112,8 +113,8 @@ namespace Aperio_Control_Centre.UnitTest.AperioServer
Assert.AreEqual(Enumerations.DoorState.CLOSED, device.DoorState);
Assert.AreEqual(0, _statusBroadcast.Messages.Count);
Assert.AreEqual(0, _screenLogging.Messages.Count);
Assert.IsEmpty(_statusBroadcast.Messages);
Assert.IsEmpty(_screenLogging.Messages);
Assert.IsNotNull(_dbContextFactory);
ACSDatabaseContext context = _dbContextFactory.CreateDbContext();
@@ -128,7 +129,7 @@ namespace Aperio_Control_Centre.UnitTest.AperioServer
}
[TestMethod]
public void AperioBaseDevice_SetLockState_Test()
public void AperioDoor_SetLockState_Test()
{
Assert.IsNotNull(_statusBroadcast);
Assert.IsNotNull(_screenLogging);
@@ -144,8 +145,8 @@ namespace Aperio_Control_Centre.UnitTest.AperioServer
Assert.AreEqual(Enumerations.LockState.JAMMED, device.LockState);
Assert.AreEqual(0, _statusBroadcast.Messages.Count);
Assert.AreEqual(0, _screenLogging.Messages.Count);
Assert.IsEmpty(_statusBroadcast.Messages);
Assert.IsEmpty(_screenLogging.Messages);
Assert.IsNotNull(_dbContextFactory);
ACSDatabaseContext context = _dbContextFactory.CreateDbContext();
@@ -158,5 +159,94 @@ namespace Aperio_Control_Centre.UnitTest.AperioServer
Assert.AreEqual(Enumerations.LockState.JAMMED, logs[0].Device?.LockState);
}
[TestMethod]
public void AperioDoor_GetDoormode_Single_Test()
{
Assert.IsNotNull(_statusBroadcast);
Assert.IsNotNull(_screenLogging);
AperioDoor device = CreateAperioDoor();
Assert.AreEqual(Enumerations.DoorMode.UNKNOWN, device.GetDoorMode());
}
[TestMethod]
public void AperioDoor_SetDoormode_Single_Test()
{
Assert.IsNotNull(_statusBroadcast);
Assert.IsNotNull(_screenLogging);
AperioDoor device = CreateAperioDoor();
device.SetDoorMode(Enumerations.DoorMode.INSIDEOUT_LOCKED, _token).Wait(_token);
Assert.AreEqual(Enumerations.DoorMode.INSIDEOUT_LOCKED, device.GetDoorMode());
//Task.Run(async () =>
//{
// await device.SetLockState(Enumerations.LockState.JAMMED, _token);
//}).GetAwaiter().GetResult();
//Assert.AreEqual(Enumerations.LockState.JAMMED, device.LockState);
//Assert.AreEqual(0, _statusBroadcast.Messages.Count);
//Assert.AreEqual(0, _screenLogging.Messages.Count);
//Assert.IsNotNull(_dbContextFactory);
//ACSDatabaseContext context = _dbContextFactory.CreateDbContext();
//Assert.AreEqual(1, context.Loggings.Count());
//List<Logging> logs = context.Loggings.Include(d => d.Device).ToList();
//Assert.IsNotNull(logs);
//Assert.AreEqual("Slot geblokkeerd", logs[0].Message);
//Assert.AreEqual(Enumerations.LockState.JAMMED, logs[0].Device?.LockState);
}
[TestMethod]
public void AperioDoor_UpdateDoormode_Test()
{
Assert.IsNotNull(_statusBroadcast);
Assert.IsNotNull(_screenLogging);
AperioDoor device = CreateAperioDoor();
List<DoorMode> modes = [DoorMode.FREE_OPEN, DoorMode.RESTRICTED_LOCKED, DoorMode.RESTRICTED_SECURED];
device.UpdateDoormodes(modes, _token).Wait(_token);
Assert.AreEqual(Enumerations.DoorMode.UNKNOWN, device.GetDoorMode());
device.SetDoorMode(Enumerations.DoorMode.INSIDEOUT_LOCKED, _token).Wait(_token);
Assert.AreEqual(Enumerations.DoorMode.INSIDEOUT_LOCKED, device.GetDoorMode());
device.SetDoorMode(Enumerations.DoorMode.RESTRICTED_SECURED, _token).Wait(_token);
Assert.AreEqual(Enumerations.DoorMode.RESTRICTED_SECURED, device.GetDoorMode());
//Task.Run(async () =>
//{
// await device.SetLockState(Enumerations.LockState.JAMMED, _token);
//}).GetAwaiter().GetResult();
//Assert.AreEqual(Enumerations.LockState.JAMMED, device.LockState);
//Assert.AreEqual(0, _statusBroadcast.Messages.Count);
//Assert.AreEqual(0, _screenLogging.Messages.Count);
//Assert.IsNotNull(_dbContextFactory);
//ACSDatabaseContext context = _dbContextFactory.CreateDbContext();
//Assert.AreEqual(1, context.Loggings.Count());
//List<Logging> logs = context.Loggings.Include(d => d.Device).ToList();
//Assert.IsNotNull(logs);
//Assert.AreEqual("Slot geblokkeerd", logs[0].Message);
//Assert.AreEqual(Enumerations.LockState.JAMMED, logs[0].Device?.LockState);
}
}
}