EvidenceTest.cs 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. //
  2. // MonoTests.System.Security.Policy.EvidenceTest
  3. //
  4. // Author(s):
  5. // Jackson Harper ([email protected])
  6. //
  7. // (C) 2001 Jackson Harper, All rights reserved.
  8. using System;
  9. using System.Collections;
  10. using System.Security.Policy;
  11. using NUnit.Framework;
  12. namespace MonoTests.System.Security.Policy
  13. {
  14. public class EvidenceTest : TestCase
  15. {
  16. protected override void SetUp()
  17. {
  18. }
  19. public void TestDefaultConstructor()
  20. {
  21. Evidence evidence = new Evidence ();
  22. AssertEquals ("Default constructor count should be zero", evidence.Count, 0);
  23. AssertEquals ("Default constructor host enumerator MoveNext() should be false",
  24. evidence.GetHostEnumerator().MoveNext(), false);
  25. AssertEquals ("Default constructor assembly enumerator MoveNext() should be false",
  26. evidence.GetAssemblyEnumerator().MoveNext(), false);
  27. AssertEquals ("Default constructor enumerator MoveNext() should be false",
  28. evidence.GetEnumerator().MoveNext(), false);
  29. }
  30. public void TestMultipleConstructor() {
  31. Evidence evidence;
  32. object[] hostarray = new object[10];
  33. object[] assemarray = new object[10];
  34. evidence = new Evidence ( hostarray, assemarray );
  35. AssertEquals ( "Count of multiple arg constructor should equal 20", evidence.Count, 20 );
  36. }
  37. public void TestCopyConstructor()
  38. {
  39. Evidence evidence1, evidence2;
  40. object[] hostlist = { "host-1", "host-2", "host-3", "host-4" };
  41. object[] asmblist = { "asmb-1", "asmb-2", "asmb-3", "asmb-4" };
  42. evidence1 = new Evidence (hostlist, asmblist);
  43. evidence2 = new Evidence (evidence1);
  44. AssertEquals("Copy constructor counts do not match", evidence1.Count, evidence2.Count);
  45. }
  46. public void TestAddAssembly()
  47. {
  48. Evidence evidence = new Evidence ();
  49. object[] comparray = new object[100];
  50. string obj;
  51. int index;
  52. for (int i=0; i<100; i++) {
  53. obj = String.Format ("asmb-{0}", i+1);
  54. comparray[i] = obj;
  55. evidence.AddAssembly (obj);
  56. AssertEquals (evidence.Count, i+1);
  57. }
  58. index = 0;
  59. foreach (object compobj in evidence) {
  60. AssertEquals ("Comparison object does not equal evidence assembly object",
  61. comparray[index++], compobj);
  62. }
  63. }
  64. public void TestAddHost()
  65. {
  66. Evidence evidence = new Evidence ();
  67. object[] comparray = new object[100];
  68. string obj;
  69. int index;
  70. for (int i=0; i<100; i++) {
  71. obj = String.Format ("asmb-{0}", i+1);
  72. comparray[i] = obj;
  73. evidence.AddAssembly ( obj );
  74. AssertEquals (evidence.Count, i+1);
  75. }
  76. index = 0;
  77. foreach (object compobj in evidence) {
  78. AssertEquals ("Comparison object does not equal evidence host object",
  79. comparray[index++], compobj);
  80. }
  81. }
  82. public void TestMultiArgConstructorForEach()
  83. {
  84. object[] hostarray = { "host-1", "host-2", "host-3", "host-4" };
  85. object[] asmbarray = { "asmb-1", "asmb-2", "asmb-3", "asmb-4" };
  86. ArrayList compare = new ArrayList ();
  87. Evidence evidence = new Evidence (hostarray, asmbarray);
  88. int i;
  89. compare.AddRange (hostarray);
  90. compare.AddRange (asmbarray);
  91. i = 0;
  92. foreach (object obj in evidence) {
  93. AssertEquals (obj, compare[i++]);
  94. }
  95. }
  96. public void TestEnumeratorReset()
  97. {
  98. object[] hostarray = { "host-1", "host-2", "host-3", "host-4" };
  99. object[] asmbarray = { "asmb-1", "asmb-2", "asmb-3", "asmb-4" };
  100. ArrayList compare = new ArrayList ();
  101. Evidence evidence = new Evidence (hostarray, asmbarray);
  102. IEnumerator enumerator;
  103. int i;
  104. compare.AddRange (hostarray);
  105. compare.AddRange (asmbarray);
  106. i = 0;
  107. enumerator = evidence.GetEnumerator ();
  108. while (enumerator.MoveNext ()) {
  109. AssertEquals (enumerator.Current, compare[i++]);
  110. }
  111. enumerator.Reset ();
  112. i = 0;
  113. while (enumerator.MoveNext ()) {
  114. AssertEquals (enumerator.Current, compare[i++]);
  115. }
  116. }
  117. public void TestGetHostEnumerator()
  118. {
  119. object[] hostarray = { "host-1", "host-2", "host-3", "host-4" };
  120. object[] asmbarray = { "asmb-1", "asmb-2" };
  121. Evidence evidence;
  122. IEnumerator enumerator;
  123. int i;
  124. evidence = new Evidence (hostarray, asmbarray);
  125. enumerator = evidence.GetHostEnumerator ();
  126. i = 0;
  127. while (enumerator.MoveNext ()) {
  128. AssertEquals (enumerator.Current, hostarray[i++]);
  129. }
  130. }
  131. public void TestGetHostAssemblyEnumerator()
  132. {
  133. object[] hostarray = { "host-1", "host-2", "host-3", "host-4" };
  134. object[] asmbarray = { "asmb-1", "asmb-2", "asmb-3", "asmb-4" };
  135. Evidence evidence;
  136. IEnumerator enumerator;
  137. int i;
  138. evidence = new Evidence (hostarray, asmbarray);
  139. enumerator = evidence.GetAssemblyEnumerator ();
  140. i = 0;
  141. while (enumerator.MoveNext()) {
  142. AssertEquals (enumerator.Current, asmbarray[i++]);
  143. }
  144. }
  145. public void TestCount()
  146. {
  147. object[] hostarray = { "host-1", "host-2", "host-3", "host-4" };
  148. object[] asmbarray = { "asmb-1", "asmb-2", "asmb-3", "asmb-4" };
  149. Evidence evidence;
  150. evidence = new Evidence (hostarray, asmbarray);
  151. Assertion.AssertEquals (evidence.Count, 8);
  152. for( int i=0; i<100; i++ ) {
  153. if ( 0 == i%2 ) {
  154. evidence.AddHost (String.Format ("host-{0}", i + 5) );
  155. } else {
  156. evidence.AddAssembly (String.Format ("asmb-{0}", i + 5));
  157. }
  158. AssertEquals (evidence.Count, 9 + i);
  159. }
  160. }
  161. public void TestNullCopyToException()
  162. {
  163. Evidence evidence;
  164. evidence = new Evidence ();
  165. evidence.AddHost ("host-1");
  166. try {
  167. evidence.CopyTo (null, 100);
  168. Fail ("CopyTo should throw exception when recieving a null array");
  169. } catch (Exception e) {
  170. Assert ("Should have caught an ArgumentNull Exception", e is ArgumentNullException);
  171. }
  172. }
  173. /// <summary>
  174. /// No Exception will be generated because the copy won't run because the evidence list is empty
  175. /// </summary>
  176. public void TestCopyToNoException()
  177. {
  178. Evidence evidence = new Evidence ();;
  179. evidence.CopyTo (null, 100);
  180. }
  181. public void TestArgOutOfRangeCopyToException()
  182. {
  183. Evidence evidence = new Evidence (new object[10], new object[10]);
  184. try {
  185. evidence.CopyTo (new object[10], -100);
  186. Fail ("CopyTo should throw exception when recieving a negative index");
  187. } catch (Exception e) {
  188. Assert("Should have caught an ArgumentOutOfRangeException Exception",
  189. e is ArgumentOutOfRangeException);
  190. }
  191. }
  192. /// <summary>
  193. /// No Exception will be generated because the copy won't run because the evidence list is empty
  194. /// </summary>
  195. public void TestArgOutOfRangeCopyToNoException()
  196. {
  197. Evidence evidence = new Evidence ();
  198. evidence.CopyTo (new object[10], -100);
  199. }
  200. public void BadMergeTest() {
  201. Evidence evidence, evidence2;
  202. evidence = new Evidence (null, null);
  203. evidence2 = new Evidence ();
  204. }
  205. public void MergeTest() {
  206. Evidence evidence, evidence2;
  207. evidence = new Evidence (new object[10], new object[10]);
  208. evidence2 = new Evidence ();
  209. evidence2.Merge (evidence);
  210. }
  211. }
  212. }