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 sf2 = Substitute.For(); List filters = new List(); filters.Add(sf1); filters.Add(sf2); IGroup group = Substitute.For(); IChannelSetting chs1 = Substitute.For(); chs1.SettingName.Returns("FilterClass"); List channelSettings = new List(); 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 sf2 = Substitute.For(); List filters = new List(); filters.Add(sf1); filters.Add(sf2); IGroup group = Substitute.For(); IChannelSetting chs1 = Substitute.For(); chs1.SettingName.Returns("FilterClass"); List channelSettings = new List(); 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 sf2 = Substitute.For(); List filters = new List(); filters.Add(sf1); filters.Add(sf2); IGroup group = Substitute.For(); IChannelSetting chs1 = Substitute.For(); chs1.SettingName.Returns("FilterClass"); List channelSettings = new List(); 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 sf2 = Substitute.For(); List filters = new List(); filters.Add(sf1); filters.Add(sf2); IGroup group = Substitute.For(); IChannelSetting chs1 = Substitute.For(); chs1.SettingName.Returns("FilterClass"); List channelSettings = new List(); 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 sf2 = Substitute.For(); List filters = new List(); filters.Add(sf1); filters.Add(sf2); IGroup group = Substitute.For(); IChannelSetting chs1 = Substitute.For(); chs1.SettingName.Returns("FilterClass"); List channelSettings = new List(); 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 sf2 = Substitute.For(); List filters = new List(); filters.Add(sf1); filters.Add(sf2); IGroup group = Substitute.For(); IChannelSetting chs1 = Substitute.For(); chs1.SettingName.Returns("FilterClass"); List channelSettings = new List(); 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 sf2 = Substitute.For(); sf1.Frequency.Returns(1800); sf1.ISOCode.Returns('S'); List filters = new List(); filters.Add(sf1); filters.Add(sf2); IGroup group = Substitute.For(); IChannelSetting chs1 = Substitute.For(); chs1.SettingName.Returns("FilterClass"); List channelSettings = new List(); 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 sf2 = Substitute.For(); sf1.Frequency.Returns(1650); sf1.ISOCode.Returns('A'); List filters = new List(); filters.Add(sf1); filters.Add(sf2); IGroup group = Substitute.For(); IChannelSetting chs1 = Substitute.For(); chs1.SettingName.Returns("FilterClass"); List channelSettings = new List(); 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 sf2 = Substitute.For(); List filters = new List(); filters.Add(sf1); filters.Add(sf2); IGroup group = Substitute.For(); IChannelSetting chs1 = Substitute.For(); chs1.SettingName.Returns("FilterClass"); List channelSettings = new List(); 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)); } } }