Files
DP44/Common/DTS.Common.Tests/GroupChannelShould.cs

255 lines
10 KiB
C#
Raw Permalink Normal View History

2026-04-17 14:55:32 -04:00
using DTS.Common.Enums.Sensors;
using DTS.Common.Interface.Channels;
using DTS.Common.Interface.Groups.GroupList;
using DTS.Common.Interface.Sensors;
using NSubstitute;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DTS.Common.Classes.Groups
{
[TestFixture]
class GroupChannelShould
{
[Test]
public void GetFilterClassFromISOCode_ShouldReturnCFC1000WhenIsoIsA()
{
//Arrange
ISoftwareFilter sf1 = Substitute.For<ISoftwareFilter>();
ISoftwareFilter sf2 = Substitute.For<ISoftwareFilter>();
List<ISoftwareFilter> filters = new List<ISoftwareFilter>();
filters.Add(sf1);
filters.Add(sf2);
IGroup group = Substitute.For<IGroup>();
IChannelSetting chs1 = Substitute.For<IChannelSetting>();
chs1.SettingName.Returns("FilterClass");
List<IChannelSetting> channelSettings = new List<IChannelSetting>();
channelSettings.Add(chs1);
IGroupChannel groupChannel = new GroupChannel(false, "TestGroup", group, channelSettings.ToArray());
//Act
var result = groupChannel.GetFilterClassFromISOCode(filters.ToArray(), "???????????????A");
//Assert
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC1000));
}
[Test]
public void GetFilterClassFromISOCode_ShouldReturnCFC600WhenIsoIsB()
{
//Arrange
ISoftwareFilter sf1 = Substitute.For<ISoftwareFilter>();
ISoftwareFilter sf2 = Substitute.For<ISoftwareFilter>();
List<ISoftwareFilter> filters = new List<ISoftwareFilter>();
filters.Add(sf1);
filters.Add(sf2);
IGroup group = Substitute.For<IGroup>();
IChannelSetting chs1 = Substitute.For<IChannelSetting>();
chs1.SettingName.Returns("FilterClass");
List<IChannelSetting> channelSettings = new List<IChannelSetting>();
channelSettings.Add(chs1);
IGroupChannel groupChannel = new GroupChannel(false, "TestGroup", group, channelSettings.ToArray());
//Act
var result = groupChannel.GetFilterClassFromISOCode(filters.ToArray(), "???????????????B");
//Assert
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC600));
}
[Test]
public void GetFilterClassFromISOCode_ShouldReturnCFC180WhenIsoIsC()
{
//Arrange
ISoftwareFilter sf1 = Substitute.For<ISoftwareFilter>();
ISoftwareFilter sf2 = Substitute.For<ISoftwareFilter>();
List<ISoftwareFilter> filters = new List<ISoftwareFilter>();
filters.Add(sf1);
filters.Add(sf2);
IGroup group = Substitute.For<IGroup>();
IChannelSetting chs1 = Substitute.For<IChannelSetting>();
chs1.SettingName.Returns("FilterClass");
List<IChannelSetting> channelSettings = new List<IChannelSetting>();
channelSettings.Add(chs1);
IGroupChannel groupChannel = new GroupChannel(false, "TestGroup", group, channelSettings.ToArray());
//Act
var result = groupChannel.GetFilterClassFromISOCode(filters.ToArray(), "???????????????C");
//Assert
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC180));
}
[Test]
public void GetFilterClassFromISOCode_ShouldReturnCFC60WhenIsoIsD()
{
//Arrange
ISoftwareFilter sf1 = Substitute.For<ISoftwareFilter>();
ISoftwareFilter sf2 = Substitute.For<ISoftwareFilter>();
List<ISoftwareFilter> filters = new List<ISoftwareFilter>();
filters.Add(sf1);
filters.Add(sf2);
IGroup group = Substitute.For<IGroup>();
IChannelSetting chs1 = Substitute.For<IChannelSetting>();
chs1.SettingName.Returns("FilterClass");
List<IChannelSetting> channelSettings = new List<IChannelSetting>();
channelSettings.Add(chs1);
IGroupChannel groupChannel = new GroupChannel(false, "TestGroup", group, channelSettings.ToArray());
//Act
var result = groupChannel.GetFilterClassFromISOCode(filters.ToArray(), "???????????????D");
//Assert
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC60));
}
[Test]
public void GetFilterClassFromISOCode_ShouldReturnUnfilteredWhenIsoIs0()
{
//Arrange
ISoftwareFilter sf1 = Substitute.For<ISoftwareFilter>();
ISoftwareFilter sf2 = Substitute.For<ISoftwareFilter>();
List<ISoftwareFilter> filters = new List<ISoftwareFilter>();
filters.Add(sf1);
filters.Add(sf2);
IGroup group = Substitute.For<IGroup>();
IChannelSetting chs1 = Substitute.For<IChannelSetting>();
chs1.SettingName.Returns("FilterClass");
List<IChannelSetting> channelSettings = new List<IChannelSetting>();
channelSettings.Add(chs1);
IGroupChannel groupChannel = new GroupChannel(false, "TestGroup", group, channelSettings.ToArray());
//Act
var result = groupChannel.GetFilterClassFromISOCode(filters.ToArray(), "???????????????0");
//Assert
Assert.That(result.FClass, Is.EqualTo(FilterClassType.Unfiltered));
}
public void GetFilterClassFromISOCode_ShouldReturnNoneWhenIsoIsP()
{
//Arrange
ISoftwareFilter sf1 = Substitute.For<ISoftwareFilter>();
ISoftwareFilter sf2 = Substitute.For<ISoftwareFilter>();
List<ISoftwareFilter> filters = new List<ISoftwareFilter>();
filters.Add(sf1);
filters.Add(sf2);
IGroup group = Substitute.For<IGroup>();
IChannelSetting chs1 = Substitute.For<IChannelSetting>();
chs1.SettingName.Returns("FilterClass");
List<IChannelSetting> channelSettings = new List<IChannelSetting>();
channelSettings.Add(chs1);
IGroupChannel groupChannel = new GroupChannel(false, "TestGroup", group, channelSettings.ToArray());
//Act
var result = groupChannel.GetFilterClassFromISOCode(filters.ToArray(), "???????????????P");
//Assert
Assert.That(result.FClass, Is.EqualTo(FilterClassType.None));
}
[Test]
public void GetFilterClassFromISOCode_ShouldReturnAdhocWhenIsoIsAdhoc1800()
{
//Arrange
ISoftwareFilter sf1 = Substitute.For<ISoftwareFilter>();
ISoftwareFilter sf2 = Substitute.For<ISoftwareFilter>();
sf1.Frequency.Returns(1800);
sf1.ISOCode.Returns('S');
List<ISoftwareFilter> filters = new List<ISoftwareFilter>();
filters.Add(sf1);
filters.Add(sf2);
IGroup group = Substitute.For<IGroup>();
IChannelSetting chs1 = Substitute.For<IChannelSetting>();
chs1.SettingName.Returns("FilterClass");
List<IChannelSetting> channelSettings = new List<IChannelSetting>();
channelSettings.Add(chs1);
IGroupChannel groupChannel = new GroupChannel(false, "TestGroup", group, channelSettings.ToArray());
//Act
var result = groupChannel.GetFilterClassFromISOCode(filters.ToArray(), "???????????????S");
//Assert
Assert.That(result.FClass, Is.EqualTo(FilterClassType.AdHoc));
Assert.That(result.Frequency, Is.EqualTo(1800));
}
[Test]
public void GetFilterClassFromISOCode_ShouldReturnCFC1000WhenNoAdhocFilter()
{
//Arrange
ISoftwareFilter sf1 = Substitute.For<ISoftwareFilter>();
ISoftwareFilter sf2 = Substitute.For<ISoftwareFilter>();
sf1.Frequency.Returns(1650);
sf1.ISOCode.Returns('A');
List<ISoftwareFilter> filters = new List<ISoftwareFilter>();
filters.Add(sf1);
filters.Add(sf2);
IGroup group = Substitute.For<IGroup>();
IChannelSetting chs1 = Substitute.For<IChannelSetting>();
chs1.SettingName.Returns("FilterClass");
List<IChannelSetting> channelSettings = new List<IChannelSetting>();
channelSettings.Add(chs1);
IGroupChannel groupChannel = new GroupChannel(false, "TestGroup", group, channelSettings.ToArray());
//Act
var result = groupChannel.GetFilterClassFromISOCode(filters.ToArray(), "???????????????S");
//Assert
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC1000));
}
[Test]
public void GetFilterClassFromISOCode_ShouldReturnCFC1000WhenIsoIsNotValid()
{
//Arrange
ISoftwareFilter sf1 = Substitute.For<ISoftwareFilter>();
ISoftwareFilter sf2 = Substitute.For<ISoftwareFilter>();
List<ISoftwareFilter> filters = new List<ISoftwareFilter>();
filters.Add(sf1);
filters.Add(sf2);
IGroup group = Substitute.For<IGroup>();
IChannelSetting chs1 = Substitute.For<IChannelSetting>();
chs1.SettingName.Returns("FilterClass");
List<IChannelSetting> channelSettings = new List<IChannelSetting>();
channelSettings.Add(chs1);
IGroupChannel groupChannel = new GroupChannel(false, "TestGroup", group, channelSettings.ToArray());
//Act
var result = groupChannel.GetFilterClassFromISOCode(filters.ToArray(), "???????????????H");
//Assert
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC1000));
}
}
}