protected void ExecuteTest(string modelAndBaseName) { // copy required input and assertion files DeploymentItem("ChanSort.Loader.LG\\ChanSort.Loader.LG.ini"); DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".TLL.in"); DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".csv.in"); DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".TLL.out"); var baseName = Path.GetFileNameWithoutExtension(modelAndBaseName); // load the TLL file TllFileSerializerPlugin plugin = new TllFileSerializerPlugin(); 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.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"); }
private void ExecuteTest(string modelAndBaseName, bool generateReferenceFile = false) { // copy required input and assertion files DeploymentItem("ChanSort.Loader.LG\\ChanSort.Loader.LG.ini"); DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".TLL.in"); DeploymentItem("Test.Loader.LG\\" + modelAndBaseName + ".TLL.out"); var baseName = Path.GetFileNameWithoutExtension(modelAndBaseName); // load the TLL file TllFileSerializerPlugin plugin = new TllFileSerializerPlugin(); 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, this.GetSolutionBaseDir() + "\\Test.Loader.LG\\" + modelAndBaseName + ".TLL.out", true); else AssertBinaryFileContent(tempFile, baseName + ".TLL.out"); }
public void TestLgTllLoader() { var expectedData = this.InitExpectedLgData(); TllFileSerializerPlugin plugin = new TllFileSerializerPlugin(); 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") || file.Contains("CountrySettings")) continue; Debug.Print("Testing " + file); try { var serializer = plugin.CreateSerializer(file) as TllFileSerializer; Assert.IsNotNull(serializer, "No Serializer for " + file); 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()); }