Author: spouliot
Date: 2008-02-16 19:52:28 -0500 (Sat, 16 Feb 2008)
New Revision: 95944

Modified:
   
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/ArrayFieldsShouldNotBeReadOnlyTest.cs
   trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/ChangeLog
   
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/NativeFieldsShouldNotBeVisibleTest.cs
   
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/SecureGetObjectDataOverridesTest.cs
   
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/StaticConstructorsShouldBePrivateTest.cs
Log:
2008-02-16  Sebastien Pouliot  <[EMAIL PROTECTED]>

        * ArrayFieldsShouldNotBeReadOnlyTest.cs: Duplicate test cases for 
        structs. Add test case for interface.
        * NativeFieldsShouldNotBeVisibleTest.cs: Add test case for interface.
        * SecureGetObjectDataOverridesTest.cs: Add test case where we inherit
        from ISerializable but do not override GetObjectData.
        * StaticConstructorsShouldBePrivateTest.cs: Add test case for 
        interface (no constructor).



Modified: 
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/ArrayFieldsShouldNotBeReadOnlyTest.cs
===================================================================
--- 
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/ArrayFieldsShouldNotBeReadOnlyTest.cs
  2008-02-17 00:45:37 UTC (rev 95943)
+++ 
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/ArrayFieldsShouldNotBeReadOnlyTest.cs
  2008-02-17 00:52:28 UTC (rev 95944)
@@ -64,6 +64,39 @@
                public string [] Array;
        }
 
+       public struct StructHasStaticPublicReadonlyArray {
+               public static readonly string [] Array;
+       }
+
+       public struct StructHasPublicReadonlyArray {
+               public readonly string [] Array;
+       }
+
+/* this does not compile 
+       public struct StructHasProtectedReadonlyArray {
+               protected readonly string [] Array;
+       }
+*/
+       public struct StructHasInternalReadonlyArray {
+               internal readonly string [] Array;
+       }
+
+       public struct StructHasPrivateReadonlyArray {
+               private readonly string [] Array;
+       }
+
+       public struct StructHasNoReadonlyArray {
+               public readonly string NoArray;
+       }
+
+       public struct StructHasPublicArray {
+               public string [] Array;
+       }
+
+       public interface IHaveArrayGetter {
+               string [] Array { get; }
+       }
+
        [TestFixture]
        public class ArrayFieldsShouldNotBeReadOnlyTest {
 
@@ -90,49 +123,74 @@
                public void TestHasStaticPublicReadonlyArray ()
                {
                        TypeDefinition type = GetTest 
("Test.Rules.Security.HasStaticPublicReadonlyArray");
-                       Assert.AreEqual (RuleResult.Failure, runner.CheckType 
(type));
+                       Assert.AreEqual (RuleResult.Failure, runner.CheckType 
(type), "Type");
+
+                       type = GetTest 
("Test.Rules.Security.StructHasStaticPublicReadonlyArray");
+                       Assert.AreEqual (RuleResult.Failure, runner.CheckType 
(type), "Struct");
                }
 
                [Test]
                public void TestHasPublicReadonlyArray ()
                {
                        TypeDefinition type = GetTest 
("Test.Rules.Security.HasPublicReadonlyArray");
-                       Assert.AreEqual (RuleResult.Failure, runner.CheckType 
(type));
+                       Assert.AreEqual (RuleResult.Failure, runner.CheckType 
(type), "Type");
+
+                       type = GetTest 
("Test.Rules.Security.StructHasPublicReadonlyArray");
+                       Assert.AreEqual (RuleResult.Failure, runner.CheckType 
(type), "Struct");
                }
 
                [Test]
                public void TestHasProtectedReadonlyArray ()
                {
                        TypeDefinition type = GetTest 
("Test.Rules.Security.HasProtectedReadonlyArray");
-                       Assert.AreEqual (RuleResult.Failure, runner.CheckType 
(type));
+                       Assert.AreEqual (RuleResult.Failure, runner.CheckType 
(type), "Type");
                }
 
                [Test]
                public void TestHasInternalReadonlyArray ()
                {
                        TypeDefinition type = GetTest 
("Test.Rules.Security.HasInternalReadonlyArray");
-                       Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type));
+                       Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type), "Type");
+
+                       type = GetTest 
("Test.Rules.Security.StructHasInternalReadonlyArray");
+                       Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type), "Struct");
                }
 
                [Test]
                public void TestHasPrivateReadonlyArray ()
                {
                        TypeDefinition type = GetTest 
("Test.Rules.Security.HasPrivateReadonlyArray");
-                       Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type));
+                       Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type), "Type");
+
+                       type = GetTest 
("Test.Rules.Security.StructHasPrivateReadonlyArray");
+                       Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type), "Struct");
                }
 
                [Test]
                public void TestHasNoReadonlyArray ()
                {
                        TypeDefinition type = GetTest 
("Test.Rules.Security.HasNoReadonlyArray");
-                       Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type));
+                       Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type), "Type");
+
+                       type = GetTest 
("Test.Rules.Security.StructHasNoReadonlyArray");
+                       Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type), "Struct");
                }
 
                [Test]
                public void TestHasPublicArray ()
                {
-                       TypeDefinition type = GetTest 
("Test.Rules.Security.HasPublicArray");
-                       Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type));
+                       TypeDefinition type = GetTest 
("Test.Rules.Security.HasNoReadonlyArray");
+                       Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type), "Type");
+
+                       type = GetTest 
("Test.Rules.Security.StructHasNoReadonlyArray");
+                       Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type), "Struct");
                }
+
+               [Test]
+               public void DoesNotApply ()
+               {
+                       TypeDefinition type = GetTest 
("Test.Rules.Security.IHaveArrayGetter");
+                       Assert.AreEqual (RuleResult.DoesNotApply, 
runner.CheckType (type), "Interface");
+               }
        }
 }

Modified: trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/ChangeLog
===================================================================
--- trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/ChangeLog      
2008-02-17 00:45:37 UTC (rev 95943)
+++ trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/ChangeLog      
2008-02-17 00:52:28 UTC (rev 95944)
@@ -1,3 +1,13 @@
+2008-02-16  Sebastien Pouliot  <[EMAIL PROTECTED]>
+
+       * ArrayFieldsShouldNotBeReadOnlyTest.cs: Duplicate test cases for 
+       structs. Add test case for interface.
+       * NativeFieldsShouldNotBeVisibleTest.cs: Add test case for interface.
+       * SecureGetObjectDataOverridesTest.cs: Add test case where we inherit
+       from ISerializable but do not override GetObjectData.
+       * StaticConstructorsShouldBePrivateTest.cs: Add test case for 
+       interface (no constructor).
+
 2008-02-15  Sebastien Pouliot  <[EMAIL PROTECTED]> 
 
        * ArrayFieldsShouldNotBeReadOnlyTest.cs

Modified: 
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/NativeFieldsShouldNotBeVisibleTest.cs
===================================================================
--- 
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/NativeFieldsShouldNotBeVisibleTest.cs
  2008-02-17 00:45:37 UTC (rev 95943)
+++ 
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/NativeFieldsShouldNotBeVisibleTest.cs
  2008-02-17 00:52:28 UTC (rev 95944)
@@ -72,6 +72,10 @@
                private IntPtr Native;
        }
 
+       public interface IHaveNativePointerGetter {
+               IntPtr NativePointer { get; }
+       }
+
        [TestFixture]
        public class NativeFieldsShouldNotBeVisibleTest {
 
@@ -156,5 +160,12 @@
                        TypeDefinition type = GetTest 
("Test.Rules.Security.HasPrivateNativeField");
                        Assert.AreEqual (RuleResult.Success, runner.CheckType 
(type));
                }
+
+               [Test]
+               public void TestInterfaceWithPointerGetter ()
+               {
+                       TypeDefinition type = GetTest 
("Test.Rules.Security.IHaveNativePointerGetter");
+                       Assert.AreEqual (RuleResult.DoesNotApply, 
runner.CheckType (type));
+               }
        }
 }

Modified: 
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/SecureGetObjectDataOverridesTest.cs
===================================================================
--- 
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/SecureGetObjectDataOverridesTest.cs
    2008-02-17 00:45:37 UTC (rev 95943)
+++ 
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/SecureGetObjectDataOverridesTest.cs
    2008-02-17 00:52:28 UTC (rev 95944)
@@ -73,6 +73,13 @@
                        }
                }
 
+               public class InheritISerializableWithoutOverrideClass : 
ISerializableClass {
+
+                       public InheritISerializableWithoutOverrideClass ()
+                       {
+                       }
+               }
+
                public class LinkDemandClass: ISerializable {
 
                        public LinkDemandClass ()
@@ -159,10 +166,17 @@
                public void InheritISerializable ()
                {
                        TypeDefinition type = GetTest 
("InheritISerializableClass");
-                       Assert.AreEqual (RuleResult.Failure, runner.CheckType 
(type));
+                       Assert.AreEqual (RuleResult.Failure, runner.CheckType 
(type), "InheritISerializableClass");
                }
 
                [Test]
+               public void InheritISerializableWithoutOverride ()
+               {
+                       TypeDefinition type = GetTest 
("InheritISerializableWithoutOverrideClass");
+                       Assert.AreEqual (RuleResult.DoesNotApply, 
runner.CheckType (type), "InheritISerializableWithoutOverrideClass");
+               }
+
+               [Test]
                public void LinkDemand ()
                {
                        TypeDefinition type = GetTest ("LinkDemandClass");

Modified: 
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/StaticConstructorsShouldBePrivateTest.cs
===================================================================
--- 
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/StaticConstructorsShouldBePrivateTest.cs
       2008-02-17 00:45:37 UTC (rev 95943)
+++ 
trunk/mono-tools/gendarme/rules/Gendarme.Rules.Security/Test/StaticConstructorsShouldBePrivateTest.cs
       2008-02-17 00:52:28 UTC (rev 95944)
@@ -44,6 +44,10 @@
                }
        }
 
+       internal interface InterfaceHasNoConstructor {
+               int GetMe { get; }
+       }
+
        [TestFixture]
        public class StaticConstructorsShouldBePrivateTest {
 
@@ -89,5 +93,11 @@
                        Assert.AreEqual (RuleResult.Failure, runner.CheckType 
(inspectedType), inspectedType.FullName);
                        Assert.AreEqual (1, runner.Defects.Count, "Count");
                }
+
+               [Test]
+               public void TestInterface ()
+               {
+                       Assert.AreEqual (RuleResult.DoesNotApply, 
runner.CheckType (GetTest<InterfaceHasNoConstructor> ()));
+               }
        }
 }

_______________________________________________
Mono-patches maillist  -  Mono-patches@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to