Implement smart meter interface enhancements for AllyReader: Add `ISmartMeterReader` interface, update `RegisterReaderSelection` logic, integrate smart-meter position selection, and expand unit test coverage.
35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using TBF.Rig.GenericDevices;
|
|
using TBF.Rig.RegisterReaders.AllyReader;
|
|
using TBF.Rig.RegisterReaders.GenesisRegReader.implementations;
|
|
using TBF.Rig.TestMethods.iPerlCommunication.iPerlHead;
|
|
using OldIPerlReader = TBF.Rig.RegisterReaders.IPerlReader.implementations.SmartReader;
|
|
using IPerlAsicReader = TBF.Rig.RegisterReaders.iPerlASICReader.implementations.SmartReader;
|
|
using PoseidonReader = TBF.Rig.RegisterReaders.PoseidonReader.implementations.PoseidonReader;
|
|
|
|
namespace TBFTests.Rig.DataEntry.Uni
|
|
{
|
|
[TestClass]
|
|
public class SmartMeterReaderFamilyTests
|
|
{
|
|
[TestMethod]
|
|
public void SmartMeterFamily_ContainsSupportedReadersOnly()
|
|
{
|
|
AssertSmartMeter(typeof(IperlHead));
|
|
AssertSmartMeter(typeof(GenesisSmartReader));
|
|
AssertSmartMeter(typeof(AllyMeterReader));
|
|
AssertSmartMeter(typeof(OldIPerlReader));
|
|
AssertSmartMeter(typeof(IPerlAsicReader));
|
|
|
|
Assert.IsFalse(typeof(ISmartMeterReader).IsAssignableFrom(typeof(PoseidonReader)));
|
|
}
|
|
|
|
private static void AssertSmartMeter(System.Type readerType)
|
|
{
|
|
Assert.IsTrue(
|
|
typeof(ISmartMeterReader).IsAssignableFrom(readerType),
|
|
readerType.FullName + " must belong to the smart-meter family.");
|
|
}
|
|
}
|
|
}
|