1 // 2 // SecurityCriticalAttributeTest.cs - 3 // NUnit Test Cases for SecurityCriticalAttribute 4 // 5 // Author: 6 // Sebastien Pouliot <sebastien@ximian.com> 7 // 8 // Copyright (C) 2005 Novell, Inc (http://www.novell.com) 9 // 10 // Permission is hereby granted, free of charge, to any person obtaining 11 // a copy of this software and associated documentation files (the 12 // "Software"), to deal in the Software without restriction, including 13 // without limitation the rights to use, copy, modify, merge, publish, 14 // distribute, sublicense, and/or sell copies of the Software, and to 15 // permit persons to whom the Software is furnished to do so, subject to 16 // the following conditions: 17 // 18 // The above copyright notice and this permission notice shall be 19 // included in all copies or substantial portions of the Software. 20 // 21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 // 29 30 using NUnit.Framework; 31 using System; 32 using System.Security; 33 34 namespace MonoTests.System.Security { 35 36 [TestFixture] 37 public class SecurityCriticalAttributeTest { 38 #if !MOBILE 39 [Test] Constructor_Default()40 public void Constructor_Default () 41 { 42 SecurityCriticalAttribute sca = new SecurityCriticalAttribute (); 43 Assert.AreEqual (SecurityCriticalScope.Explicit, sca.Scope); 44 } 45 46 [Test] Constructor_Scope_Everything()47 public void Constructor_Scope_Everything () 48 { 49 SecurityCriticalAttribute sca = new SecurityCriticalAttribute (SecurityCriticalScope.Everything); 50 Assert.AreEqual (SecurityCriticalScope.Everything, sca.Scope); 51 } 52 53 [Test] Constructor_Scope_Explicit()54 public void Constructor_Scope_Explicit () 55 { 56 SecurityCriticalAttribute sca = new SecurityCriticalAttribute (SecurityCriticalScope.Explicit); 57 Assert.AreEqual (SecurityCriticalScope.Explicit, sca.Scope); 58 } 59 60 [Test] Constructor_Scope_Bad()61 public void Constructor_Scope_Bad () 62 { 63 SecurityCriticalScope scs = (SecurityCriticalScope)UInt32.MinValue; 64 SecurityCriticalAttribute sca = new SecurityCriticalAttribute (scs); 65 Assert.AreEqual (SecurityCriticalScope.Explicit, sca.Scope); 66 } 67 #endif 68 [Test] Attributes()69 public void Attributes () 70 { 71 Type t = typeof (SecurityCriticalAttribute); 72 Assert.IsFalse (t.IsSerializable, "IsSerializable"); 73 74 object [] attrs = t.GetCustomAttributes (typeof (AttributeUsageAttribute), false); 75 Assert.AreEqual (1, attrs.Length, "AttributeUsage"); 76 AttributeUsageAttribute aua = (AttributeUsageAttribute)attrs [0]; 77 Assert.IsFalse (aua.AllowMultiple, "AllowMultiple"); 78 Assert.IsFalse (aua.Inherited, "Inherited"); 79 AttributeTargets at = (AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Field | AttributeTargets.Interface | AttributeTargets.Delegate); 80 Assert.AreEqual (at, aua.ValidOn, "ValidOn"); 81 } 82 } 83 } 84