Ejemplo n.º 1
0
        private void ChannelsAddedToCorrectLists(string fileName, SignalSource signalSource, int expectedTv, int expectedRadio, int dataProgramSid, string dataProgramName)
        {
            var testFile = TestUtils.DeploymentItem("Test.Loader.LG\\GlobalClone\\" + fileName);
            var plugin   = new LgPlugin();
            var ser      = plugin.CreateSerializer(testFile);

            ser.Load();

            var root = ser.DataRoot;

            var tv = root.GetChannelList(signalSource | SignalSource.Tv);

            Assert.IsNotNull(tv);
            Assert.AreEqual(expectedTv, tv.Channels.Count);

            var radio = root.GetChannelList(signalSource | SignalSource.Radio);

            Assert.IsNotNull(radio);
            Assert.AreEqual(expectedRadio, radio.Channels.Count);

            // check that data channel is in the TV list
            var chan = tv.Channels.FirstOrDefault(ch => ch.ServiceId == dataProgramSid);

            Assert.IsNotNull(chan);
            Assert.AreEqual(dataProgramName, chan.Name);
        }
Ejemplo n.º 2
0
        private void ExecuteTest(string modelAndBaseName, bool generateReferenceFile = false)
        {
            // copy required input and assertion files
            TestUtils.DeploymentItem("ChanSort.Loader.LG\\ChanSort.Loader.LG.ini");
            TestUtils.DeploymentItem("Test.Loader.LG\\Binary\\" + modelAndBaseName + ".TLL.in");
            TestUtils.DeploymentItem("Test.Loader.LG\\Binary\\" + modelAndBaseName + ".TLL.out");

            var baseName = Path.GetFileNameWithoutExtension(modelAndBaseName);

            // load the TLL file
            var plugin     = new LgPlugin();
            var serializer = (TllFileSerializer)plugin.CreateSerializer(baseName + ".TLL.in");

            serializer.IsTesting = true;
            serializer.Load();
            serializer.DataRoot.ApplyCurrentProgramNumbers();

            // save TLL file and compare to reference file
            serializer.CleanUpChannelData();
            serializer.Save(tempFile);
            if (generateReferenceFile)
            {
                File.Copy(tempFile, TestUtils.GetSolutionBaseDir() + "\\Test.Loader.LG\\" + modelAndBaseName + ".TLL.out", true);
            }
            else
            {
                AssertBinaryFileContent(tempFile, baseName + ".TLL.out");
            }
        }
Ejemplo n.º 3
0
        public void TestGlobalClone200JsonFormat()
        {
            var tempFile = TestUtils.DeploymentItem("Test.Loader.LG\\GlobalClone\\GlobalClone00201.TLL");
            var orig     = File.ReadAllText(tempFile, Encoding.UTF8);

            var plugin = new LgPlugin();
            var ser    = plugin.CreateSerializer(tempFile);

            ser.Load();
            var data = ser.DataRoot;

            data.ValidateAfterLoad();
            data.ApplyCurrentProgramNumbers();
            var dvbs = data.GetChannelList(SignalSource.DvbS);

            // swap SRF 1 HD and SRF zwei HD
            var srf1 = dvbs.Channels.FirstOrDefault(ch => ch.Name == "SRF 1 HD");
            var srf2 = dvbs.Channels.FirstOrDefault(ch => ch.Name == "SRF zwei HD");

            Assert.AreEqual(1971, srf1.NewProgramNr);
            Assert.AreEqual(1972, srf2.NewProgramNr);
            srf1.NewProgramNr = 1972;
            srf2.NewProgramNr = 1971;

            // save and reload
            ser.Save(tempFile);
            ser = plugin.CreateSerializer(tempFile);
            ser.Load();
            data = ser.DataRoot;
            data.ValidateAfterLoad();
            data.ApplyCurrentProgramNumbers();

            dvbs = data.GetChannelList(SignalSource.DvbS);
            srf1 = dvbs.Channels.FirstOrDefault(ch => ch.Name == "SRF 1 HD");
            srf2 = dvbs.Channels.FirstOrDefault(ch => ch.Name == "SRF zwei HD");
            Assert.AreEqual(1972, srf1.OldProgramNr);
            Assert.AreEqual(1971, srf2.OldProgramNr);

            // restore original program numbers and save
            srf1.NewProgramNr = 1971;
            srf2.NewProgramNr = 1972;
            ser.Save(tempFile);

            // undo expected changes to the file
            var changed = File.ReadAllText(tempFile, Encoding.UTF8);

            changed = changed.Replace("\"userEditChNumber\":true", "\"userEditChNumber\":false");
            changed = changed.Replace("\"userSelCHNo\":true", "\"userSelCHNo\":false");
            NUnit.Framework.Assert.AreEqual(orig, changed); // need NUnit.AreEqual to only show the actual difference and not 5MB + 5MB of data
        }
Ejemplo n.º 4
0
        public void TestDeletingChannel()
        {
            var tempFile = TestUtils.DeploymentItem("Test.Loader.LG\\Binary\\LM\\xxLM620s-ZE00001.TLL.in");
            var plugin   = new LgPlugin();
            var ser      = plugin.CreateSerializer(tempFile);

            ser.Load();
            var data = ser.DataRoot;

            data.ValidateAfterLoad();
            data.ApplyCurrentProgramNumbers();

            // Pr# 127 = ORF2 HD

            var dvbs = data.GetChannelList(SignalSource.DvbS);
            var orf2 = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2 HD");

            Assert.AreEqual(127, orf2.OldProgramNr);
            Assert.AreEqual(127, orf2.NewProgramNr);
            Assert.IsFalse(orf2.IsDeleted);

            orf2.NewProgramNr = -1;
            data.AssignNumbersToUnsortedAndDeletedChannels(UnsortedChannelMode.Delete);

            Assert.IsTrue(orf2.IsDeleted);
            Assert.AreEqual(0, orf2.NewProgramNr);

            // save and reload
            ser.Save(tempFile);
            ser = plugin.CreateSerializer(tempFile);
            ser.Load();
            data = ser.DataRoot;
            data.ValidateAfterLoad();
            data.ApplyCurrentProgramNumbers();

            dvbs = data.GetChannelList(SignalSource.DvbS);
            orf2 = dvbs.Channels.FirstOrDefault(ch => ch.Name == "ORF2 HD");

            Assert.IsTrue(orf2.IsDeleted);
            Assert.AreEqual(-1, orf2.OldProgramNr);
            Assert.AreEqual(-1, orf2.NewProgramNr);
        }
Ejemplo n.º 5
0
        protected void ExecuteTest(string modelAndBaseName)
        {
            // copy required input and assertion files
            TestUtils.DeploymentItem("ChanSort.Loader.LG\\ChanSort.Loader.LG.ini");
            TestUtils.DeploymentItem("Test.Loader.LG\\Binary\\" + modelAndBaseName + ".TLL.in");
            TestUtils.DeploymentItem("Test.Loader.LG\\Binary\\" + modelAndBaseName + ".csv.in");
            TestUtils.DeploymentItem("Test.Loader.LG\\Binary\\" + modelAndBaseName + ".TLL.out");

            var baseName = Path.GetFileNameWithoutExtension(modelAndBaseName);

            // load the TLL file
            var plugin     = new LgPlugin();
            var serializer = (TllFileSerializer)plugin.CreateSerializer(baseName + ".TLL.in");

            serializer.IsTesting = true;
            serializer.Load();

            // verify channel name, number, favorites, ... against a reference list
            var data = serializer.DataRoot;

            data.ValidateAfterLoad();
            data.ApplyCurrentProgramNumbers();
            AssertRefListContent(data, baseName + ".csv.in");

            // modify channel lists
            Editor editor = new Editor();

            editor.DataRoot = data;
            foreach (var list in data.ChannelLists)
            {
                var channels = this.Get2ndProgramNumber(list);
                if (channels != null)
                {
                    editor.ChannelList = list;
                    editor.MoveChannels(channels, true);
                }
            }

            // save TLL file and compate to reference file
            serializer.Save(tempFile);
            AssertBinaryFileContent(tempFile, baseName + ".TLL.out");
        }
Ejemplo n.º 6
0
        public void TestLgTllLoader()
        {
            var expectedData = this.InitExpectedLgData();
            var plugin       = new LgPlugin();

            StringBuilder errors       = new StringBuilder();
            var           list         = this.FindAllFiles("TestFiles_LG", "*.tll");
            var           models       = new Dictionary <string, string>();
            var           firmwareSize = new Dictionary <int, string>();

            foreach (var file in list)
            {
                if (file.Contains("GlobalClone"))
                {
                    continue;
                }
                //Debug.Print("Testing " + file);
                try
                {
                    var ser = plugin.CreateSerializer(file);
                    Assert.IsNotNull(ser, "No Serializer for " + file);

                    // ignore GlobalClone XML based files which slipped through the file name check above
                    var serializer = ser as TllFileSerializer;
                    if (serializer == null)
                    {
                        continue;
                    }

                    serializer.IsTesting = true;
                    serializer.Load();

                    var    fileName       = Path.GetFileName(file) ?? "";
                    var    model          = this.GetLgModel(file);
                    var    analogList     = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.AnalogCT | ChanSort.Api.SignalSource.Tv);
                    var    dvbcList       = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.DvbC | ChanSort.Api.SignalSource.Tv);
                    var    dvbtList       = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.DvbT | ChanSort.Api.SignalSource.Tv);
                    var    satChannelList = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.DvbS | ChanSort.Api.SignalSource.Tv);
                    string key            =
                        model +
                        "\t" + serializer.ACTChannelLength +
                        "\t" + (analogList != null && analogList.Count > 0) +
                        "\t" + (dvbtList != null && dvbtList.Count > 0) +
                        "\t" + (dvbcList != null && dvbcList.Count > 0) +
                        "\t" + serializer.SatChannelLength +
                        "\t" + (satChannelList != null && satChannelList.Count > 0) +
                        "\t" + (dvbtList != null && dvbtList.PresetProgramNrCount > 0) +
                        "\t" + (dvbcList != null && dvbcList.PresetProgramNrCount > 0) +
                        "\t" + (satChannelList != null && satChannelList.PresetProgramNrCount > 0) +
                        "\t" + serializer.TvCountryCode;

                    string relPath = Path.GetFileName(Path.GetDirectoryName(file)) + "\\" + fileName;
                    models[key] = model +
                                  "\t" + serializer.ACTChannelLength +
                                  "\t" + serializer.SatChannelLength +
                                  "\t" + (analogList == null ? 0 : analogList.Count) +
                                  "\t" + (dvbtList == null ? 0 : dvbtList.Count) +
                                  "\t" + (dvbcList == null ? 0 : dvbcList.Count) +
                                  "\t" + (satChannelList == null ? 0 : satChannelList.Count) +
                                  "\t" + (dvbtList == null ? 0 : dvbtList.PresetProgramNrCount) +
                                  "\t" + (dvbcList == null ? 0 : dvbcList.PresetProgramNrCount) +
                                  "\t" + (satChannelList == null ? 0 : satChannelList.PresetProgramNrCount) +
                                  "\t" + serializer.TvCountryCode +
                                  "\t" + serializer.DvbsSymbolRateCorrectionFactor +
                                  "\t" + relPath;


                    if (firmwareSize.ContainsKey(serializer.FirmwareBlockSize))
                    {
                        string x = firmwareSize[serializer.FirmwareBlockSize];
                        if (!x.Contains(model))
                        {
                            firmwareSize[serializer.FirmwareBlockSize] = x + ", " + model;
                        }
                    }
                    else
                    {
                        firmwareSize[serializer.FirmwareBlockSize] = model;
                    }



                    Assert.IsFalse(serializer.DataRoot.IsEmpty, "No channels loaded from " + file);

                    ExpectedData exp;
                    key = Path.GetFileName(Path.GetDirectoryName(file)) + "\\" + Path.GetFileName(file);
                    if (expectedData.TryGetValue(key, out exp))
                    {
                        var analogTv = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.AnalogCT | ChanSort.Api.SignalSource.Tv);
                        var dvbcTv   = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.DvbC | ChanSort.Api.SignalSource.Tv);
                        var dvbtTv   = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.DvbT | ChanSort.Api.SignalSource.Tv);
                        var dtvTv    = dvbcTv.Channels.Count > 0 ? dvbcTv : dvbtTv;
                        var satTv    = serializer.DataRoot.GetChannelList(ChanSort.Api.SignalSource.DvbS | ChanSort.Api.SignalSource.Tv);
                        expectedData.Remove(key);
                        Assert.AreEqual(exp.AnalogChannels, analogTv.Channels.Count, file + ": analog");
                        Assert.AreEqual(exp.DtvChannels, dtvTv.Channels.Count, file + ": DTV");
                        if (exp.SatChannels != 0)
                        {
                            Assert.AreEqual(exp.SatChannels, satTv.Channels.Count, file + ": Sat");
                        }
                    }
                }
                catch (Exception ex)
                {
                    errors.AppendLine();
                    errors.AppendLine();
                    errors.AppendLine(file);
                    errors.AppendLine(ex.ToString());
                }
            }

            foreach (var model in models.OrderBy(e => e.Key))
            {
                Debug.WriteLine(model.Value);
            }

            foreach (var size in firmwareSize.OrderBy(e => e.Key))
            {
                Debug.WriteLine(size.Key + "\t" + size.Value);
            }

            if (expectedData.Count > 0)
            {
                Assert.Fail("Some files were not tested: " + expectedData.Keys.Aggregate((prev, cur) => prev + "," + cur));
            }
            Assert.AreEqual("", errors.ToString());
        }