using System.Linq; using ChanSort.Api; using ChanSort.Loader.Samsung; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace Test.Loader.Samsung.Zip { [TestClass] public class SamsungZipTest { #region TestSatChannelsAddedToCorrectLists [TestMethod] public void TestSatChannelsAddedToCorrectLists() { this.TestChannelsAddedToCorrectLists("Channel_list_T-KTSUDEUC-1007.1.zip", SignalSource.DvbS, 1323, 878, 380, 4008, "Humax ESD 160C"); } #endregion #region TestCableChannelsAddedToCorrectLists [TestMethod] public void TestCableChannelsAddedToCorrectLists() { this.TestChannelsAddedToCorrectLists("Channel_list_T-KTMDEUC-1132.6.zip", SignalSource.DvbC, 146, 65, 75, 4008, "Humax 160C"); } #endregion #region TestAntennaChannelsAddedToCorrectLists [TestMethod] public void TestAntennaChannelsAddedToCorrectLists() { this.TestChannelsAddedToCorrectLists("Channel_list_T-KTSUDEUC-1007.2.zip", SignalSource.DvbT, 77, 71, 4, 3995, "Irdeto Code 4"); } #endregion #region TestChannelsAddedToCorrectList private void TestChannelsAddedToCorrectLists(string fileName, SignalSource signalSource, int expectedTotal, int expectedTv, int expectedRadio, int dataProgramSid = 0, string dataProgramName = null) { var tempFile = TestUtils.DeploymentItem("Test.Loader.Samsung\\Zip\\TestFiles\\" + fileName); var plugin = new SamsungPlugin(); var ser = plugin.CreateSerializer(tempFile); ser.Load(); var root = ser.DataRoot; var list = root.GetChannelList(signalSource); Assert.IsNotNull(list); Assert.AreEqual(expectedTotal, list.Channels.Count); Assert.AreEqual(expectedTv, list.Channels.Count(ch => (ch.SignalSource & SignalSource.Tv) != 0)); Assert.AreEqual(expectedRadio, list.Channels.Count(ch => (ch.SignalSource & SignalSource.Radio) != 0)); // check that data channel is in the TV list if (dataProgramSid != 0) { var chan = list.Channels.FirstOrDefault(ch => ch.ServiceId == dataProgramSid); Assert.IsNotNull(chan); Assert.AreEqual(dataProgramName, chan.Name); } } #endregion #region TestDeletingChannel [TestMethod] public void TestDeletingChannel() { var tempFile = TestUtils.DeploymentItem("Test.Loader.Samsung\\Zip\\TestFiles\\Channel_list_T-KTSUDEUC-1007.3.zip"); var plugin = new SamsungPlugin(); var ser = plugin.CreateSerializer(tempFile); ser.Load(); var data = ser.DataRoot; data.ValidateAfterLoad(); data.ApplyCurrentProgramNumbers(); // Pr# 418 = ORF2E var dvbs = data.GetChannelList(SignalSource.DvbS); var orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E"); Assert.IsNotNull(orf2e); Assert.AreEqual(418, orf2e.OldProgramNr); Assert.AreEqual(418, orf2e.NewProgramNr); Assert.IsFalse(orf2e.IsDeleted); orf2e.NewProgramNr = -1; data.AssignNumbersToUnsortedAndDeletedChannels(UnsortedChannelMode.Delete); Assert.IsTrue(orf2e.IsDeleted); Assert.AreNotEqual(-1, orf2e.NewProgramNr); Assert.AreEqual(1, dvbs.Channels.Count(ch => ch.NewProgramNr <= 0)); // save and reload ser.Save(tempFile); ser = plugin.CreateSerializer(tempFile); ser.Load(); data = ser.DataRoot; data.ValidateAfterLoad(); data.ApplyCurrentProgramNumbers(); dvbs = data.GetChannelList(SignalSource.DvbS); orf2e = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2E"); Assert.IsNull(orf2e); } #endregion #region TestChannelAndFavListEditing [TestMethod] public void TestChannelAndFavListEditing() { var tempFile = TestUtils.DeploymentItem("Test.Loader.Samsung\\Zip\\TestFiles\\Channel_list_T-KTMDEUC-1132.6.zip"); RoundtripTest.TestChannelAndFavListEditing(tempFile, new SamsungPlugin()); } #endregion } }