ResXDataNodeAliasTests.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. //
  2. // ResXDataNodeAliasTests.cs : These tests are not a lot of use. Support for
  3. // Aliases not implemented as of Aug 2012.
  4. // FIXME: delete these tests?
  5. //
  6. // Author:
  7. // Gary Barnett ([email protected])
  8. //
  9. // Copyright (C) Gary Barnett (2012)
  10. //
  11. // Permission is hereby granted, free of charge, to any person obtaining
  12. // a copy of this software and associated documentation files (the
  13. // "Software"), to deal in the Software without restriction, including
  14. // without limitation the rights to use, copy, modify, merge, publish,
  15. // distribute, sublicense, and/or sell copies of the Software, and to
  16. // permit persons to whom the Software is furnished to do so, subject to
  17. // the following conditions:
  18. //
  19. // The above copyright notice and this permission notice shall be
  20. // included in all copies or substantial portions of the Software.
  21. //
  22. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  23. // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  24. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  25. // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  26. // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  27. // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  28. // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  29. using System;
  30. using System.IO;
  31. using System.Reflection;
  32. using System.Resources;
  33. using System.Collections;
  34. using NUnit.Framework;
  35. namespace MonoTests.System.Resources {
  36. [TestFixture]
  37. public class ResXDataNodeAliasTests : ResourcesTestHelper {
  38. [Test, ExpectedException (typeof (TypeLoadException))]
  39. public void CantAccessValueWereOnlyFullNameInResXForEmbedded () // same as validity check in assemblynames tests
  40. {
  41. ResXDataNode node = GetNodeFromResXReader (convertableResX);
  42. Assert.IsNotNull (node, "#A1");
  43. object obj = node.GetValue ((AssemblyName []) null);
  44. }
  45. [Test, ExpectedException (typeof (TypeLoadException))]
  46. public void CantAccessValueWereOnlyFullNameAndAliasInResXForEmbedded ()
  47. {
  48. ResXDataNode node = GetNodeFromResXReader (convertableResXAlias);
  49. Assert.IsNotNull (node, "#A1");
  50. object obj = node.GetValue ((AssemblyName []) null);
  51. }
  52. [Test]
  53. public void CanAccessValueWereOnlyFullNameAndAssemblyInResXForEmbedded ()
  54. {
  55. ResXDataNode node = GetNodeFromResXReader (convertableResXAssembly);
  56. Assert.IsNotNull (node, "#A1");
  57. object obj = node.GetValue ((AssemblyName []) null);
  58. // this is the qualified name of the assembly found in dir
  59. string aName = "DummyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null";
  60. Assert.AreEqual ("DummyAssembly.Convertable, " + aName, obj.GetType ().AssemblyQualifiedName, "#A2");
  61. }
  62. [Test]
  63. public void CanAccessValueWereFullNameAndQualifiedAssemblyInResXForEmbedded ()
  64. {
  65. ResXDataNode node = GetNodeFromResXReader (convertableResXQualifiedAssemblyName);
  66. Assert.IsNotNull (node, "#A1");
  67. object obj = node.GetValue ((AssemblyName []) null);
  68. string aName = "DummyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null";
  69. Assert.AreEqual ("DummyAssembly.Convertable, " + aName, obj.GetType ().AssemblyQualifiedName, "#A2");
  70. }
  71. static string convertableResX =
  72. @"<?xml version=""1.0"" encoding=""utf-8""?>
  73. <root>
  74. <resheader name=""resmimetype"">
  75. <value>text/microsoft-resx</value>
  76. </resheader>
  77. <resheader name=""version"">
  78. <value>2.0</value>
  79. </resheader>
  80. <resheader name=""reader"">
  81. <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  82. </resheader>
  83. <resheader name=""writer"">
  84. <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  85. </resheader>
  86. <data name=""test"" type=""DummyAssembly.Convertable"">
  87. <value>im a name im a value</value>
  88. </data>
  89. </root>";
  90. static string convertableResXAssembly =
  91. @"<?xml version=""1.0"" encoding=""utf-8""?>
  92. <root>
  93. <resheader name=""resmimetype"">
  94. <value>text/microsoft-resx</value>
  95. </resheader>
  96. <resheader name=""version"">
  97. <value>2.0</value>
  98. </resheader>
  99. <resheader name=""reader"">
  100. <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  101. </resheader>
  102. <resheader name=""writer"">
  103. <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  104. </resheader>
  105. <data name=""test"" type=""DummyAssembly.Convertable, DummyAssembly"">
  106. <value>im a name im a value</value>
  107. </data>
  108. </root>";
  109. static string convertableResXAlias =
  110. @"<?xml version=""1.0"" encoding=""utf-8""?>
  111. <root>
  112. <resheader name=""resmimetype"">
  113. <value>text/microsoft-resx</value>
  114. </resheader>
  115. <resheader name=""version"">
  116. <value>2.0</value>
  117. </resheader>
  118. <resheader name=""reader"">
  119. <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  120. </resheader>
  121. <resheader name=""writer"">
  122. <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  123. </resheader>
  124. <assembly alias=""DummyAssembly"" name=""DummyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"" />
  125. <data name=""test"" type=""DummyAssembly.Convertable"">
  126. <value>im a name im a value</value>
  127. </data>
  128. </root>";
  129. static string convertableResXQualifiedAssemblyName =
  130. @"<?xml version=""1.0"" encoding=""utf-8""?>
  131. <root>
  132. <resheader name=""resmimetype"">
  133. <value>text/microsoft-resx</value>
  134. </resheader>
  135. <resheader name=""version"">
  136. <value>2.0</value>
  137. </resheader>
  138. <resheader name=""reader"">
  139. <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  140. </resheader>
  141. <resheader name=""writer"">
  142. <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  143. </resheader>
  144. <data name=""test"" type=""DummyAssembly.Convertable, DummyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"">
  145. <value>im a name im a value</value>
  146. </data>
  147. </root>";
  148. }
  149. }