Files
ChanSort/source/Test.Loader.Philips/PhilipsBinS2channellibTest.cs
Horst Beham 5705a435b4 - added unit tests for Enigma2 and Grundig loaders
- added round-trip unit test for all loaders to check reordering channels and favorites, saving and reloading
- internal code clean-up regarding different favorite list modes (none vs. flags vs. ordered per source vs. mixed source)
2021-03-14 22:13:22 +01:00

107 lines
4.0 KiB
C#

using System.IO;
using System.Linq;
using ChanSort.Api;
using ChanSort.Loader.Philips;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Test.Loader.Philips
{
[TestClass]
public class PhilipsBinS2channellibTest
{
[TestMethod]
public void TestFiles1()
{
var baseDir = Path.GetDirectoryName(this.GetType().Assembly.Location);
var baseFile = Path.Combine(baseDir, "TestFiles1\\Repair\\ChannelList\\chanLst.bin");
var plugin = new ChanSort.Loader.Philips.PhilipsPlugin();
var loader = plugin.CreateSerializer(baseFile);
loader.Load();
var list = loader.DataRoot.GetChannelList(SignalSource.DvbS);
Assert.AreEqual(5000, list.Channels.Count);
Assert.AreEqual(4975, list.Channels.Count(ch => !ch.IsDeleted));
var ch0 = list.Channels.FirstOrDefault(ch => ch.RecordIndex == 0);
Assert.IsTrue(ch0.IsDeleted);
var ch1 = list.Channels.FirstOrDefault(ch => ch.RecordIndex == 1);
Assert.AreEqual(2, ch1.OldProgramNr);
Assert.AreEqual("ZDF HD", ch1.Name);
Assert.AreEqual(11361, ch1.FreqInMhz);
Assert.AreEqual("Astra 1", ch1.Satellite);
Assert.AreEqual(1, ch1.OriginalNetworkId);
Assert.AreEqual(1011, ch1.TransportStreamId);
Assert.AreEqual(11110, ch1.ServiceId);
Assert.AreEqual(6110, ch1.PcrPid);
Assert.AreEqual(6110, ch1.VideoPid);
Assert.AreEqual(21999, ch1.SymbolRate);
Assert.AreEqual("ZDFvision", ch1.Provider);
}
[TestMethod]
public void TestFiles2()
{
var baseDir = Path.GetDirectoryName(this.GetType().Assembly.Location);
var baseFile = Path.Combine(baseDir, "TestFiles2\\Repair\\ChannelList\\chanLst.bin");
var plugin = new ChanSort.Loader.Philips.PhilipsPlugin();
var loader = plugin.CreateSerializer(baseFile);
loader.Load();
var list = loader.DataRoot.GetChannelList(SignalSource.DvbS);
Assert.AreEqual(5000, list.Channels.Count);
Assert.AreEqual(1326, list.Channels.Count(ch => !ch.IsDeleted));
var ch0 = list.Channels.FirstOrDefault(ch => ch.RecordIndex == 0);
Assert.AreEqual(1, ch0.OldProgramNr);
Assert.AreEqual("Das Erste HD", ch0.Name);
Assert.AreEqual(11493, ch0.FreqInMhz);
Assert.AreEqual("Astra 1", ch0.Satellite);
//Assert.AreEqual(1, ch0.OriginalNetworkId);
Assert.AreEqual(1019, ch0.TransportStreamId);
Assert.AreEqual(10301, ch0.ServiceId);
//Assert.AreEqual(6110, ch1.PcrPid);
//Assert.AreEqual(6110, ch1.VideoPid);
Assert.AreEqual(21999, ch0.SymbolRate);
Assert.AreEqual("ARD", ch0.Provider);
Assert.IsFalse(ch0.Lock);
Assert.AreEqual((Favorites)0, ch0.Favorites);
Assert.IsFalse(ch0.IsDeleted);
var ch2 = list.Channels.FirstOrDefault(ch => ch.RecordIndex == 2);
Assert.AreEqual("NDR FS HH", ch2.Name);
Assert.IsTrue(ch2.Lock);
Assert.AreEqual((Favorites)0, ch2.Favorites);
var ch3 = list.Channels.FirstOrDefault(ch => ch.RecordIndex == 3);
Assert.AreEqual("SAT.1", ch3.Name);
Assert.AreEqual(Favorites.A, ch3.Favorites);
var ch4 = list.Channels.FirstOrDefault(ch => ch.RecordIndex == 4);
Assert.AreEqual("arte HD", ch4.Name);
Assert.AreEqual(Favorites.A, ch4.Favorites);
var ch7 = list.Channels.FirstOrDefault(ch => ch.RecordIndex == 7);
Assert.AreEqual("RTL2", ch7.Name);
Assert.AreEqual(Favorites.A, ch7.Favorites);
var ch8 = list.Channels.FirstOrDefault(ch => ch.RecordIndex == 8);
Assert.IsTrue(ch8.IsDeleted);
Assert.AreEqual(1, ch4.GetOldPosition(1));
Assert.AreEqual(2, ch7.GetOldPosition(1));
Assert.AreEqual(3, ch3.GetOldPosition(1));
}
#region TestChannelAndFavListEditing
[TestMethod]
public void TestChannelAndFavListEditing()
{
var tempFile = TestUtils.DeploymentItem("Test.Loader.Philips\\TestFiles2\\Repair\\ChannelList") + "\\chanLst.bin";
RoundtripTest.TestChannelAndFavListEditing(tempFile, new PhilipsPlugin());
}
#endregion
}
}