fixed tests
[mono.git] / mcs / class / System / Test / System.CodeDom.Compiler / CodeGeneratorTest.cs
1 //
2 // CodeGenerator unit tests
3 //
4 // Authors:
5 // Gert Driesen (drieseng@users.sourceforge.net)
6 //
7 // (c) Novell
8 //
9
10 using System;
11 using System.CodeDom;
12 using System.CodeDom.Compiler;
13 using System.IO;
14
15 using NUnit.Framework;
16
17 namespace CodeGeneratorTest
18 {
19         [TestFixture]
20         public class MockCodeGenerator : CodeGenerator
21         {
22                 [Test]
23                 public void IsCurrentTest ()
24                 {
25                         MockCodeGenerator codeGenerator = new MockCodeGenerator ();
26                         Assert.AreEqual (false, codeGenerator.IsCurrentClass, "#A1");
27                         Assert.AreEqual (false, codeGenerator.IsCurrentDelegate, "#A2");
28                         Assert.AreEqual (false, codeGenerator.IsCurrentEnum, "#A3");
29                         Assert.AreEqual (false, codeGenerator.IsCurrentInterface, "#A4");
30                         Assert.AreEqual (false, codeGenerator.IsCurrentStruct, "#A5");
31
32                         ((ICodeGenerator) codeGenerator).GenerateCodeFromType (GetClassType (),
33                                 new StringWriter (), new CodeGeneratorOptions ());
34                         Assert.AreEqual (true, codeGenerator.IsCurrentClass, "#B1");
35                         Assert.AreEqual (false, codeGenerator.IsCurrentDelegate, "#B2");
36                         Assert.AreEqual (false, codeGenerator.IsCurrentEnum, "#B3");
37                         Assert.AreEqual (false, codeGenerator.IsCurrentInterface, "#B4");
38                         Assert.AreEqual (false, codeGenerator.IsCurrentStruct, "#B5");
39
40                         ((ICodeGenerator) codeGenerator).GenerateCodeFromType (GetDelegateType (),
41                                 new StringWriter (), new CodeGeneratorOptions ());
42                         Assert.AreEqual (false, codeGenerator.IsCurrentClass, "#C1");
43                         Assert.AreEqual (true, codeGenerator.IsCurrentDelegate, "#C2");
44                         Assert.AreEqual (false, codeGenerator.IsCurrentEnum, "#C3");
45                         Assert.AreEqual (false, codeGenerator.IsCurrentInterface, "#C4");
46                         Assert.AreEqual (false, codeGenerator.IsCurrentStruct, "#C5");
47
48                         ((ICodeGenerator) codeGenerator).GenerateCodeFromType (GetEnumType (),
49                                 new StringWriter (), new CodeGeneratorOptions ());
50                         Assert.AreEqual (false, codeGenerator.IsCurrentClass, "#D1");
51                         Assert.AreEqual (false, codeGenerator.IsCurrentDelegate, "#D2");
52                         Assert.AreEqual (true, codeGenerator.IsCurrentEnum, "#D3");
53                         Assert.AreEqual (false, codeGenerator.IsCurrentInterface, "#D4");
54                         Assert.AreEqual (false, codeGenerator.IsCurrentStruct, "#D5");
55
56                         ((ICodeGenerator) codeGenerator).GenerateCodeFromType (GetInterfaceType (),
57                                 new StringWriter (), new CodeGeneratorOptions ());
58                         Assert.AreEqual (false, codeGenerator.IsCurrentClass, "#E1");
59                         Assert.AreEqual (false, codeGenerator.IsCurrentDelegate, "#E2");
60                         Assert.AreEqual (false, codeGenerator.IsCurrentEnum, "#E3");
61                         Assert.AreEqual (true, codeGenerator.IsCurrentInterface, "#E4");
62                         Assert.AreEqual (false, codeGenerator.IsCurrentStruct, "#E5");
63
64                         ((ICodeGenerator) codeGenerator).GenerateCodeFromType (GetStructType (),
65                                 new StringWriter (), new CodeGeneratorOptions ());
66                         Assert.AreEqual (false, codeGenerator.IsCurrentClass, "#F1");
67                         Assert.AreEqual (false, codeGenerator.IsCurrentDelegate, "#F2");
68                         Assert.AreEqual (false, codeGenerator.IsCurrentEnum, "#F3");
69                         Assert.AreEqual (false, codeGenerator.IsCurrentInterface, "#F4");
70                         Assert.AreEqual (true, codeGenerator.IsCurrentStruct, "#F5");
71                 }
72
73                 private CodeTypeDeclaration GetClassType ()
74                 {
75                         return new CodeTypeDeclaration ();
76                 }
77
78                 private CodeTypeDeclaration GetDelegateType ()
79                 {
80                         CodeTypeDeclaration type = new CodeTypeDelegate ();
81                         return type;
82                 }
83
84                 private CodeTypeDeclaration GetEnumType ()
85                 {
86                         CodeTypeDeclaration type = new CodeTypeDeclaration ();
87                         type.IsEnum = true;
88                         return type;
89                 }
90
91                 private CodeTypeDeclaration GetInterfaceType ()
92                 {
93                         CodeTypeDeclaration type = new CodeTypeDeclaration ();
94                         type.IsInterface = true;
95                         return type;
96                 }
97
98                 private CodeTypeDeclaration GetStructType ()
99                 {
100                         CodeTypeDeclaration type = new CodeTypeDeclaration ();
101                         type.IsStruct = true;
102                         return type;
103                 }
104
105                 #region Override implementation of CodeGenerator
106
107                 protected override string NullToken
108                 {
109                         get { return "zip"; }
110                 }
111
112                 protected override void OutputType (CodeTypeReference typeRef)
113                 {
114                 }
115
116                 protected override void GenerateArrayCreateExpression (CodeArrayCreateExpression e)
117                 {
118                 }
119
120                 protected override void GenerateBaseReferenceExpression (CodeBaseReferenceExpression e)
121                 {
122                 }
123
124                 protected override void GenerateCastExpression (CodeCastExpression e)
125                 {
126                 }
127
128                 protected override void GenerateDelegateCreateExpression (CodeDelegateCreateExpression e)
129                 {
130                 }
131
132                 protected override void GenerateFieldReferenceExpression (CodeFieldReferenceExpression e)
133                 {
134                 }
135
136                 protected override void GenerateArgumentReferenceExpression (CodeArgumentReferenceExpression e)
137                 {
138                 }
139
140                 protected override void GenerateVariableReferenceExpression (CodeVariableReferenceExpression e)
141                 {
142                 }
143
144                 protected override void GenerateIndexerExpression (CodeIndexerExpression e)
145                 {
146                 }
147
148                 protected override void GenerateArrayIndexerExpression (CodeArrayIndexerExpression e)
149                 {
150                 }
151
152                 protected override void GenerateSnippetExpression (CodeSnippetExpression e)
153                 {
154                 }
155
156                 protected override void GenerateMethodInvokeExpression (CodeMethodInvokeExpression e)
157                 {
158                 }
159
160                 protected override void GenerateMethodReferenceExpression (CodeMethodReferenceExpression e)
161                 {
162                 }
163
164                 protected override void GenerateEventReferenceExpression (CodeEventReferenceExpression e)
165                 {
166                 }
167
168                 protected override void GenerateDelegateInvokeExpression (CodeDelegateInvokeExpression e)
169                 {
170                 }
171
172                 protected override void GenerateObjectCreateExpression (CodeObjectCreateExpression e)
173                 {
174                 }
175
176                 protected override void GeneratePropertyReferenceExpression (CodePropertyReferenceExpression e)
177                 {
178                 }
179
180                 protected override void GeneratePropertySetValueReferenceExpression (CodePropertySetValueReferenceExpression e)
181                 {
182                 }
183
184                 protected override void GenerateThisReferenceExpression (CodeThisReferenceExpression e)
185                 {
186                 }
187
188                 protected override void GenerateExpressionStatement (CodeExpressionStatement e)
189                 {
190                 }
191
192                 protected override void GenerateIterationStatement (CodeIterationStatement e)
193                 {
194                 }
195
196                 protected override void GenerateThrowExceptionStatement (CodeThrowExceptionStatement e)
197                 {
198                 }
199
200                 protected override void GenerateComment (CodeComment e)
201                 {
202                 }
203
204                 protected override void GenerateMethodReturnStatement (CodeMethodReturnStatement e)
205                 {
206                 }
207
208                 protected override void GenerateConditionStatement (CodeConditionStatement e)
209                 {
210                 }
211
212                 protected override void GenerateTryCatchFinallyStatement (CodeTryCatchFinallyStatement e)
213                 {
214                 }
215
216                 protected override void GenerateAssignStatement (CodeAssignStatement e)
217                 {
218                 }
219
220                 protected override void GenerateAttachEventStatement (CodeAttachEventStatement e)
221                 {
222                 }
223
224                 protected override void GenerateRemoveEventStatement (CodeRemoveEventStatement e)
225                 {
226                 }
227
228                 protected override void GenerateLabeledStatement (CodeLabeledStatement e)
229                 {
230                 }
231
232                 protected override void GenerateVariableDeclarationStatement (CodeVariableDeclarationStatement e)
233                 {
234                 }
235
236                 protected override void GenerateLinePragmaStart (CodeLinePragma e)
237                 {
238                 }
239
240                 protected override void GenerateGotoStatement (CodeGotoStatement e)
241                 {
242                 }
243
244                 protected override void GenerateLinePragmaEnd (CodeLinePragma e)
245                 {
246                 }
247
248                 protected override void GenerateEvent (CodeMemberEvent e, CodeTypeDeclaration c)
249                 {
250                 }
251
252                 protected override void GenerateField (CodeMemberField e)
253                 {
254                 }
255
256                 protected override void GenerateSnippetMember (CodeSnippetTypeMember e)
257                 {
258                 }
259
260                 protected override void GenerateEntryPointMethod (CodeEntryPointMethod e, CodeTypeDeclaration c)
261                 {
262                 }
263
264                 protected override void GenerateMethod (CodeMemberMethod e, CodeTypeDeclaration c)
265                 {
266                 }
267
268                 protected override void GenerateProperty (CodeMemberProperty e, CodeTypeDeclaration c)
269                 {
270                 }
271
272                 protected override void GenerateConstructor (CodeConstructor e, CodeTypeDeclaration c)
273                 {
274                 }
275
276                 protected override void GenerateTypeConstructor (CodeTypeConstructor e)
277                 {
278                 }
279
280                 protected override void GenerateTypeStart (CodeTypeDeclaration e)
281                 {
282                 }
283
284                 protected override void GenerateTypeEnd (CodeTypeDeclaration e)
285                 {
286                 }
287
288                 protected override void GenerateNamespaceStart (CodeNamespace e)
289                 {
290                 }
291
292                 protected override void GenerateNamespaceEnd (CodeNamespace e)
293                 {
294                 }
295
296                 protected override void GenerateNamespaceImport (CodeNamespaceImport e)
297                 {
298                 }
299
300                 protected override void GenerateAttributeDeclarationsStart (CodeAttributeDeclarationCollection attributes)
301                 {
302                 }
303
304                 protected override void GenerateAttributeDeclarationsEnd (CodeAttributeDeclarationCollection attributes)
305                 {
306                 }
307
308                 protected override bool Supports (GeneratorSupport support)
309                 {
310                         return true;
311                 }
312
313                 protected override bool IsValidIdentifier (string value)
314                 {
315                         return true;
316                 }
317
318                 protected override string CreateEscapedIdentifier (string value)
319                 {
320                         return value;
321                 }
322
323                 protected override string CreateValidIdentifier (string value)
324                 {
325                         return value;
326                 }
327
328                 protected override string GetTypeOutput (CodeTypeReference value)
329                 {
330                         return "typeoutput";
331                 }
332
333                 protected override string QuoteSnippetString (string value)
334                 {
335                         return value;
336                 }
337
338                 #endregion Override implementation of CodeGenerator
339         }
340 }