Files
DP44/Common/DTS.Common.Tests/FilterClassShould.cs
2026-04-17 14:55:32 -04:00

356 lines
13 KiB
C#

using DTS.Common.Classes.Sensors;
using DTS.Common.Enums.Sensors;
using DTS.Common.Interface.Sensors;
using NSubstitute;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
namespace DTS.Common.Classes.Sensors
{
[TestFixture]
class FilterClassShould
{
List<ISoftwareFilter> softwareFilters = null;
[SetUp]
public void SetUp()
{
//Arrange
ISoftwareFilter softwareFilter0 = Substitute.For<ISoftwareFilter>();
softwareFilter0.ISOCode.Returns('0');
softwareFilter0.Frequency.Returns(0.0);
ISoftwareFilter softwareFilterP = Substitute.For<ISoftwareFilter>();
softwareFilterP.ISOCode.Returns('P');
softwareFilterP.Frequency.Returns(0.0);
ISoftwareFilter softwareFilterQ = Substitute.For<ISoftwareFilter>();
softwareFilterQ.ISOCode.Returns('Q');
softwareFilterQ.Frequency.Returns(17.0);
ISoftwareFilter softwareFilterD = Substitute.For<ISoftwareFilter>();
softwareFilterD.ISOCode.Returns('D');
softwareFilterD.Frequency.Returns(100.00);
ISoftwareFilter softwareFilterC = Substitute.For<ISoftwareFilter>();
softwareFilterC.ISOCode.Returns('C');
softwareFilterC.Frequency.Returns(300.0);
ISoftwareFilter softwareFilterB = Substitute.For<ISoftwareFilter>();
softwareFilterB.ISOCode.Returns('B');
softwareFilterB.Frequency.Returns(1000.0);
ISoftwareFilter softwareFilterA = Substitute.For<ISoftwareFilter>();
softwareFilterA.ISOCode.Returns('A');
softwareFilterA.Frequency.Returns(1650.0);
ISoftwareFilter softwareFilterSFirst = Substitute.For<ISoftwareFilter>();
softwareFilterSFirst.ISOCode.Returns('S');
softwareFilterSFirst.Frequency.Returns(1700.0);
ISoftwareFilter softwareFilterSSecond = Substitute.For<ISoftwareFilter>();
softwareFilterSSecond.ISOCode.Returns('S');
softwareFilterSSecond.Frequency.Returns(1750.0);
softwareFilters = new List<ISoftwareFilter>();
softwareFilters.Add(softwareFilter0);
softwareFilters.Add(softwareFilterP);
softwareFilters.Add(softwareFilterQ);
softwareFilters.Add(softwareFilterD);
softwareFilters.Add(softwareFilterC);
softwareFilters.Add(softwareFilterB);
softwareFilters.Add(softwareFilterA);
softwareFilters.Add(softwareFilterSFirst);
softwareFilters.Add(softwareFilterSSecond);
}
[TearDown]
public void TearDown()
{
softwareFilters = null;
}
[Test]
public void GetFilterClassFromString_ShouldReturnUnfiltered_WhenNull()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString(null);
Assert.That(result.FClass, Is.EqualTo(FilterClassType.Unfiltered));
}
[Test]
public void GetFilterClassFromString_ShouldReturnUnfiltered_WhenEmpty()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.Unfiltered));
}
[Test]
public void GetFilterClassFromString_ShouldReturnAdhoc_WhenCustom()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("1700");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.AdHoc));
Assert.That(result.Frequency, Is.EqualTo(1700));
}
[Test]
public void GetFilterClassFromString_ShouldReturnAdhoc_WhenCustomHz()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("1700Hz");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.AdHoc));
Assert.That(result.Frequency, Is.EqualTo(1700));
}
[Test]
public void GetFilterClassFromString_ShouldReturnCFC10_When10()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("10");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC10));
Assert.That(result.Frequency, Is.EqualTo(17));
}
[Test]
public void GetFilterClassFromString_ShouldReturnCFC10_WhenCFC10()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("CFC 10");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC10));
Assert.That(result.Frequency, Is.EqualTo(17));
}
[Test]
public void GetFilterClassFromString_ShouldReturnCFC1000_When1000()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("1000");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC1000));
Assert.That(result.Frequency, Is.EqualTo(1650));
}
[Test]
public void GetFilterClassFromString_ShouldReturnCFC1000_WhenCFC1000()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("CFC 1000");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC1000));
Assert.That(result.Frequency, Is.EqualTo(1650));
}
[Test]
public void GetFilterClassFromString_ShouldReturnCFC180_When180()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("180");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC180));
Assert.That(result.Frequency, Is.EqualTo(300));
}
[Test]
public void GetFilterClassFromString_ShouldReturnCFC180_WhenCFC180()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("CFC 180");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC180));
Assert.That(result.Frequency, Is.EqualTo(300));
}
[Test]
public void GetFilterClassFromString_ShouldReturnCFC60_When60()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("60");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC60));
Assert.That(result.Frequency, Is.EqualTo(100));
}
[Test]
public void GetFilterClassFromString_ShouldReturnCFC60_WhenCFC60()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("CFC 60");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC60));
Assert.That(result.Frequency, Is.EqualTo(100));
}
[Test]
public void GetFilterClassFromString_ShouldReturnCFC600_When600()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("600");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC600));
Assert.That(result.Frequency, Is.EqualTo(1000));
}
[Test]
public void GetFilterClassFromString_ShouldReturnCFC600_WhenCFC600()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("CFC 600");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC600));
Assert.That(result.Frequency, Is.EqualTo(1000));
}
[Test]
public void GetFilterClassFromString_ShouldReturnUnfiltered_WhenInvalidInput()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("fg342");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.Unfiltered));
}
[Test]
public void GetFilterClassFromString_ShouldReturnNone_WhenNone()
{
//Act & Assert
var result = FilterClass.GetFilterClassFromString("None");
Assert.That(result.FClass, Is.EqualTo(FilterClassType.None));
}
[Test]
public void GetDefaultFilterClass_ShouldReturnUnfiltered_When0()
{
//Arrange
softwareFilters.Find(p => p.ISOCode == '0').IsDefault.Returns(true);
//Act & Assert
var result = FilterClass.GetDefaultFilterClass(softwareFilters);
Assert.That(result.FClass, Is.EqualTo(FilterClassType.Unfiltered));
}
[Test]
public void GetDefaultFilterClass_ShouldReturnNone_WhenP()
{
//Arrange
softwareFilters.Find(p => p.ISOCode == 'P').IsDefault.Returns(true);
//Act & Assert
var result = FilterClass.GetDefaultFilterClass(softwareFilters);
Assert.That(result.FClass, Is.EqualTo(FilterClassType.None));
}
[Test]
public void GetDefaultFilterClass_ShouldReturnCFC1000_WhenA()
{
//Arrange
softwareFilters.Find(p => p.ISOCode == 'A').IsDefault.Returns(true);
//Act & Assert
var result = FilterClass.GetDefaultFilterClass(softwareFilters);
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC1000));
}
[Test]
public void GetDefaultFilterClass_ShouldReturnCFC600_WhenB()
{
//Arrange
softwareFilters.Find(p => p.ISOCode == 'B').IsDefault.Returns(true);
//Act & Assert
var result = FilterClass.GetDefaultFilterClass(softwareFilters);
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC600));
}
[Test]
public void GetDefaultFilterClass_ShouldReturnCFC600_WhenC()
{
//Arrange
softwareFilters.Find(p => p.ISOCode == 'C').IsDefault.Returns(true);
//Act & Assert
var result = FilterClass.GetDefaultFilterClass(softwareFilters);
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC180));
}
[Test]
public void GetDefaultFilterClass_ShouldReturnCFC600_WhenD()
{
//Arrange
softwareFilters.Find(p => p.ISOCode == 'D').IsDefault.Returns(true);
//Act & Assert
var result = FilterClass.GetDefaultFilterClass(softwareFilters);
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC60));
}
[Test]
public void GetDefaultFilterClass_ShouldReturnAdhoc1700_WhenSAnd1700()
{
//Arrange
softwareFilters.Find(p => p.ISOCode == 'S' && p.Frequency == 1700.00).IsDefault.Returns(true);
//Act & Assert
var result = FilterClass.GetDefaultFilterClass(softwareFilters);
Assert.That(result.FClass, Is.EqualTo(FilterClassType.AdHoc));
Assert.That(result.Frequency, Is.EqualTo(1700.00));
}
[Test]
public void GetDefaultFilterClass_ShouldReturnCFC1000_WhenNull()
{
//Arrange
softwareFilters = null;
//Act & Assert
var result = FilterClass.GetDefaultFilterClass(softwareFilters);
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC1000));
}
[Test]
public void GetDefaultFilterClass_ShouldReturnCFC1000_WhenEmptyCollection()
{
//Arrange
softwareFilters = new List<ISoftwareFilter>();
//Act & Assert
var result = FilterClass.GetDefaultFilterClass(softwareFilters);
Assert.That(result.FClass, Is.EqualTo(FilterClassType.CFC1000));
}
[Test]
public void GetFrequencyFromFilterClassType_ShouldReturn1650_WhenCFC1000()
{
//Act & Assert
var result = FilterClass.GetFrequencyFromFilterClassType(FilterClassType.CFC1000);
Assert.That(result, Is.EqualTo(1650));
}
[Test]
public void GetFrequencyFromFilterClassType_ShouldReturn0_WhenNone()
{
//Act & Assert
var result = FilterClass.GetFrequencyFromFilterClassType(FilterClassType.None);
Assert.That(result, Is.EqualTo(0));
}
[Test]
public void GetFrequencyFromFilterClassType_ShouldReturnMinus2_WhenUnfiltered()
{
//Act & Assert
var result = FilterClass.GetFrequencyFromFilterClassType(FilterClassType.Unfiltered);
Assert.That(result, Is.EqualTo(-2));
}
[Test]
public void GetFrequencyFromFilterClassType_ShouldThrowException_WhenAdHoc()
{
//Act & Assert
Assert.That(
() => FilterClass.GetFrequencyFromFilterClassType(FilterClassType.AdHoc)
, Throws.TypeOf<Exception>()
.With
.Property("Message")
.EqualTo("GetFrequencyFromFilterClassType: AdHoc FilterClassType does not have frequency associated"));
}
}
}