Files
ChanSort/source/Test.Loader.Samsung/FileFormatDetectionTest.cs
hbeham ff96a36cc7 - added tests for Samsung .scm files
- fixed some rare file-format detection issues for Samsung (e.g. J-series with .scm format, HExxC, LTxxC)
2015-11-27 23:47:09 +01:00

86 lines
2.4 KiB
C#

using System;
using System.IO;
using System.Text;
using ChanSort.Loader.Samsung;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Test.Loader.Samsung
{
[TestClass]
public class FileFormatDetectionTest
{
private readonly StringBuilder errors = new StringBuilder();
private const string RootPath = @"d:\sources\ChanSort\TestFiles_Samsung\";
#region LoadAllFilesAndLogDetecedFileFormat()
[TestMethod]
public void LoadAllFilesAndLogDetecedFileFormat()
{
RecurseInto(RootPath);
Assert.AreEqual("", errors.ToString());
}
private void RecurseInto(string dir)
{
foreach (var path in Directory.GetFiles(dir, "*.scm"))
{
if (path.Contains("_null"))
continue;
try
{
var s = new ScmSerializer(path);
s.Load();
var series = s.Series;
System.Diagnostics.Debug.WriteLine($"{path.Substring(RootPath.Length)}: {series}");
}
catch (Exception ex)
{
errors.AppendLine($"{path.Substring(RootPath.Length)} : {ex.Message}");
}
}
foreach (var path in Directory.GetDirectories(dir))
RecurseInto(path);
}
#endregion
[TestMethod]
public void LoadFileWithExcessiveHighFrequency_1()
{
// this seems to be a corrupt file caused by a buffer-overflow from analog channel names into the frequency data bytes
var s = new ScmSerializer(RootPath + @"ThomasSaur_DH\channel_list_UE55H6470_1201-Suchlauf-2015-04-26.scm");
s.Load();
}
[TestMethod]
public void LoadFileWithExcessiveHighFrequency_2()
{
// this seems to be a corrupt file caused by a buffer-overflow from analog channel names into the frequency data bytes
var s = new ScmSerializer(RootPath + @"ThomasSaur_DH\channel_list_UE55H6470_1201.scm");
s.Load();
}
[TestMethod]
public void LoadRenamedFile_HE40Cxxx_1201()
{
// This file uses the 1201 format (E,F,H,J), but has a "C" in its model name
var s = new ScmSerializer(RootPath + @"__C=F\Kinig\Reier Monika.scm");
s.Load();
Assert.AreEqual("F", s.Series);
}
[TestMethod]
public void LoadRenamedFile_LT24B_1201()
{
// This file uses the 1201 format (E,F,H,J), but has a "B" in its model name
var s = new ScmSerializer(RootPath + @"__B=F\DieterHerzberg_B\renamed.scm");
s.Load();
Assert.AreEqual("F", s.Series);
}
}
}