From 71d5981b8de89bda9bdc032efebe8832d52e22a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20B=C3=B6rchers?= Date: Wed, 4 Apr 2018 20:28:52 +0200 Subject: [PATCH] Added unittest --- Creator/App.config | 22 +++---- Creator/KattekerCreator.csproj | 5 +- Example/Example.csproj | 2 +- Katteker.Test/Katteker.Test.csproj | 78 +++++++++++++++++++++++ Katteker.Test/KattekerLibTest.cs | 52 +++++++++++++++ Katteker.Test/Properties/AssemblyInfo.cs | 20 ++++++ Katteker.Test/packages.config | 5 ++ Katteker.Test/testdata/Example.exe | Bin 0 -> 35840 bytes Katteker.sln | 6 ++ Katteker/Properties/AssemblyInfo.cs | 2 + Katteker/UpdateManager.cs | 4 +- Katteker/Utility.cs | 9 +-- Katteker/VersionUtils.cs | 7 +- 13 files changed, 187 insertions(+), 25 deletions(-) create mode 100644 Katteker.Test/Katteker.Test.csproj create mode 100644 Katteker.Test/KattekerLibTest.cs create mode 100644 Katteker.Test/Properties/AssemblyInfo.cs create mode 100644 Katteker.Test/packages.config create mode 100644 Katteker.Test/testdata/Example.exe diff --git a/Creator/App.config b/Creator/App.config index 68ab0eb..a28c49f 100644 --- a/Creator/App.config +++ b/Creator/App.config @@ -1,26 +1,26 @@ - + - + - - + + - - + + - - + + - - + + - \ No newline at end of file + diff --git a/Creator/KattekerCreator.csproj b/Creator/KattekerCreator.csproj index 1000c2d..d9e03e2 100644 --- a/Creator/KattekerCreator.csproj +++ b/Creator/KattekerCreator.csproj @@ -9,15 +9,16 @@ Properties KattekerCreator KattekerCreator - v4.5 + v4.7 512 ..\ true + - x64 + AnyCPU true full false diff --git a/Example/Example.csproj b/Example/Example.csproj index 1013e13..5c31bb8 100644 --- a/Example/Example.csproj +++ b/Example/Example.csproj @@ -15,7 +15,7 @@ - x64 + AnyCPU true full false diff --git a/Katteker.Test/Katteker.Test.csproj b/Katteker.Test/Katteker.Test.csproj new file mode 100644 index 0000000..8dea54e --- /dev/null +++ b/Katteker.Test/Katteker.Test.csproj @@ -0,0 +1,78 @@ + + + + + Debug + AnyCPU + {76E9E47E-C810-4C13-BAC3-1F53CF4BCB92} + Library + Properties + Katteker.Test + Katteker.Test + v4.6.1 + 512 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 15.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages + False + UnitTest + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\MSTest.TestFramework.1.2.0\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll + + + ..\packages\MSTest.TestFramework.1.2.0\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll + + + + + + + + + + + + + + PreserveNewest + + + + + {A45E1C59-BA9E-452C-A5E2-50DE49D53E92} + Katteker + + + + + + + Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". + + + + + + \ No newline at end of file diff --git a/Katteker.Test/KattekerLibTest.cs b/Katteker.Test/KattekerLibTest.cs new file mode 100644 index 0000000..18775a7 --- /dev/null +++ b/Katteker.Test/KattekerLibTest.cs @@ -0,0 +1,52 @@ +using System; +using System.IO; +using System.Reflection; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace Katteker.Test +{ + [TestClass] + public class KattekerLibTest + { + private static readonly string BaseDir = AppDomain.CurrentDomain.BaseDirectory; + private static readonly string ExampleFile = Path.Combine(BaseDir, "testdata", "Example.exe"); + + [TestMethod] + public void Sha1ChecksumOfFile() + { + var actual = Utility.ComputeFileHash(ExampleFile); + const string expected = "0zgDmFuotnldZIyADoWrpiSDUx4="; + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void CheckIfStringIsWebUrl() + { + const string test1 = "http://TolleUrl.de/Test"; + const string test2 = "https://TolleUrl.de/Test"; + const string test3 = "C:\\Test"; + const string test4 = "furz"; + + Assert.IsTrue(Utility.IsWebUrl(test1)); + Assert.IsTrue(Utility.IsWebUrl(test2)); + Assert.IsFalse(Utility.IsWebUrl(test3)); + Assert.ThrowsException(() => Utility.IsWebUrl(test4)); + } + + [TestMethod] + public void CheckRightAssemblyName() + { + const string expected = "Example"; + var actual = Utility.GetApplicationName(Assembly.LoadFile(ExampleFile)); + Assert.AreEqual(expected, actual); + } + + [TestMethod] + public void CheckAssemblyVersionStuff() + { + var expected = new Semver.SemVersion(1, 0, 53); + var actual = VersionUtils.GetCurrentVersion(Assembly.LoadFile(ExampleFile)); + Assert.AreEqual(expected, actual); + } + } +} \ No newline at end of file diff --git a/Katteker.Test/Properties/AssemblyInfo.cs b/Katteker.Test/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..12c86c0 --- /dev/null +++ b/Katteker.Test/Properties/AssemblyInfo.cs @@ -0,0 +1,20 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +[assembly: AssemblyTitle("Katteker.Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Katteker.Test")] +[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: ComVisible(false)] + +[assembly: Guid("76e9e47e-c810-4c13-bac3-1f53cf4bcb92")] + +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Katteker.Test/packages.config b/Katteker.Test/packages.config new file mode 100644 index 0000000..cf2d094 --- /dev/null +++ b/Katteker.Test/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Katteker.Test/testdata/Example.exe b/Katteker.Test/testdata/Example.exe new file mode 100644 index 0000000000000000000000000000000000000000..7a9374d9dbae67f48d12341f60028c420cbdf0c3 GIT binary patch literal 35840 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 public class UpdateManager { - private static readonly string _baseDir = AppDomain.CurrentDomain.BaseDirectory; + private static readonly string BaseDir = AppDomain.CurrentDomain.BaseDirectory; private static KattekerConfig _config; private readonly string _applicationName; private readonly string _packageDir; @@ -133,7 +133,7 @@ namespace Katteker private static KattekerConfig ReadConfigFile() { - var configPath = Path.Combine(_baseDir, Constants.KattekerConfig); + var configPath = Path.Combine(BaseDir, Constants.KattekerConfig); if (!File.Exists(configPath)) throw new FileNotFoundException("Configuration file not found.", configPath); return KattekerConfig.ReadFromFile(configPath); } diff --git a/Katteker/Utility.cs b/Katteker/Utility.cs index 2992406..29ffbaf 100644 --- a/Katteker/Utility.cs +++ b/Katteker/Utility.cs @@ -15,17 +15,14 @@ namespace Katteker return Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); } - internal static string GetApplicationName() - { - return Assembly.GetEntryAssembly().GetName().Name; - } + internal static string GetApplicationName(Assembly assembly = null) => (assembly ?? Assembly.GetEntryAssembly()).GetName().Name; /// /// Is true if the url is a web-address. False otherwise. /// /// /// - public static bool IsWebUrl(string urlOrPath) + internal static bool IsWebUrl(string urlOrPath) { var uri = new Uri(urlOrPath); return uri.Scheme == "http" || uri.Scheme == "https"; @@ -37,7 +34,7 @@ namespace Katteker /// /// /// - public static string ComputeFileHash(string filename) + internal static string ComputeFileHash(string filename) { string sha1; var fileInfo = new FileInfo(filename); diff --git a/Katteker/VersionUtils.cs b/Katteker/VersionUtils.cs index b500be6..18fda63 100644 --- a/Katteker/VersionUtils.cs +++ b/Katteker/VersionUtils.cs @@ -12,11 +12,12 @@ namespace Katteker /// /// Get the current Version of Application. /// - public static SemVersion GetCurrentVersion() + public static SemVersion GetCurrentVersion(Assembly assembly = null) { - var assemblyVersion = Assembly.GetEntryAssembly().GetName().Version.ToString(3); + var a = assembly ?? Assembly.GetEntryAssembly(); + var assemblyVersion = a.GetName().Version.ToString(3); var getCurrentVersion = SemVersion.Parse(assemblyVersion); - var informalVersion = Assembly.GetEntryAssembly().GetCustomAttribute()?.InformationalVersion; + var informalVersion = a.GetCustomAttribute()?.InformationalVersion; if (informalVersion != null && SemVersion.TryParse(informalVersion, out var semVersion)) return semVersion; return getCurrentVersion;