Files
ChanSort/source/Test.Loader.Samsung/FileFormatDetectionTest.cs

86 lines
2.5 KiB
C#
Raw Normal View History

using System;
using System.IO;
using ChanSort.Loader.Samsung;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Test.Loader.Samsung
{
[TestClass]
public class FileFormatDetectionTest
{
private static readonly string RootPath;
static FileFormatDetectionTest()
{
RootPath = GetSolutionBaseDir() + @"\Test.Loader.Samsung\TestFiles\";
}
#region GetSolutionBaseDir()
protected static string GetSolutionBaseDir()
{
var dir = Path.GetDirectoryName(typeof(FileFormatDetectionTest).Assembly.Location);
do
{
if (File.Exists(dir + "\\ChanSort.sln"))
return dir;
dir = Path.GetDirectoryName(dir);
} while (!string.IsNullOrEmpty(dir));
dir = Environment.CurrentDirectory;
do
{
if (File.Exists(dir + "\\ChanSort.sln"))
return dir;
dir = Path.GetDirectoryName(dir);
} while (!string.IsNullOrEmpty(dir));
throw new InvalidOperationException("Cannot determine base directory of ChanSort solution");
}
#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 + @"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 + @"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 + @"E_format_with_C_model_name.scm");
s.Load();
Assert.AreEqual("E", 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 + @"E_format_with_C_model_name.scm");
s.Load();
Assert.AreEqual("E", s.Series);
}
2015-11-28 20:50:52 +01:00
[TestMethod]
public void LoadJSeriesWithScm1201Format()
{
// J-series model with E-J series SCM format
var s = new ScmSerializer(RootPath + @"channel_list_UE32J5170_1201_orig.scm");
2015-11-28 20:50:52 +01:00
s.Load();
Assert.AreEqual("E", s.Series);
2015-11-28 20:50:52 +01:00
}
}
}