Merge pull request #1909 from esdrubal/reflection
[mono.git] / mcs / class / Microsoft.Build.Engine / Test / Microsoft.Build.BuildEngine / InvalidProjectFileExceptionTest.cs
index 6535f9798001252a2a75bed76ca68de340c8af90..e53de2132c33ce7d35a81fa54a21c998352187c1 100644 (file)
@@ -28,6 +28,7 @@
 using System;
 using System.IO;
 using System.Reflection;
+using System.Runtime.Serialization;
 using System.Xml;
 using Microsoft.Build.BuildEngine;
 using NUnit.Framework;
@@ -106,5 +107,44 @@ namespace MonoTests.Microsoft.Build.BuildEngine {
                        Assert.AreEqual (helpKeyword, ipfe.HelpKeyword, "A4");
                        */
                }
+
+               [Test]
+               [ExpectedException (typeof (ArgumentNullException))]
+               public void TestGetObjectData1 ()
+               {
+                       InvalidProjectFileException ipfe = new InvalidProjectFileException ();
+                       ipfe.GetObjectData (null, new StreamingContext ());
+               }
+
+               [Test]
+               public void TestGetObjectData2 ()
+               {
+                       StreamingContext sc = new StreamingContext ();
+                       SerializationInfo si = new SerializationInfo (typeof (InvalidProjectFileException), new FormatterConverter ());
+                       InvalidProjectFileException ipfe;
+                       string projectFile = "projectFile";
+                       int lineNumber = 1;
+                       int columnNumber = 2;
+                       int endLineNumber = 3;
+                       int endColumnNumber = 4;
+                       string message = "message";
+                       string errorSubcategory = "errorSubcategory";
+                       string errorCode = "CS0000";
+                       string helpKeyword = "helpKeyword";
+
+                       ipfe = new InvalidProjectFileException (projectFile, lineNumber, columnNumber, endLineNumber, endColumnNumber,
+                               message, errorSubcategory, errorCode, helpKeyword);
+                       ipfe.GetObjectData (si, sc);
+
+                       Assert.AreEqual (projectFile, si.GetString ("projectFile"), "A1");
+                       Assert.AreEqual (lineNumber, si.GetInt32 ("lineNumber"), "A2");
+                       Assert.AreEqual (columnNumber, si.GetInt32 ("columnNumber"), "A3");
+                       Assert.AreEqual (endLineNumber, si.GetInt32 ("endLineNumber"), "A4");
+                       Assert.AreEqual (endColumnNumber, si.GetInt32 ("endColumnNumber"), "A5");
+                       Assert.AreEqual (message, si.GetString ("Message"), "A6");
+                       Assert.AreEqual (errorSubcategory, si.GetString ("errorSubcategory"), "A7");
+                       Assert.AreEqual (errorCode, si.GetString ("errorCode"), "A8");
+                       Assert.AreEqual (helpKeyword, si.GetString ("helpKeyword"), "A9");
+               }
        }
 }