CodeAccessPermissionTest.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. //
  2. // CodeAccessPermissionTest.cs - NUnit Test Cases for CodeAccessPermission
  3. //
  4. // Author:
  5. // Sebastien Pouliot ([email protected])
  6. //
  7. // (C) 2004 Motus Technologies Inc. (http://www.motus.com)
  8. //
  9. using NUnit.Framework;
  10. using System;
  11. using System.Security;
  12. using System.Security.Permissions;
  13. using System.Text;
  14. namespace MonoTests.System.Security {
  15. // Almost minimal CAS class for unit tests
  16. [Serializable]
  17. public class NonAbstractCodeAccessPermission : CodeAccessPermission {
  18. private string _tag;
  19. private string _text;
  20. public NonAbstractCodeAccessPermission (string tag, string text)
  21. {
  22. _tag = tag;
  23. _text = text;
  24. }
  25. public override IPermission Copy ()
  26. {
  27. return new NonAbstractCodeAccessPermission (_tag, _text);
  28. }
  29. public override void FromXml (SecurityElement elem) {}
  30. public override IPermission Intersect (IPermission target)
  31. {
  32. return null;
  33. }
  34. public override bool IsSubsetOf (IPermission target)
  35. {
  36. return true;
  37. }
  38. public override SecurityElement ToXml ()
  39. {
  40. if (_tag == null)
  41. return null;
  42. return new SecurityElement (_tag, _text);
  43. }
  44. }
  45. [TestFixture]
  46. public class CodeAccessPermissionTest : Assertion {
  47. [Test]
  48. public void CustomCAS ()
  49. {
  50. // test for http://bugzilla.ximian.com/show_bug.cgi?id=52626
  51. NonAbstractCodeAccessPermission p = new NonAbstractCodeAccessPermission ("custom", null);
  52. p.Demand ();
  53. }
  54. [Test]
  55. public void Union ()
  56. {
  57. NonAbstractCodeAccessPermission cap = new NonAbstractCodeAccessPermission (null, null);
  58. IPermission p = cap.Union (null);
  59. }
  60. [Test]
  61. [ExpectedException (typeof (NullReferenceException))]
  62. public void To_String_Exception ()
  63. {
  64. NonAbstractCodeAccessPermission cap = new NonAbstractCodeAccessPermission (null, null);
  65. string s = cap.ToString ();
  66. }
  67. [Test]
  68. public void To_String ()
  69. {
  70. NonAbstractCodeAccessPermission cap = new NonAbstractCodeAccessPermission ("CodeAccessPermission", "NonAbstract");
  71. string s = cap.ToString ();
  72. AssertEquals ("ToString", "<CodeAccessPermission>NonAbstract</CodeAccessPermission>" + Environment.NewLine, s);
  73. }
  74. }
  75. }