2 // CodeGeneratorOptionsTest.cs
3 // - Unit tests for System.CodeDom.Compiler.CodeGeneratorOptions
6 // Sebastien Pouliot <sebastien@ximian.com>
8 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
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:
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
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.
30 using NUnit.Framework;
33 using System.CodeDom.Compiler;
35 namespace MonoTests.System.CodeDom.Compiler {
38 public class CodeGeneratorOptionsTest {
41 public void Defaults ()
43 CodeGeneratorOptions cgo = new CodeGeneratorOptions ();
44 Assert.IsTrue (cgo.BlankLinesBetweenMembers, "BlankLinesBetweenMembers");
45 Assert.AreEqual ("Block", cgo.BracingStyle, "BracingStyle");
46 Assert.IsFalse (cgo.ElseOnClosing, "ElseOnClosing");
47 Assert.AreEqual (" ", cgo.IndentString, "IndentString");
49 Assert.IsFalse (cgo.VerbatimOrder, "VerbatimOrder");
51 Assert.IsNull (cgo["BlankLinesBetweenMembers"], "this[BlankLinesBetweenMembers]");
52 Assert.IsNull (cgo["BracingStyle"], "this[BracingStyle]");
53 Assert.IsNull (cgo["ElseOnClosing"], "this[ElseOnClosing]");
54 Assert.IsNull (cgo["IndentString"], "this[IndentString]");
56 Assert.IsNull (cgo["VerbatimOrder"], "this[VerbatimOrder]");
61 public void ReSetDefault ()
63 CodeGeneratorOptions cgo = new CodeGeneratorOptions ();
65 cgo.BlankLinesBetweenMembers = cgo.BlankLinesBetweenMembers;
66 Assert.IsNotNull (cgo["BlankLinesBetweenMembers"], "this[BlankLinesBetweenMembers]");
67 cgo.BracingStyle = cgo.BracingStyle;
68 Assert.IsNotNull (cgo["BracingStyle"], "this[BracingStyle]");
69 cgo.ElseOnClosing = cgo.ElseOnClosing;
70 Assert.IsNotNull (cgo["ElseOnClosing"], "this[ElseOnClosing]");
71 cgo.IndentString = cgo.IndentString;
72 Assert.IsNotNull (cgo["IndentString"], "this[IndentString]");
74 cgo.VerbatimOrder = cgo.VerbatimOrder;
75 Assert.IsNotNull (cgo["VerbatimOrder"], "this[VerbatimOrder]");
80 public void Nullify ()
82 CodeGeneratorOptions cgo = new CodeGeneratorOptions ();
83 cgo.BlankLinesBetweenMembers = false;
84 Assert.IsFalse (cgo.BlankLinesBetweenMembers, "BlankLinesBetweenMembers-1");
85 cgo["BlankLinesBetweenMembers"] = null;
86 Assert.IsTrue (cgo.BlankLinesBetweenMembers, "BlankLinesBetweenMembers-2");
88 cgo.BracingStyle = "C";
89 Assert.AreEqual ("C", cgo.BracingStyle, "BracingStyle-1");
90 cgo["BracingStyle"] = null;
91 Assert.AreEqual ("Block", cgo.BracingStyle, "BracingStyle-2");
93 cgo.ElseOnClosing = true;
94 Assert.IsTrue (cgo.ElseOnClosing, "ElseOnClosing-1");
95 cgo["ElseOnClosing"] = null;
96 Assert.IsFalse (cgo.ElseOnClosing, "ElseOnClosing-2");
98 cgo.IndentString = "\t";
99 Assert.AreEqual ("\t", cgo.IndentString, "IndentString-1");
100 cgo["IndentString"] = null;
101 Assert.AreEqual (" ", cgo.IndentString, "IndentString-2");
103 cgo.VerbatimOrder = true;
104 Assert.IsTrue (cgo.VerbatimOrder, "VerbatimOrder-1");
105 cgo["VerbatimOrder"] = null;
106 Assert.IsFalse (cgo.VerbatimOrder, "VerbatimOrder-2");