Merge pull request #2396 from akoeplinger/flaky-osx-socket-test
[mono.git] / mcs / class / System / Test / System.CodeDom / CodeGotoStatementTest.cs
1 //
2 // CodeGotoStatementTest.cs
3 //      - Unit tests for System.CodeDom.CodeGotoStatement
4 //
5 // Author:
6 //      Gert Driesen  <drieseng@users.sourceforge.net>
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
32 using System;
33 using System.CodeDom;
34 using System.Collections.Specialized;
35
36 namespace MonoTests.System.CodeDom
37 {
38         [TestFixture]
39         public class CodeGotoStatementTest
40         {
41                 [Test]
42                 public void Constructor0 ()
43                 {
44                         CodeGotoStatement cgs = new CodeGotoStatement ();
45                         Assert.IsNull (cgs.Label, "#1");
46
47                         Assert.IsNotNull (cgs.StartDirectives, "#2");
48                         Assert.AreEqual (0, cgs.StartDirectives.Count, "#3");
49
50                         Assert.IsNotNull (cgs.EndDirectives, "#4");
51                         Assert.AreEqual (0, cgs.EndDirectives.Count, "#5");
52
53                         Assert.IsNotNull (cgs.UserData, "#6");
54                         Assert.AreEqual (typeof(ListDictionary), cgs.UserData.GetType (), "#7");
55                         Assert.AreEqual (0, cgs.UserData.Count, "#8");
56
57                         Assert.IsNull (cgs.LinePragma, "#9");
58
59                         CodeLinePragma clp = new CodeLinePragma ("mono", 10);
60                         cgs.LinePragma = clp;
61                         Assert.IsNotNull (cgs.LinePragma, "#10");
62                         Assert.AreSame (clp, cgs.LinePragma, "#11");
63
64                         cgs.LinePragma = null;
65                         Assert.IsNull (cgs.LinePragma, "#12");
66
67                         string label = "mono";
68                         cgs.Label = label;
69                         Assert.AreSame (label, cgs.Label, "#13");
70                 }
71
72                 [Test]
73                 public void Constructor1 ()
74                 {
75                         string label1 = "mono1";
76
77                         CodeGotoStatement cgs = new CodeGotoStatement (label1);
78                         Assert.IsNotNull (cgs.Label, "#1");
79                         Assert.AreSame (label1, cgs.Label, "#2");
80
81                         Assert.IsNotNull (cgs.StartDirectives, "#3");
82                         Assert.AreEqual (0, cgs.StartDirectives.Count, "#4");
83
84                         Assert.IsNotNull (cgs.EndDirectives, "#5");
85                         Assert.AreEqual (0, cgs.EndDirectives.Count, "#6");
86
87                         Assert.IsNotNull (cgs.UserData, "#7");
88                         Assert.AreEqual (typeof(ListDictionary), cgs.UserData.GetType (), "#8");
89                         Assert.AreEqual (0, cgs.UserData.Count, "#9");
90
91                         Assert.IsNull (cgs.LinePragma, "#10");
92
93                         string label2 = "mono2";
94                         cgs.Label = label2;
95                         Assert.AreSame (label2, cgs.Label, "#11");
96                 }
97
98                 [Test]
99                 [ExpectedException (typeof (ArgumentNullException))]
100                 public void Constructor1_NullLabel ()
101                 {
102                         CodeGotoStatement cgs = new CodeGotoStatement ((string) null);
103                 }
104
105                 [Test]
106                 [ExpectedException (typeof (ArgumentNullException))]
107                 public void Constructor1_EmptyLabel () {
108                         CodeGotoStatement cgs = new CodeGotoStatement (string.Empty);
109                 }
110
111                 [Test]
112                 [ExpectedException (typeof (ArgumentNullException))]
113                 public void Label_Null ()
114                 {
115                         CodeGotoStatement cgs = new CodeGotoStatement ("mono");
116                         cgs.Label = null;
117                 }
118
119                 [Test]
120                 [ExpectedException (typeof (ArgumentNullException))]
121                 public void Label_Empty () {
122                         CodeGotoStatement cgs = new CodeGotoStatement ("mono");
123                         cgs.Label = string.Empty;
124                 }
125         }
126 }