From 80a4d2af5926babc205020b44924af72efa0ba5b Mon Sep 17 00:00:00 2001 From: David Sparer Date: Sun, 25 Sep 2016 12:10:48 -0600 Subject: [PATCH] Created tests for various bad version/schema scenarios --- ...sktopConnectionManagerDeserializerTests.cs | 26 ++++++++++- .../Properties/Resources.Designer.cs | 45 ++++++++++++++++++- mRemoteNGTests/Properties/Resources.resx | 9 ++++ .../test_rdcman_badVersionNumber.rdg | 6 +++ .../Resources/test_rdcman_noversion.rdg | 5 +++ .../test_rdcman_v2_2_badschemaversion.rdg | 6 +++ mRemoteNGTests/mRemoteNGTests.csproj | 4 ++ 7 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 mRemoteNGTests/Resources/test_rdcman_badVersionNumber.rdg create mode 100644 mRemoteNGTests/Resources/test_rdcman_noversion.rdg create mode 100644 mRemoteNGTests/Resources/test_rdcman_v2_2_badschemaversion.rdg diff --git a/mRemoteNGTests/Config/Serializers/RemoteDesktopConnectionManagerDeserializerTests.cs b/mRemoteNGTests/Config/Serializers/RemoteDesktopConnectionManagerDeserializerTests.cs index 5069a113..4e8fc2f5 100644 --- a/mRemoteNGTests/Config/Serializers/RemoteDesktopConnectionManagerDeserializerTests.cs +++ b/mRemoteNGTests/Config/Serializers/RemoteDesktopConnectionManagerDeserializerTests.cs @@ -6,7 +6,7 @@ using mRemoteNG.Container; using mRemoteNG.Tree; using mRemoteNGTests.Properties; using NUnit.Framework; - +using System.IO; namespace mRemoteNGTests.Config.Serializers { @@ -305,5 +305,29 @@ namespace mRemoteNGTests.Config.Serializers var connection = group1.Children.First(); Assert.That(connection.RDPAuthenticationLevel, Is.EqualTo(ExpectedAuthLevel)); } + + [Test] + public void ExceptionThrownOnBadSchemaVersion() + { + var badFileContents = Resources.test_rdcman_v2_2_badschemaversion; + var deserializer = new RemoteDesktopConnectionManagerDeserializer(badFileContents); + Assert.That(() => deserializer.Deserialize(), Throws.TypeOf()); + } + + [Test] + public void ExceptionThrownOnUnsupportedVersion() + { + var badFileContents = Resources.test_rdcman_badVersionNumber; + var deserializer = new RemoteDesktopConnectionManagerDeserializer(badFileContents); + Assert.That(() => deserializer.Deserialize(), Throws.TypeOf()); + } + + [Test] + public void ExceptionThrownOnNoVersion() + { + var badFileContents = Resources.test_rdcman_noversion; + var deserializer = new RemoteDesktopConnectionManagerDeserializer(badFileContents); + Assert.That(() => deserializer.Deserialize(), Throws.TypeOf()); + } } } \ No newline at end of file diff --git a/mRemoteNGTests/Properties/Resources.Designer.cs b/mRemoteNGTests/Properties/Resources.Designer.cs index 5d83327c..f0aa49cd 100644 --- a/mRemoteNGTests/Properties/Resources.Designer.cs +++ b/mRemoteNGTests/Properties/Resources.Designer.cs @@ -60,6 +60,47 @@ namespace mRemoteNGTests.Properties { } } + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<RDCMan schemaVersion="1"> + /// <version>99.99</version> + /// <file> + /// </file> + ///</RDCMan>. + /// + internal static string test_rdcman_badVersionNumber { + get { + return ResourceManager.GetString("test_rdcman_badVersionNumber", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<RDCMan schemaVersion="1"> + /// <file> + /// </file> + ///</RDCMan>. + /// + internal static string test_rdcman_noversion { + get { + return ResourceManager.GetString("test_rdcman_noversion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> + ///<RDCMan schemaVersion="-99"> + /// <version>2.2</version> + /// <file> + /// </file> + ///</RDCMan>. + /// + internal static string test_rdcman_v2_2_badschemaversion { + get { + return ResourceManager.GetString("test_rdcman_v2_2_badschemaversion", resourceCulture); + } + } + /// /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?> ///<RDCMan schemaVersion="1"> @@ -67,13 +108,13 @@ namespace mRemoteNGTests.Properties { /// <file> /// <properties> /// <name>test_rdcman_v2_2_schema1</name> - /// <expanded>False</expanded> + /// <expanded>True</expanded> /// <comment /> /// <logonCredentials inherit="FromParent" /> /// <connectionSettings inherit="FromParent" /> /// <gatewaySettings inherit="FromParent" /> /// <remoteDesktop inherit="FromParent" /> - /// <localResources inherit="FromParent" [rest of string was truncated]";. + /// <localResources inherit="FromParent" [rest of string was truncated]";. /// internal static string test_rdcman_v2_2_schema1 { get { diff --git a/mRemoteNGTests/Properties/Resources.resx b/mRemoteNGTests/Properties/Resources.resx index bf66714b..78cf04dc 100644 --- a/mRemoteNGTests/Properties/Resources.resx +++ b/mRemoteNGTests/Properties/Resources.resx @@ -121,6 +121,15 @@ ..\Resources\TestConfCons.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252 + + ..\Resources\test_rdcman_badVersionNumber.rdg;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + + ..\Resources\test_rdcman_noversion.rdg;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + + ..\Resources\test_rdcman_v2_2_badschemaversion.rdg;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\Resources\test_rdcman_v2_2_schema1.rdg;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 diff --git a/mRemoteNGTests/Resources/test_rdcman_badVersionNumber.rdg b/mRemoteNGTests/Resources/test_rdcman_badVersionNumber.rdg new file mode 100644 index 00000000..4ba46544 --- /dev/null +++ b/mRemoteNGTests/Resources/test_rdcman_badVersionNumber.rdg @@ -0,0 +1,6 @@ + + + 99.99 + + + \ No newline at end of file diff --git a/mRemoteNGTests/Resources/test_rdcman_noversion.rdg b/mRemoteNGTests/Resources/test_rdcman_noversion.rdg new file mode 100644 index 00000000..b5a0d65e --- /dev/null +++ b/mRemoteNGTests/Resources/test_rdcman_noversion.rdg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/mRemoteNGTests/Resources/test_rdcman_v2_2_badschemaversion.rdg b/mRemoteNGTests/Resources/test_rdcman_v2_2_badschemaversion.rdg new file mode 100644 index 00000000..185cfc42 --- /dev/null +++ b/mRemoteNGTests/Resources/test_rdcman_v2_2_badschemaversion.rdg @@ -0,0 +1,6 @@ + + + 2.2 + + + \ No newline at end of file diff --git a/mRemoteNGTests/mRemoteNGTests.csproj b/mRemoteNGTests/mRemoteNGTests.csproj index b513cf1b..87c59168 100644 --- a/mRemoteNGTests/mRemoteNGTests.csproj +++ b/mRemoteNGTests/mRemoteNGTests.csproj @@ -90,6 +90,7 @@ ..\packages\DockPanelSuite.ThemeVS2012Light.2.10.0\lib\net40\WeifenLuo.WinFormsUI.Docking.ThemeVS2012Light.dll True + @@ -165,6 +166,9 @@ + + +