* CodeArgumentReferenceExpressionTest.cs: Fixed namespace.
authorGert Driesen <drieseng@users.sourceforge.net>
Tue, 25 Oct 2005 16:49:00 +0000 (16:49 -0000)
committerGert Driesen <drieseng@users.sourceforge.net>
Tue, 25 Oct 2005 16:49:00 +0000 (16:49 -0000)
* CodeArrayCreateExpressionTest.cs: Fixed namespace.
* CodeAttachEventStatementTest.cs: Fixed namespace and added tests for
contructors that were not covered.
* CodeAttributeArgumentTest.cs: Fixed namespace.
* CodeAttributeDeclarationTest.cs: Fixed namespace and added tests for
constructors that were not covered.
* CodeAttachEventStatement.cs: Fixed extra removal in r52147.
* CodeAttributeDeclaration.cs: Make sure AttributeType is updated
when Name is set or changed. For constructors taking attribute type,
use BaseType of attribute type as name of CodeAttributeDeclaration.

svn path=/trunk/mcs/; revision=52190

mcs/class/System/System.CodeDom/ChangeLog
mcs/class/System/System.CodeDom/CodeAttachEventStatement.cs
mcs/class/System/System.CodeDom/CodeAttributeDeclaration.cs
mcs/class/System/Test/System.CodeDom/ChangeLog
mcs/class/System/Test/System.CodeDom/CodeArgumentReferenceExpressionTest.cs
mcs/class/System/Test/System.CodeDom/CodeArrayCreateExpressionTest.cs
mcs/class/System/Test/System.CodeDom/CodeAttachEventStatementTest.cs
mcs/class/System/Test/System.CodeDom/CodeAttributeArgumentTest.cs
mcs/class/System/Test/System.CodeDom/CodeAttributeDeclarationTest.cs

index b352b7f5a4ecbe351d49c0efb31e40964ce0f388..910259b41cd6335747c6bdd5258fe66928cb3406 100644 (file)
@@ -1,3 +1,10 @@
+2005-10-25  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * CodeAttachEventStatement.cs: Fixed extra removal in r52147.
+       * CodeAttributeDeclaration.cs: Make sure AttributeType is updated
+       when Name is set or changed. For constructors taking attribute type,
+       use BaseType of attribute type as name of CodeAttributeDeclaration.
+
 2005-10-25  Sebastien Pouliot  <sebastien@ximian.com>
 
        * CodeAttributeDeclaration.cs: Fixed extra removal in r52147.
index a9cf610708056445908abfc04a0a694d3ed9919d..0ca7cd6fbf1257cb501178507fbe75536b73ae11 100644 (file)
@@ -59,6 +59,8 @@ namespace System.CodeDom
                                                 string eventName, 
                                                 CodeExpression listener)
                {
+                       this.eventRef = new CodeEventReferenceExpression (targetObject,
+                                                                                                                               eventName);
                        this.listener = listener;
                }
 
index f14e8a04ca589f88460998157f12a70dc04c6486..84155ac1b9a2d7ed56457a209161360ff8bc5f4b 100644 (file)
@@ -53,12 +53,12 @@ namespace System.CodeDom
 
                public CodeAttributeDeclaration (string name)
                {
-                       this.name = name;
+                       this.Name = name;
                }
 
                public CodeAttributeDeclaration (string name, params CodeAttributeArgument [] arguments)
                {
-                       this.name = name;
+                       this.Name = name;
                        Arguments.AddRange (arguments);
                }
 
@@ -66,11 +66,17 @@ namespace System.CodeDom
                public CodeAttributeDeclaration (CodeTypeReference attributeType)
                {
                        attribute = attributeType;
+                       if (attributeType != null) {
+                               name = attributeType.BaseType;
+                       }
                }
 
                public CodeAttributeDeclaration (CodeTypeReference attributeType, params CodeAttributeArgument [] arguments)
                {
                        attribute = attributeType;
+                       if (attributeType != null) {
+                               name = attributeType.BaseType;
+                       }
                        Arguments.AddRange (arguments);
                }
 #endif
@@ -97,6 +103,9 @@ namespace System.CodeDom
                        }
                        set {
                                name = value;
+#if NET_2_0
+                               attribute = new CodeTypeReference (name);
+#endif
                        }
                }
 
index 6ca607341b3e0ea15ebffe131caa2b4ed2c17334..b148b59398b3b74daf87ecd3f0243e67b5222066 100644 (file)
@@ -1,3 +1,13 @@
+2005-10-25  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * CodeArgumentReferenceExpressionTest.cs: Fixed namespace.
+       * CodeArrayCreateExpressionTest.cs: Fixed namespace.
+       * CodeAttachEventStatementTest.cs: Fixed namespace and added tests for
+       contructors that were not covered.
+       * CodeAttributeArgumentTest.cs: Fixed namespace.
+       * CodeAttributeDeclarationTest.cs: Fixed namespace and added tests for
+       constructors that were not covered.
+
 2005-10-24  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * CodeArgumentReferenceExpressionTest.cs: Added test for default ctor
index a40e05342051cdd1de30a06d8e0b16e2cd8dbfe8..cb1f226349d31f6d30583ac599158751fca03e9e 100644 (file)
@@ -32,7 +32,7 @@ using NUnit.Framework;
 using System;
 using System.CodeDom;
 
-namespace MonoCasTests.System.CodeDom {
+namespace MonoTests.System.CodeDom {
        [TestFixture]
        public class CodeArgumentReferenceExpressionTest {
                [Test]
index 5ecdb9f82bcad139d49b0cb435b8b1085c0ff1ad..4d0ee23ab78bea8d468c196527d3b044cfc6057e 100644 (file)
@@ -32,7 +32,7 @@ using NUnit.Framework;
 using System;
 using System.CodeDom;
 
-namespace MonoCasTests.System.CodeDom
+namespace MonoTests.System.CodeDom
 {
        [TestFixture]
        public class CodeArrayCreateExpressionTest
index db906d1c28616cb46a91cdb75cdcfb8fc62f5af7..82cddb05ff424150a4dedd5731c998c595aed4ee 100644 (file)
@@ -32,13 +32,13 @@ using NUnit.Framework;
 using System;
 using System.CodeDom;
 
-namespace MonoCasTests.System.CodeDom
+namespace MonoTests.System.CodeDom
 {
        [TestFixture]
        public class CodeAttachEventStatementTest
        {
                [Test]
-               public void DefaultConstructor ()
+               public void Constructor0 ()
                {
                        CodeAttachEventStatement caes = new CodeAttachEventStatement ();
                        Assert.IsNotNull (caes.Event, "#1");
@@ -48,18 +48,51 @@ namespace MonoCasTests.System.CodeDom
                }
 
                [Test]
-               public void NullEventReference ()
+               public void Constructor1 ()
                {
-                       CodeAttachEventStatement caes = new CodeAttachEventStatement ((CodeEventReferenceExpression) null, (CodeExpression) null);
-                       Assert.IsNotNull (caes.Event, "#1");
-                       Assert.IsNull (caes.Listener, "#2");
-                       Assert.AreEqual (string.Empty, caes.Event.EventName, "#3");
-                       Assert.IsNull (caes.Event.TargetObject, "#4");
+                       CodeEventReferenceExpression eventref = new CodeEventReferenceExpression ();
+                       CodeExpression listener = new CodeExpression ();
+
+                       CodeAttachEventStatement caes = new CodeAttachEventStatement (eventref, listener);
+                       Assert.AreSame (eventref, caes.Event, "#1");
+                       Assert.AreEqual (string.Empty, caes.Event.EventName, "#2");
+                       Assert.IsNull (caes.Event.TargetObject, "#3");
+                       Assert.AreSame (listener, caes.Listener, "#4");
 
                        caes.Event = null;
                        Assert.IsNotNull (caes.Event, "#5");
                        Assert.AreEqual (string.Empty, caes.Event.EventName, "#6");
                        Assert.IsNull (caes.Event.TargetObject, "#7");
+                       Assert.AreSame (listener, caes.Listener, "#8");
+
+                       caes.Listener = null;
+                       Assert.IsNull (caes.Listener, "#9");
+
+                       caes.Event = eventref;
+                       Assert.AreSame (eventref, caes.Event, "#10");
+
+                       caes.Listener = listener;
+                       Assert.AreSame (listener, caes.Listener, "#11");
+
+                       caes = new CodeAttachEventStatement ((CodeEventReferenceExpression) null, (CodeExpression) null);
+                       Assert.IsNotNull (caes.Event, "#12");
+                       Assert.IsNull (caes.Listener, "#13");
+                       Assert.AreEqual (string.Empty, caes.Event.EventName, "#14");
+                       Assert.IsNull (caes.Event.TargetObject, "#15");
+               }
+
+               [Test]
+               public void Constructor2 ()
+               {
+                       CodeExpression targetObject = new CodeExpression ();
+                       CodeExpression listener = new CodeExpression ();
+
+                       CodeAttachEventStatement caes = new CodeAttachEventStatement (targetObject, "mono", listener);
+                       Assert.IsNotNull (caes.Event, "#1");
+                       Assert.AreEqual ("mono", caes.Event.EventName, "#2");
+                       Assert.AreSame (targetObject, caes.Event.TargetObject, "#3");
+                       Assert.AreSame (listener, caes.Listener, "#4");
+
                }
        }
 }
index 450524b2c7028339968d295c40e9bd7a29f3268e..adb517102c5d4fda8e2f4b6469695368eacdb776 100644 (file)
@@ -32,7 +32,7 @@ using NUnit.Framework;
 using System;
 using System.CodeDom;
 
-namespace MonoCasTests.System.CodeDom
+namespace MonoTests.System.CodeDom
 {
        [TestFixture]
        public class CodeAttributeArgumentTest
index acd93dde10fcee69985dd1dc276ff3d2c09864d1..f87efb5a2dcd5934a4a3db10637669e2b9f65963 100644 (file)
@@ -32,28 +32,37 @@ using NUnit.Framework;
 using System;
 using System.CodeDom;
 
-namespace MonoCasTests.System.CodeDom
+namespace MonoTests.System.CodeDom
 {
        [TestFixture]
        public class CodeAttributeDeclarationTest
        {
                [Test]
-               public void DefaultConstructor ()
+               public void NullName ()
                {
-                       CodeAttributeDeclaration cad = new CodeAttributeDeclaration ();
+                       CodeAttributeDeclaration cad = new CodeAttributeDeclaration ((string) null);
                        Assert.IsNotNull (cad.Name, "#1");
                        Assert.AreEqual (string.Empty, cad.Name, "#2");
 #if NET_2_0
-                       Assert.IsNull (cad.AttributeType, "#3");
+                       Assert.IsNotNull (cad.AttributeType, "#3");
+                       Assert.AreEqual (typeof(void).FullName, cad.AttributeType.BaseType, "#4");
+#endif
+                       Assert.IsNotNull (cad.Arguments, "#5");
+                       Assert.AreEqual (0, cad.Arguments.Count, "#6");
+
+                       cad.Name = null;
+                       Assert.IsNotNull (cad.Name, "#7");
+                       Assert.AreEqual (string.Empty, cad.Name, "#8");
+#if NET_2_0
+                       Assert.IsNotNull (cad.AttributeType, "#9");
+                       Assert.AreEqual (typeof(void).FullName, cad.AttributeType.BaseType, "#10");
 #endif
-                       Assert.IsNotNull (cad.Arguments, "#4");
-                       Assert.AreEqual (0, cad.Arguments.Count, "#5");
                }
 
                [Test]
-               public void NullName ()
+               public void Constructor0 ()
                {
-                       CodeAttributeDeclaration cad = new CodeAttributeDeclaration ((string) null);
+                       CodeAttributeDeclaration cad = new CodeAttributeDeclaration ();
                        Assert.IsNotNull (cad.Name, "#1");
                        Assert.AreEqual (string.Empty, cad.Name, "#2");
 #if NET_2_0
@@ -61,10 +70,93 @@ namespace MonoCasTests.System.CodeDom
 #endif
                        Assert.IsNotNull (cad.Arguments, "#4");
                        Assert.AreEqual (0, cad.Arguments.Count, "#5");
+               }
+
+               [Test]
+               public void Constructor1 ()
+               {
+                       CodeAttributeDeclaration cad = new CodeAttributeDeclaration ("mono");
+                       Assert.AreEqual (0, cad.Arguments.Count, "#1");
+                       Assert.AreEqual ("mono", cad.Name, "#2");
+#if NET_2_0
+                       Assert.IsNotNull (cad.AttributeType, "#3");
+                       Assert.AreEqual ("mono", cad.AttributeType.BaseType, "#4");
+#endif
+               }
+
+               [Test]
+               public void Constructor2 ()
+               {
+                       CodeAttributeDeclaration cad = new CodeAttributeDeclaration ("mono", new CodeAttributeArgument ());
+                       Assert.AreEqual (1, cad.Arguments.Count, "#1");
+                       Assert.AreEqual ("mono", cad.Name, "#2");
+#if NET_2_0
+                       Assert.IsNotNull (cad.AttributeType, "#3");
+                       Assert.AreEqual ("mono", cad.AttributeType.BaseType, "#4");
+#endif
+                       cad.Name = null;
+                       Assert.AreEqual (1, cad.Arguments.Count, "#5");
+                       Assert.AreEqual (string.Empty, cad.Name, "#6");
+#if NET_2_0
+                       Assert.IsNotNull (cad.AttributeType, "#7");
+                       Assert.AreEqual (typeof(void).FullName, cad.AttributeType.BaseType, "#8");
+#endif
+               }
+
+#if NET_2_0
+               [Test]
+               public void Constructor3 ()
+               {
+                       CodeAttributeDeclaration cad = new CodeAttributeDeclaration (new CodeTypeReference ("mono"));
+                       Assert.AreEqual (0, cad.Arguments.Count, "#1");
+                       Assert.AreEqual ("mono", cad.Name, "#2");
+                       Assert.IsNotNull (cad.AttributeType, "#3");
+                       Assert.AreEqual ("mono", cad.AttributeType.BaseType, "#4");
+
+                       cad.Name = null;
+                       Assert.AreEqual (0, cad.Arguments.Count, "#5");
+                       Assert.AreEqual (string.Empty, cad.Name, "#6");
+                       Assert.AreEqual (typeof(void).FullName, cad.AttributeType.BaseType, "#7");
+
+                       cad.Name = "mono";
+                       Assert.AreEqual (0, cad.Arguments.Count, "#8");
+                       Assert.AreEqual ("mono", cad.Name, "#9");
+                       Assert.IsNotNull (cad.AttributeType, "#10");
+                       Assert.AreEqual ("mono", cad.AttributeType.BaseType, "#11");
+
+                       cad = new CodeAttributeDeclaration ((CodeTypeReference) null);
+                       Assert.AreEqual (0, cad.Arguments.Count, "#12");
+                       Assert.AreEqual (string.Empty, cad.Name, "#13");
+                       Assert.IsNull (cad.AttributeType, "#14");
+               }
+
+               [Test]
+               public void Constructor4 ()
+               {
+                       CodeAttributeDeclaration cad = new CodeAttributeDeclaration (new CodeTypeReference ("mono"),
+                               new CodeAttributeArgument (), new CodeAttributeArgument ());
+                       Assert.AreEqual (2, cad.Arguments.Count, "#1");
+                       Assert.AreEqual ("mono", cad.Name, "#2");
+                       Assert.IsNotNull (cad.AttributeType, "#3");
+                       Assert.AreEqual ("mono", cad.AttributeType.BaseType, "#4");
 
                        cad.Name = null;
-                       Assert.IsNotNull (cad.Name, "#4");
-                       Assert.AreEqual (string.Empty, cad.Name, "#5");
+                       Assert.AreEqual (2, cad.Arguments.Count, "#5");
+                       Assert.AreEqual (string.Empty, cad.Name, "#6");
+                       Assert.AreEqual (typeof(void).FullName, cad.AttributeType.BaseType, "#7");
+
+                       cad.Name = "mono";
+                       Assert.AreEqual (2, cad.Arguments.Count, "#8");
+                       Assert.AreEqual ("mono", cad.Name, "#9");
+                       Assert.IsNotNull (cad.AttributeType, "#10");
+                       Assert.AreEqual ("mono", cad.AttributeType.BaseType, "#11");
+
+                       cad = new CodeAttributeDeclaration ((CodeTypeReference) null,
+                               new CodeAttributeArgument ());
+                       Assert.AreEqual (1, cad.Arguments.Count, "#12");
+                       Assert.AreEqual (string.Empty, cad.Name, "#13");
+                       Assert.IsNull (cad.AttributeType, "#14");
                }
+#endif
        }
 }