2 // Microsoft.CSharp.* Test Cases
5 // Eric Lebel (ericlebel@yahoo.ca)
6 // Gert Driesen (drieseng@users.sourceforge.net)
13 using System.CodeDom.Compiler;
14 using System.Globalization;
16 using Microsoft.CSharp;
18 using NUnit.Framework;
20 using MonoTests.System.CodeDom.Compiler;
22 namespace MonoTests.Microsoft.CSharp
25 public class CodeGeneratorFromTypeTest_Class : CodeGeneratorFromTypeTestBase
27 private CodeTypeDeclaration _typeDeclaration;
28 private ICodeGenerator _codeGenerator;
30 #region Override implementation of CodeGeneratorTestBase
32 protected override ICodeGenerator CodeGenerator
34 get { return _codeGenerator; }
38 public override void SetUp ()
41 _typeDeclaration = new CodeTypeDeclaration ();
43 CodeDomProvider provider = new CSharpCodeProvider ();
44 _codeGenerator = provider.CreateGenerator ();
47 #endregion Override implementation of CodeGeneratorTestBase
49 #region Override implementation of CodeGeneratorFromTypeTestBase
51 protected override CodeTypeDeclaration TypeDeclaration
53 get { return _typeDeclaration; }
57 public override void DefaultTypeTest ()
59 string code = GenerateDefaultType (Options);
60 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
61 "public class {{{0}" +
62 "}}{0}", NewLine), code);
66 public void DefaultTypeTest_C ()
68 CodeGeneratorOptions options = new CodeGeneratorOptions ();
69 options.BracingStyle = "C";
71 string code = GenerateDefaultType (options);
72 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
75 "}}{0}", NewLine), code);
79 [ExpectedException (typeof (NullReferenceException))]
80 public override void NullTypeTest ()
82 GenerateNullType (Options);
86 public override void SimpleTypeTest ()
88 string code = GenerateSimpleType (Options);
89 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
90 "public class Test1 {{{0}" +
91 "}}{0}", NewLine), code);
95 public void SimpleTypeTest_C ()
97 CodeGeneratorOptions options = new CodeGeneratorOptions ();
98 options.BracingStyle = "C";
100 string code = GenerateSimpleType (options);
101 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
102 "public class Test1{0}" +
104 "}}{0}", NewLine), code);
108 public override void DerivedTypeTest ()
110 string code = GenerateDerivedType (Options);
111 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
113 "internal abstract class Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
115 "abstract class Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
117 "}}{0}", NewLine), code);
121 public override void AttributesAndTypeTest ()
123 string code = GenerateAttributesAndType (Options);
124 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
127 "public class Test1 {{{0}" +
128 "}}{0}", NewLine), code);
132 public override void EventMembersTypeTest1 ()
134 string code = GenerateEventMembersType1 (Options);
135 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
136 "public class Test1 {{{0}" +
140 " private event void ;{0}" +
141 "}}{0}", NewLine), code);
145 public override void EventMembersTypeTest2 ()
147 string code = GenerateEventMembersType2 (Options);
148 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
149 "public class Test1 {{{0}" +
151 " public event int Click;{0}" +
152 "}}{0}", NewLine), code);
156 public override void EventImplementationTypes ()
158 string code = GenerateEventImplementationTypes (Options);
159 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
160 "public class Test1 {{{0}" +
163 " internal event int Click;{0}" +
165 " /*FamANDAssem*/ internal event int Click;{0}" +
167 "}}{0}", NewLine), code);
171 /// Ensure no access modifiers are output if PrivateImplementationType
175 public override void EventPrivateImplementationType ()
177 string code = GenerateEventPrivateImplementationType (Options);
178 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
179 "public class Test1 {{{0}" +
181 " event int System.Int32.Click;{0}" +
182 "}}{0}", NewLine), code);
186 /// If both ImplementationTypes and PrivateImplementationType are set,
187 /// then only ImplementationTypes are output.
190 public override void EventImplementationTypeOrder ()
192 string code = GenerateEventImplementationTypeOrder (Options);
193 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
194 "public class Test1 {{{0}" +
196 " event int System.Int32.Click;{0}" +
197 "}}{0}", NewLine), code);
201 public override void FieldMembersAttributesTest ()
203 string code = GenerateFieldMembersAttributes (Options);
204 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
205 "public class Test1 {{{0}" +
209 " private void ;{0}" +
210 "}}{0}", NewLine), code);
214 public override void FieldMembersTypeTest ()
216 string code = GenerateFieldMembersType (MemberAttributes.Public, Options);
217 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
218 "public class Test1 {{{0}" +
220 " public int Name = 2;{0}" +
221 "}}{0}", NewLine), code);
225 public override void FieldNewSlotTest ()
227 string code = GenerateFieldMembersType (MemberAttributes.Assembly |
228 MemberAttributes.New, Options);
229 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
230 "public class Test1 {{{0}" +
232 " internal new int Name = 2;{0}" +
233 "}}{0}", NewLine), code);
237 public override void PropertyMembersTypeTest1 ()
239 string code = GeneratePropertyMembersAttributes (Options);
240 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
241 "public class Test1 {{{0}" +
245 " private void {{{0}" +
247 "}}{0}", NewLine), code);
251 public void PropertyMembersTypeTest1_C ()
253 CodeGeneratorOptions options = new CodeGeneratorOptions ();
254 options.BracingStyle = "C";
256 string code = GeneratePropertyMembersAttributes (options);
257 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
258 "public class Test1{0}" +
263 " private void {0}" +
266 "}}{0}", NewLine), code);
270 public override void PropertyMembersTypeTest2 ()
272 string code = GeneratePropertyMembersType (MemberAttributes.Public,
273 false, false, Options);
274 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
275 "public class Test1 {{{0}" +
277 " public virtual int Name {{{0}" +
279 "}}{0}", NewLine), code);
283 public override void PropertyMembersTypeGetOnly ()
285 string code = GeneratePropertyMembersType (MemberAttributes.Family,
286 true, false, Options);
287 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
288 "public class Test1 {{{0}" +
290 " protected virtual int Name {{{0}" +
294 "}}{0}", NewLine), code);
298 public override void PropertyMembersTypeSetOnly ()
300 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
301 false, true, Options);
302 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
303 "public class Test1 {{{0}" +
306 " internal virtual int Name {{{0}" +
308 " internal int Name {{{0}" +
313 "}}{0}", NewLine), code);
317 public override void PropertyMembersTypeGetSet ()
319 string code = GeneratePropertyMembersType (MemberAttributes.Family,
320 true, true, Options);
321 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
322 "public class Test1 {{{0}" +
324 " protected virtual int Name {{{0}" +
330 "}}{0}", NewLine), code);
334 public void PropertyMembersTypeGetSet_C ()
336 CodeGeneratorOptions options = new CodeGeneratorOptions ();
337 options.BracingStyle = "C";
339 string code = GeneratePropertyMembersType (MemberAttributes.Family,
340 true, true, options);
341 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
342 "public class Test1{0}" +
345 " protected virtual int Name{0}" +
354 "}}{0}", NewLine), code);
358 public override void PropertyMembersTypeFamilyOrAssembly ()
360 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
361 false, false, Options);
362 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
363 "public class Test1 {{{0}" +
365 " protected internal int Name {{{0}" +
367 "}}{0}", NewLine), code);
371 public override void PropertyMembersTypeAssembly ()
373 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
374 false, false, Options);
375 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
376 "public class Test1 {{{0}" +
379 " internal virtual int Name {{{0}" +
381 " internal int Name {{{0}" +
384 "}}{0}", NewLine), code);
388 /// Apparently VB.NET CodeDOM also allows properties that aren't indexers
389 /// to have parameters.
392 public override void PropertyParametersTest ()
394 string code = GeneratePropertyParameters (Options);
395 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
396 "public class Test1 {{{0}" +
398 " public virtual int Name {{{0}" +
400 "}}{0}", NewLine), code);
404 public override void PropertyIndexerTest1 ()
406 string code = GeneratePropertyIndexer (MemberAttributes.Public,
407 false, false, true, Options);
408 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
409 "public class Test1 {{{0}" +
411 " public virtual int this[object value1, ref int value2] {{{0}" +
413 "}}{0}", NewLine), code);
417 public override void PropertyIndexerTest2 ()
419 string code = GeneratePropertyIndexer (MemberAttributes.Public,
420 false, false, false, Options);
421 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
422 "public class Test1 {{{0}" +
424 " public virtual int iTem {{{0}" +
426 "}}{0}", NewLine), code);
430 public override void PropertyIndexerGetOnly ()
432 string code = GeneratePropertyIndexer (MemberAttributes.Family,
433 true, false, true, Options);
434 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
435 "public class Test1 {{{0}" +
437 " protected virtual int this[object value1, ref int value2] {{{0}" +
441 "}}{0}", NewLine), code);
445 public override void PropertyIndexerSetOnly ()
447 string code = GeneratePropertyIndexer (MemberAttributes.Family,
448 false, true, true, Options);
449 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
450 "public class Test1 {{{0}" +
452 " protected virtual int this[object value1, ref int value2] {{{0}" +
456 "}}{0}", NewLine), code);
460 public override void PropertyImplementationTypes ()
462 string code = GeneratePropertyImplementationTypes (Options);
463 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
464 "public class Test1 {{{0}" +
466 " public virtual int Name {{{0}" +
468 "}}{0}", NewLine), code);
472 /// Ensure that Overloads keyword is output for a property which has
473 /// explicitly been marked as Overloaded.
476 public override void PropertyOverloadsTest1 ()
478 string code = GeneratePropertyOverloads1 (Options);
479 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
480 "public class Test1 {{{0}" +
482 " protected virtual int Name {{{0}" +
484 "}}{0}", NewLine), code);
488 /// Ensure that Overloads keyword is output if multiple properties with
489 /// the same name are defined.
492 public override void PropertyOverloadsTest2 ()
494 string code = GeneratePropertyOverloads2 (Options);
495 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
496 "public class Test1 {{{0}" +
498 " public virtual int Name {{{0}" +
501 " private int Name {{{0}" +
503 "}}{0}", NewLine), code);
507 /// Ensure that a property with a PrivateImplementationType and with
508 /// the same name does not qualify as an overload.
511 public override void PropertyOverloadsTest3 ()
513 string code = GeneratePropertyOverloads3 (Options);
514 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
515 "public class Test1 {{{0}" +
517 " public virtual int Name {{{0}" +
520 " int System.Int32.Name {{{0}" +
522 "}}{0}", NewLine), code);
526 /// Ensure no access modifiers are output if PrivateImplementationType
527 /// is set. Default keyword is also not output in this case.
530 public override void PropertyPrivateImplementationType ()
532 string code = GeneratePropertyPrivateImplementationType (Options);
533 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
534 "public class Test1 {{{0}" +
536 " int System.Int32.this[object value1] {{{0}" +
538 "}}{0}", NewLine), code);
542 /// If both ImplementationTypes and PrivateImplementationType are set,
543 /// then only ImplementationTypes are output.
546 public override void PropertyImplementationTypeOrder ()
548 string code = GeneratePropertyImplementationTypeOrder (Options);
549 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
550 "public class Test1 {{{0}" +
552 " int System.Int32.this[object value1] {{{0}" +
554 "}}{0}", NewLine), code);
558 public override void PropertyNewSlotTest ()
560 string code = GeneratePropertyMembersType (MemberAttributes.Private |
561 MemberAttributes.New, true, true, Options);
562 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
563 "public class Test1 {{{0}" +
565 " private new int Name {{{0}" +
571 "}}{0}", NewLine), code);
575 public override void MethodMembersTypeTest1 ()
577 string code = GenerateMethodMembersType1 (Options);
578 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
579 "public class Test1 {{{0}" +
583 " private void () {{{0}" +
585 "}}{0}", NewLine), code);
589 public void MethodMembersTypeTest1_C ()
591 CodeGeneratorOptions options = new CodeGeneratorOptions ();
592 options.BracingStyle = "C";
594 string code = GenerateMethodMembersType1 (options);
595 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
596 "public class Test1{0}" +
601 " private void (){0}" +
604 "}}{0}", NewLine), code);
608 public override void MethodMembersTypeTest2 ()
610 string code = GenerateMethodMembersType2 (Options);
611 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
612 "public class Test1 {{{0}" +
614 " public virtual int Something(object value1, object value2, out int index, ref int count) {{{0}" +
616 "}}{0}", NewLine), code);
620 public override void MethodMembersTypeTest3 ()
622 string code = GenerateMethodMembersType3 (Options);
623 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
624 "public class Test1 {{{0}" +
626 " public virtual int Something([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int ) {{{0}" +
628 "}}{0}", NewLine), code);
632 public override void MethodImplementationTypes ()
634 string code = GenerateMethodImplementationTypes (Options);
635 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
636 "public class Test1 {{{0}" +
639 " internal virtual int Execute() {{{0}" +
641 " internal int Execute() {{{0}" +
644 "}}{0}", NewLine), code);
648 public override void MethodOverloadsTest1 ()
650 string code = GenerateMethodOverloads1 (Options);
651 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
652 "public class Test1 {{{0}" +
655 " internal virtual int Execute() {{{0}" +
657 " internal int Execute() {{{0}" +
660 "}}{0}", NewLine), code);
664 public override void MethodOverloadsTest2 ()
666 string code = GenerateMethodOverloads2 (Options);
667 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
668 "public class Test1 {{{0}" +
670 " public virtual void Execute() {{{0}" +
673 " private int Execute(object value1) {{{0}" +
675 "}}{0}", NewLine), code);
679 /// Ensure that a method with a PrivateImplementationType and with
680 /// the same name does not qualify as an overload.
683 public override void MethodOverloadsTest3 ()
685 string code = GenerateMethodOverloads3 (Options);
686 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
687 "public class Test1 {{{0}" +
689 " public virtual void Execute() {{{0}" +
692 " int System.Int32.Execute(object value1) {{{0}" +
694 "}}{0}", NewLine), code);
698 /// Ensure no access modifiers are output if PrivateImplementationType
702 public override void MethodPrivateImplementationType ()
704 string code = GenerateMethodPrivateImplementationType (Options);
705 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
706 "public class Test1 {{{0}" +
708 " int System.Int32.Execute(object value1) {{{0}" +
710 "}}{0}", NewLine), code);
714 /// If both ImplementationTypes and PrivateImplementationType are set,
715 /// then only ImplementationTypes are output.
718 public override void MethodImplementationTypeOrder ()
720 string code = GenerateMethodImplementationTypeOrder (Options);
721 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
722 "public class Test1 {{{0}" +
724 " int System.Int32.Execute(object value1) {{{0}" +
726 "}}{0}", NewLine), code);
730 public override void MethodReturnTypeAttributes ()
732 string code = GenerateMethodReturnTypeAttributes (Options);
733 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
734 "public class Test1 {{{0}" +
738 " [return: C(A1=false, A2=true)]{0}" +
739 " [return: D()]{0}" +
740 " public virtual int Execute() {{{0}" +
742 "}}{0}", NewLine), code);
746 public override void MethodNewSlotTest ()
748 string code = GenerateMethodNewSlot (Options);
749 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
750 "public class Test1 {{{0}" +
752 " public new virtual int Execute() {{{0}" +
754 "}}{0}", NewLine), code);
758 public override void ConstructorAttributesTest ()
760 string code = GenerateConstructorAttributes (Options);
761 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
762 "public class Test1 {{{0}" +
766 " private Test1() {{{0}" +
768 "}}{0}", NewLine), code);
772 public void ConstructorAttributesTest_C ()
774 CodeGeneratorOptions options = new CodeGeneratorOptions ();
775 options.BracingStyle = "C";
777 string code = GenerateConstructorAttributes (options);
778 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
779 "public class Test1{0}" +
784 " private Test1(){0}" +
787 "}}{0}", NewLine), code);
791 public override void ConstructorParametersTest ()
793 string code = GenerateConstructorParameters (Options);
794 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
795 "public class Test1 {{{0}" +
797 " public Test1(object value1, object value2, out int index, ref int count) {{{0}" +
799 "}}{0}", NewLine), code);
803 public override void ConstructorParameterAttributesTest ()
805 string code = GenerateConstructorParameterAttributes (Options);
806 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
807 "public class Test1 {{{0}" +
809 " private Test1([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int index) {{{0}" +
811 "}}{0}", NewLine), code);
815 public override void BaseConstructorSingleArg ()
817 string code = GenerateBaseConstructor (false, Options);
818 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
819 "public class Test1 {{{0}" +
821 " protected Test1(object value1, out int value2) : {0}" +
822 " base(value1) {{{0}" +
824 "}}{0}", NewLine), code);
828 public override void BaseConstructorMultipleArgs ()
830 string code = GenerateBaseConstructor (true, Options);
831 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
832 "public class Test1 {{{0}" +
834 " protected Test1(object value1, out int value2) : {0}" +
835 " base(value1, value2) {{{0}" +
837 "}}{0}", NewLine), code);
841 public override void ChainedConstructorSingleArg ()
843 string code = GenerateChainedConstructor (false, Options);
844 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
845 "public class Test1 {{{0}" +
847 " public Test1(object value1, out int value2) : {0}" +
848 " base(value3) : {0}" +
849 " this(value1) {{{0}" +
851 "}}{0}", NewLine), code);
855 public override void ChainedConstructorMultipleArgs ()
857 string code = GenerateChainedConstructor (true, Options);
858 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
859 "public class Test1 {{{0}" +
861 " public Test1(object value1, out int value2) : {0}" +
862 " base(value3) : {0}" +
863 " this(value1, value2) {{{0}" +
865 "}}{0}", NewLine), code);
869 public override void TypeConstructorTest ()
871 string code = GenerateTypeConstructor (Options);
872 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
873 "public class Test1 {{{0}" +
879 " static Test1() {{{0}" +
881 "}}{0}", NewLine), code);
885 public void TypeConstructorTest_C ()
887 CodeGeneratorOptions options = new CodeGeneratorOptions ();
888 options.BracingStyle = "C";
890 string code = GenerateTypeConstructor (options);
891 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
892 "public class Test1{0}" +
899 " static Test1(){0}" +
902 "}}{0}", NewLine), code);
906 public override void EntryPointMethodTest ()
908 string code = GenerateEntryPointMethod (Options);
909 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
910 "public class Test1 {{{0}" +
914 " public static int Main() {{{0}" +
916 " public static void Main() {{{0}" +
918 " Test.InnerType x;{0}" +
920 "}}{0}", NewLine), code);
923 #endregion Override implementation of CodeGeneratorFromTypeTestBase
927 public void GenericCodeTypeReferencesTest ()
929 string code = GenerateGenericCodeTypeReferences (Options);
930 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
931 "public class Test {{{0}" +
933 " private System.Nullable<int> Foo;{0}" +
935 " private System.Nullable<> Bar;{0}" +
936 "}}{0}", NewLine), code);
942 public class CodeGeneratorFromTypeTest_Delegate : CodeGeneratorFromTypeTestBase
944 private CodeTypeDeclaration _typeDeclaration;
945 private ICodeGenerator _codeGenerator;
947 #region Override implementation of CodeGeneratorTestBase
949 protected override ICodeGenerator CodeGenerator
951 get { return _codeGenerator; }
955 public override void SetUp ()
958 _typeDeclaration = new CodeTypeDelegate ();
960 CodeDomProvider provider = new CSharpCodeProvider ();
961 _codeGenerator = provider.CreateGenerator ();
964 #endregion Override implementation of CodeGeneratorTestBase
966 #region Override implementation of CodeGeneratorFromTypeTestBase
968 protected override CodeTypeDeclaration TypeDeclaration
970 get { return _typeDeclaration; }
974 public override void DefaultTypeTest ()
976 string code = GenerateDefaultType (Options);
977 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
978 "public delegate void ();{0}", NewLine), code);
982 [ExpectedException (typeof (NullReferenceException))]
983 public override void NullTypeTest ()
985 GenerateNullType (Options);
989 public override void SimpleTypeTest ()
991 string code = GenerateSimpleType (Options);
992 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
993 "public delegate void Test1();{0}", NewLine), code);
997 public override void DerivedTypeTest ()
999 string code = GenerateDerivedType (Options);
1000 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1001 "delegate void Test1();{0}", NewLine), code);
1005 public override void AttributesAndTypeTest ()
1007 CodeTypeDelegate delegateDecl = new CodeTypeDelegate ();
1008 delegateDecl.ReturnType = new CodeTypeReference (typeof (int));
1010 _typeDeclaration = delegateDecl;
1012 string code = GenerateAttributesAndType (Options);
1013 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1016 "public delegate int Test1();{0}", NewLine), code);
1020 public override void EventMembersTypeTest1 ()
1022 string code = GenerateEventMembersType1 (Options);
1023 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1024 "public delegate void Test1();{0}{0}", NewLine), code);
1028 public override void EventMembersTypeTest2 ()
1030 string code = GenerateEventMembersType2 (Options);
1031 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1032 "public delegate void Test1();{0}{0}", NewLine), code);
1036 public override void EventImplementationTypes ()
1038 string code = GenerateEventImplementationTypes (Options);
1039 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1040 "public delegate void Test1();{0}{0}", NewLine), code);
1044 /// Ensure no access modifiers are output if PrivateImplementationType
1048 public override void EventPrivateImplementationType ()
1050 string code = GenerateEventPrivateImplementationType (Options);
1051 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1052 "public delegate void Test1();{0}{0}", NewLine), code);
1056 /// If both ImplementationTypes and PrivateImplementationType are set,
1057 /// then only ImplementationTypes are output.
1060 public override void EventImplementationTypeOrder ()
1062 string code = GenerateEventImplementationTypeOrder (Options);
1063 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1064 "public delegate void Test1();{0}{0}", NewLine), code);
1068 public override void FieldMembersAttributesTest ()
1070 string code = GenerateFieldMembersAttributes (Options);
1071 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1072 "public delegate void Test1();{0}{0}", NewLine), code);
1076 public override void FieldMembersTypeTest ()
1078 string code = GenerateFieldMembersType (MemberAttributes.Public, Options);
1079 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1080 "public delegate void Test1();{0}{0}", NewLine), code);
1084 public override void FieldNewSlotTest ()
1086 string code = GenerateFieldMembersType (MemberAttributes.Assembly |
1087 MemberAttributes.New, Options);
1088 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1089 "public delegate void Test1();{0}{0}", NewLine), code);
1093 public override void PropertyMembersTypeTest1 ()
1095 string code = GeneratePropertyMembersAttributes (Options);
1096 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1097 "public delegate void Test1();{0}{0}", NewLine), code);
1101 public override void PropertyMembersTypeTest2 ()
1103 string code = GeneratePropertyMembersType (MemberAttributes.Public,
1104 false, false, Options);
1105 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1106 "public delegate void Test1();{0}{0}", NewLine), code);
1110 public override void PropertyMembersTypeGetOnly ()
1112 string code = GeneratePropertyMembersType (MemberAttributes.Family,
1113 true, false, Options);
1114 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1115 "public delegate void Test1();{0}{0}", NewLine), code);
1119 public override void PropertyMembersTypeSetOnly ()
1121 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
1122 false, true, Options);
1123 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1124 "public delegate void Test1();{0}{0}", NewLine), code);
1128 public override void PropertyMembersTypeGetSet ()
1130 string code = GeneratePropertyMembersType (MemberAttributes.Family,
1131 true, true, Options);
1132 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1133 "public delegate void Test1();{0}{0}", NewLine), code);
1137 public override void PropertyMembersTypeFamilyOrAssembly ()
1139 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
1140 false, false, Options);
1141 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1142 "public delegate void Test1();{0}{0}", NewLine), code);
1146 public override void PropertyMembersTypeAssembly ()
1148 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
1149 false, false, Options);
1150 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1151 "public delegate void Test1();{0}{0}", NewLine), code);
1155 public override void PropertyParametersTest ()
1157 string code = GeneratePropertyParameters (Options);
1158 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1159 "public delegate void Test1();{0}{0}", NewLine), code);
1163 public override void PropertyIndexerTest1 ()
1165 string code = GeneratePropertyIndexer (MemberAttributes.Public,
1166 false, false, true, Options);
1167 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1168 "public delegate void Test1();{0}{0}", NewLine), code);
1172 public override void PropertyIndexerTest2 ()
1174 string code = GeneratePropertyIndexer (MemberAttributes.Public,
1175 false, false, false, Options);
1176 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1177 "public delegate void Test1();{0}{0}", NewLine), code);
1181 public override void PropertyIndexerGetOnly ()
1183 string code = GeneratePropertyIndexer (MemberAttributes.Family,
1184 true, false, true, Options);
1185 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1186 "public delegate void Test1();{0}{0}", NewLine), code);
1190 public override void PropertyIndexerSetOnly ()
1192 string code = GeneratePropertyIndexer (MemberAttributes.Family,
1193 false, true, true, Options);
1194 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1195 "public delegate void Test1();{0}{0}", NewLine), code);
1199 public override void PropertyImplementationTypes ()
1201 string code = GeneratePropertyImplementationTypes (Options);
1202 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1203 "public delegate void Test1();{0}{0}", NewLine), code);
1207 public override void PropertyOverloadsTest1 ()
1209 string code = GeneratePropertyOverloads1 (Options);
1210 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1211 "public delegate void Test1();{0}{0}", NewLine), code);
1215 public override void PropertyOverloadsTest2 ()
1217 string code = GeneratePropertyOverloads2 (Options);
1218 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1219 "public delegate void Test1();{0}{0}{0}", NewLine), code);
1223 public override void PropertyOverloadsTest3 ()
1225 string code = GeneratePropertyOverloads3 (Options);
1226 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1227 "public delegate void Test1();{0}{0}{0}", NewLine), code);
1231 public override void PropertyPrivateImplementationType ()
1233 string code = GeneratePropertyPrivateImplementationType (Options);
1234 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1235 "public delegate void Test1();{0}{0}", NewLine), code);
1239 public override void PropertyImplementationTypeOrder ()
1241 string code = GeneratePropertyImplementationTypeOrder (Options);
1242 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1243 "public delegate void Test1();{0}{0}", NewLine), code);
1247 public override void PropertyNewSlotTest ()
1249 string code = GeneratePropertyMembersType (MemberAttributes.Private |
1250 MemberAttributes.New, true, true, Options);
1251 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1252 "public delegate void Test1();{0}{0}", NewLine), code);
1256 public override void MethodMembersTypeTest1 ()
1258 string code = GenerateMethodMembersType1 (Options);
1259 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1260 "public delegate void Test1();{0}{0}", NewLine), code);
1264 public override void MethodMembersTypeTest2 ()
1266 string code = GenerateMethodMembersType2 (Options);
1267 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1268 "public delegate void Test1();{0}{0}", NewLine), code);
1272 public override void MethodMembersTypeTest3 ()
1274 string code = GenerateMethodMembersType3 (Options);
1275 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1276 "public delegate void Test1();{0}{0}", NewLine), code);
1280 public override void MethodImplementationTypes ()
1282 string code = GenerateMethodImplementationTypes (Options);
1283 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1284 "public delegate void Test1();{0}{0}", NewLine), code);
1288 public override void MethodOverloadsTest1 ()
1290 string code = GenerateMethodOverloads1 (Options);
1291 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1292 "public delegate void Test1();{0}{0}", NewLine), code);
1296 public override void MethodOverloadsTest2 ()
1298 string code = GenerateMethodOverloads2 (Options);
1299 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1300 "public delegate void Test1();{0}{0}{0}", NewLine), code);
1304 public override void MethodOverloadsTest3 ()
1306 string code = GenerateMethodOverloads3 (Options);
1307 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1308 "public delegate void Test1();{0}{0}{0}", NewLine), code);
1312 public override void MethodPrivateImplementationType ()
1314 string code = GenerateMethodPrivateImplementationType (Options);
1315 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1316 "public delegate void Test1();{0}{0}", NewLine), code);
1320 public override void MethodImplementationTypeOrder ()
1322 string code = GenerateMethodImplementationTypeOrder (Options);
1323 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1324 "public delegate void Test1();{0}{0}", NewLine), code);
1328 public override void MethodReturnTypeAttributes ()
1330 string code = GenerateMethodReturnTypeAttributes (Options);
1331 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1332 "public delegate void Test1();{0}{0}", NewLine), code);
1336 public override void MethodNewSlotTest ()
1338 string code = GenerateMethodNewSlot (Options);
1339 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1340 "public delegate void Test1();{0}{0}", NewLine), code);
1344 public override void ConstructorAttributesTest ()
1346 string code = GenerateConstructorAttributes (Options);
1347 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1348 "public delegate void Test1();{0}{0}", NewLine), code);
1352 public override void ConstructorParametersTest ()
1354 string code = GenerateConstructorParameters (Options);
1355 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1356 "public delegate void Test1();{0}{0}", NewLine), code);
1360 public override void ConstructorParameterAttributesTest ()
1362 string code = GenerateConstructorParameterAttributes (Options);
1363 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1364 "public delegate void Test1();{0}{0}", NewLine), code);
1368 public override void BaseConstructorSingleArg ()
1370 string code = GenerateBaseConstructor (false, Options);
1371 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1372 "public delegate void Test1();{0}{0}", NewLine), code);
1376 public override void BaseConstructorMultipleArgs ()
1378 string code = GenerateBaseConstructor (true, Options);
1379 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1380 "public delegate void Test1();{0}{0}", NewLine), code);
1384 public override void ChainedConstructorSingleArg ()
1386 string code = GenerateChainedConstructor (false, Options);
1387 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1388 "public delegate void Test1();{0}{0}", NewLine), code);
1392 public override void ChainedConstructorMultipleArgs ()
1394 string code = GenerateChainedConstructor (true, Options);
1395 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1396 "public delegate void Test1();{0}{0}", NewLine), code);
1400 public override void TypeConstructorTest ()
1402 string code = GenerateTypeConstructor (Options);
1403 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1404 "public delegate void Test1();{0}{0}", NewLine), code);
1408 public override void EntryPointMethodTest ()
1410 string code = GenerateEntryPointMethod (Options);
1411 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1412 "public delegate void Test1();{0}{0}" +
1415 "public static int Main() {{{0}" +
1417 "public static void Main() {{{0}" +
1419 " Test.InnerType x;{0}" +
1420 "}}{0}", NewLine), code);
1423 #endregion Override implementation of CodeGeneratorFromTypeTestBase
1427 public class CodeGeneratorFromTypeTest_Interface : CodeGeneratorFromTypeTestBase
1429 private CodeTypeDeclaration _typeDeclaration;
1430 private ICodeGenerator _codeGenerator;
1432 #region Override implementation of CodeGeneratorTestBase
1434 protected override ICodeGenerator CodeGenerator
1436 get { return _codeGenerator; }
1440 public override void SetUp ()
1443 _typeDeclaration = new CodeTypeDeclaration ();
1444 _typeDeclaration.IsInterface = true;
1446 CodeDomProvider provider = new CSharpCodeProvider ();
1447 _codeGenerator = provider.CreateGenerator ();
1450 #endregion Override implementation of CodeGeneratorTestBase
1452 #region Override implementation of CodeGeneratorFromTypeTestBase
1454 protected override CodeTypeDeclaration TypeDeclaration
1456 get { return _typeDeclaration; }
1460 public override void DefaultTypeTest ()
1462 string code = GenerateDefaultType (Options);
1463 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1464 "public interface {{{0}" +
1465 "}}{0}", NewLine), code);
1469 public void DefaultTypeTest_C ()
1471 CodeGeneratorOptions options = new CodeGeneratorOptions ();
1472 options.BracingStyle = "C";
1474 string code = GenerateDefaultType (options);
1475 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1476 "public interface {0}" +
1478 "}}{0}", NewLine), code);
1482 [ExpectedException (typeof (NullReferenceException))]
1483 public override void NullTypeTest ()
1485 GenerateNullType (Options);
1489 public override void SimpleTypeTest ()
1491 string code = GenerateSimpleType (Options);
1492 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1493 "public interface Test1 {{{0}" +
1494 "}}{0}", NewLine), code);
1498 public void SimpleTypeTest_C ()
1500 CodeGeneratorOptions options = new CodeGeneratorOptions ();
1501 options.BracingStyle = "C";
1503 string code = GenerateSimpleType (options);
1504 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1505 "public interface Test1{0}" +
1507 "}}{0}", NewLine), code);
1511 public override void DerivedTypeTest ()
1513 string code = GenerateDerivedType (Options);
1514 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1516 "internal interface Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
1518 "interface Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
1520 "}}{0}", NewLine), code);
1524 public override void AttributesAndTypeTest ()
1526 string code = GenerateAttributesAndType (Options);
1527 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1530 "public interface Test1 {{{0}" +
1531 "}}{0}", NewLine), code);
1535 public override void EventMembersTypeTest1 ()
1537 string code = GenerateEventMembersType1 (Options);
1538 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1539 "public interface Test1 {{{0}" +
1543 " private event void ;{0}" +
1544 "}}{0}", NewLine), code);
1548 public override void EventMembersTypeTest2 ()
1550 string code = GenerateEventMembersType2 (Options);
1551 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1552 "public interface Test1 {{{0}" +
1554 " public event int Click;{0}" +
1555 "}}{0}", NewLine), code);
1559 public override void EventImplementationTypes ()
1561 string code = GenerateEventImplementationTypes (Options);
1562 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1563 "public interface Test1 {{{0}" +
1566 " internal event int Click;{0}" +
1568 " /*FamANDAssem*/ internal event int Click;{0}" +
1570 "}}{0}", NewLine), code);
1574 public override void EventPrivateImplementationType ()
1576 string code = GenerateEventPrivateImplementationType (Options);
1577 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1578 "public interface Test1 {{{0}" +
1580 " event int System.Int32.Click;{0}" +
1581 "}}{0}", NewLine), code);
1585 public override void EventImplementationTypeOrder ()
1587 string code = GenerateEventImplementationTypeOrder (Options);
1588 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1589 "public interface Test1 {{{0}" +
1591 " event int System.Int32.Click;{0}" +
1592 "}}{0}", NewLine), code);
1596 public override void FieldMembersAttributesTest ()
1598 string code = GenerateFieldMembersAttributes (Options);
1599 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1600 "public interface Test1 {{{0}" +
1602 "}}{0}", NewLine), code);
1606 public override void FieldMembersTypeTest ()
1608 string code = GenerateFieldMembersType (MemberAttributes.Public, Options);
1609 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1610 "public interface Test1 {{{0}" +
1612 "}}{0}", NewLine), code);
1616 public override void FieldNewSlotTest ()
1618 string code = GenerateFieldMembersType (MemberAttributes.Assembly |
1619 MemberAttributes.New, Options);
1620 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1621 "public interface Test1 {{{0}" +
1623 "}}{0}", NewLine), code);
1627 public override void PropertyMembersTypeTest1 ()
1629 string code = GeneratePropertyMembersAttributes (Options);
1630 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1631 "public interface Test1 {{{0}" +
1637 "}}{0}", NewLine), code);
1641 public override void PropertyMembersTypeTest2 ()
1643 string code = GeneratePropertyMembersType (MemberAttributes.Public,
1644 false, false, Options);
1645 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1646 "public interface Test1 {{{0}" +
1650 "}}{0}", NewLine), code);
1654 public override void PropertyMembersTypeGetOnly ()
1656 string code = GeneratePropertyMembersType (MemberAttributes.Family,
1657 true, false, Options);
1658 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1659 "public interface Test1 {{{0}" +
1664 "}}{0}", NewLine), code);
1668 public override void PropertyMembersTypeSetOnly ()
1670 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
1671 false, true, Options);
1672 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1673 "public interface Test1 {{{0}" +
1678 "}}{0}", NewLine), code);
1682 public override void PropertyMembersTypeGetSet ()
1684 string code = GeneratePropertyMembersType (MemberAttributes.Family,
1685 true, true, Options);
1686 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1687 "public interface Test1 {{{0}" +
1693 "}}{0}", NewLine), code);
1697 public void PropertyMembersTypeGetSet_C ()
1699 CodeGeneratorOptions options = new CodeGeneratorOptions ();
1700 options.BracingStyle = "C";
1702 string code = GeneratePropertyMembersType (MemberAttributes.Family,
1703 true, true, options);
1704 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1705 "public interface Test1{0}" +
1713 "}}{0}", NewLine), code);
1717 public override void PropertyMembersTypeFamilyOrAssembly ()
1719 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
1720 false, false, Options);
1721 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1722 "public interface Test1 {{{0}" +
1726 "}}{0}", NewLine), code);
1730 public override void PropertyMembersTypeAssembly ()
1732 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
1733 false, false, Options);
1734 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1735 "public interface Test1 {{{0}" +
1739 "}}{0}", NewLine), code);
1743 public override void PropertyParametersTest ()
1745 string code = GeneratePropertyParameters (Options);
1746 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1747 "public interface Test1 {{{0}" +
1751 "}}{0}", NewLine), code);
1755 public override void PropertyIndexerTest1 ()
1757 string code = GeneratePropertyIndexer (MemberAttributes.Public,
1758 false, false, true, Options);
1759 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1760 "public interface Test1 {{{0}" +
1762 " int this[object value1, ref int value2] {{{0}" +
1764 "}}{0}", NewLine), code);
1768 public override void PropertyIndexerTest2 ()
1770 string code = GeneratePropertyIndexer (MemberAttributes.Public,
1771 false, false, false, Options);
1772 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1773 "public interface Test1 {{{0}" +
1777 "}}{0}", NewLine), code);
1781 public override void PropertyIndexerGetOnly ()
1783 string code = GeneratePropertyIndexer (MemberAttributes.Family,
1784 true, false, true, Options);
1785 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1786 "public interface Test1 {{{0}" +
1788 " int this[object value1, ref int value2] {{{0}" +
1791 "}}{0}", NewLine), code);
1795 public override void PropertyIndexerSetOnly ()
1797 string code = GeneratePropertyIndexer (MemberAttributes.Family,
1798 false, true, true, Options);
1799 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1800 "public interface Test1 {{{0}" +
1802 " int this[object value1, ref int value2] {{{0}" +
1805 "}}{0}", NewLine), code);
1809 public override void PropertyImplementationTypes ()
1811 string code = GeneratePropertyImplementationTypes (Options);
1812 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1813 "public interface Test1 {{{0}" +
1817 "}}{0}", NewLine), code);
1821 public override void PropertyOverloadsTest1 ()
1823 string code = GeneratePropertyOverloads1 (Options);
1824 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1825 "public interface Test1 {{{0}" +
1829 "}}{0}", NewLine), code);
1833 public override void PropertyOverloadsTest2 ()
1835 string code = GeneratePropertyOverloads2 (Options);
1836 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1837 "public interface Test1 {{{0}" +
1844 "}}{0}", NewLine), code);
1848 public override void PropertyOverloadsTest3 ()
1850 string code = GeneratePropertyOverloads3 (Options);
1851 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1852 "public interface Test1 {{{0}" +
1859 "}}{0}", NewLine), code);
1863 public override void PropertyPrivateImplementationType ()
1865 string code = GeneratePropertyPrivateImplementationType (Options);
1866 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1867 "public interface Test1 {{{0}" +
1869 " int this[object value1] {{{0}" +
1871 "}}{0}", NewLine), code);
1875 public override void PropertyImplementationTypeOrder ()
1877 string code = GeneratePropertyImplementationTypeOrder (Options);
1878 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1879 "public interface Test1 {{{0}" +
1881 " int this[object value1] {{{0}" +
1883 "}}{0}", NewLine), code);
1887 public override void PropertyNewSlotTest ()
1889 string code = GeneratePropertyMembersType (MemberAttributes.Private |
1890 MemberAttributes.New, true, true, Options);
1891 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1892 "public interface Test1 {{{0}" +
1894 " new int Name {{{0}" +
1898 "}}{0}", NewLine), code);
1902 public override void MethodMembersTypeTest1 ()
1904 string code = GenerateMethodMembersType1 (Options);
1905 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1906 "public interface Test1 {{{0}" +
1911 "}}{0}", NewLine), code);
1915 public void MethodMembersTypeTest1_C ()
1917 CodeGeneratorOptions options = new CodeGeneratorOptions ();
1918 options.BracingStyle = "C";
1920 string code = GenerateMethodMembersType1 (options);
1921 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1922 "public interface Test1{0}" +
1928 "}}{0}", NewLine), code);
1932 public override void MethodMembersTypeTest2 ()
1934 string code = GenerateMethodMembersType2 (Options);
1935 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1936 "public interface Test1 {{{0}" +
1938 " int Something(object value1, object value2, out int index, ref int count);{0}" +
1939 "}}{0}", NewLine), code);
1943 public override void MethodMembersTypeTest3 ()
1945 string code = GenerateMethodMembersType3 (Options);
1946 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1947 "public interface Test1 {{{0}" +
1949 " int Something([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int );{0}" +
1950 "}}{0}", NewLine), code);
1954 public override void MethodImplementationTypes ()
1956 string code = GenerateMethodImplementationTypes (Options);
1957 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1958 "public interface Test1 {{{0}" +
1960 " int Execute();{0}" +
1961 "}}{0}", NewLine), code);
1965 public override void MethodOverloadsTest1 ()
1967 string code = GenerateMethodOverloads1 (Options);
1968 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1969 "public interface Test1 {{{0}" +
1971 " int Execute();{0}" +
1972 "}}{0}", NewLine), code);
1976 public override void MethodOverloadsTest2 ()
1978 string code = GenerateMethodOverloads2 (Options);
1979 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1980 "public interface Test1 {{{0}" +
1982 " void Execute();{0}" +
1984 " int Execute(object value1);{0}" +
1985 "}}{0}", NewLine), code);
1989 public override void MethodOverloadsTest3 ()
1991 string code = GenerateMethodOverloads3 (Options);
1992 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1993 "public interface Test1 {{{0}" +
1995 " void Execute();{0}" +
1997 " int System.Int32.Execute(object value1);{0}" +
1998 "}}{0}", NewLine), code);
2002 public override void MethodPrivateImplementationType ()
2004 string code = GenerateMethodPrivateImplementationType (Options);
2005 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2006 "public interface Test1 {{{0}" +
2008 " int System.Int32.Execute(object value1);{0}" +
2009 "}}{0}", NewLine), code);
2013 public override void MethodImplementationTypeOrder ()
2015 string code = GenerateMethodImplementationTypeOrder (Options);
2016 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2017 "public interface Test1 {{{0}" +
2019 " int System.Int32.Execute(object value1);{0}" +
2020 "}}{0}", NewLine), code);
2024 public override void MethodReturnTypeAttributes ()
2026 string code = GenerateMethodReturnTypeAttributes (Options);
2027 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2028 "public interface Test1 {{{0}" +
2032 " [return: C(A1=false, A2=true)]{0}" +
2033 " [return: D()]{0}" +
2034 " int Execute();{0}" +
2035 "}}{0}", NewLine), code);
2039 public override void MethodNewSlotTest ()
2041 string code = GenerateMethodNewSlot (Options);
2042 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2043 "public interface Test1 {{{0}" +
2045 " new int Execute();{0}" +
2046 "}}{0}", NewLine), code);
2050 public override void ConstructorAttributesTest ()
2052 string code = GenerateConstructorAttributes (Options);
2053 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2054 "public interface Test1 {{{0}" +
2056 "}}{0}", NewLine), code);
2060 public void ConstructorAttributesTest_C ()
2062 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2063 options.BracingStyle = "C";
2065 string code = GenerateConstructorAttributes (options);
2066 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2067 "public interface Test1{0}" +
2070 "}}{0}", NewLine), code);
2074 public override void ConstructorParametersTest ()
2076 string code = GenerateConstructorParameters (Options);
2077 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2078 "public interface Test1 {{{0}" +
2080 "}}{0}", NewLine), code);
2084 public override void ConstructorParameterAttributesTest ()
2086 string code = GenerateConstructorParameterAttributes (Options);
2087 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2088 "public interface Test1 {{{0}" +
2090 "}}{0}", NewLine), code, "#1");
2094 public override void BaseConstructorSingleArg ()
2096 string code = GenerateBaseConstructor (false, Options);
2097 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2098 "public interface Test1 {{{0}" +
2100 "}}{0}", NewLine), code);
2104 public override void BaseConstructorMultipleArgs ()
2106 string code = GenerateBaseConstructor (true, Options);
2107 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2108 "public interface Test1 {{{0}" +
2110 "}}{0}", NewLine), code);
2114 public override void ChainedConstructorSingleArg ()
2116 string code = GenerateChainedConstructor (false, Options);
2117 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2118 "public interface Test1 {{{0}" +
2120 "}}{0}", NewLine), code);
2124 public override void ChainedConstructorMultipleArgs ()
2126 string code = GenerateChainedConstructor (true, Options);
2127 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2128 "public interface Test1 {{{0}" +
2130 "}}{0}", NewLine), code);
2134 public override void TypeConstructorTest ()
2136 string code = GenerateTypeConstructor (Options);
2137 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2138 "public interface Test1 {{{0}" +
2140 "}}{0}", NewLine), code);
2144 public void TypeConstructorTest_C ()
2146 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2147 options.BracingStyle = "C";
2149 string code = GenerateTypeConstructor (options);
2150 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2151 "public interface Test1{0}" +
2154 "}}{0}", NewLine), code);
2158 public override void EntryPointMethodTest ()
2160 string code = GenerateEntryPointMethod (Options);
2161 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2162 "public interface Test1 {{{0}" +
2166 " public static int Main() {{{0}" +
2168 " public static void Main() {{{0}" +
2170 " Test.InnerType x;{0}" +
2172 "}}{0}", NewLine), code);
2175 #endregion Override implementation of CodeGeneratorFromTypeTestBase
2179 public class CodeGeneratorFromTypeTest_Struct : CodeGeneratorFromTypeTestBase
2181 private CodeTypeDeclaration _typeDeclaration;
2182 private ICodeGenerator _codeGenerator;
2184 #region Override implementation of CodeGeneratorTestBase
2186 protected override ICodeGenerator CodeGenerator
2188 get { return _codeGenerator; }
2192 public override void SetUp ()
2195 _typeDeclaration = new CodeTypeDeclaration ();
2196 _typeDeclaration.IsStruct = true;
2198 CodeDomProvider provider = new CSharpCodeProvider ();
2199 _codeGenerator = provider.CreateGenerator ();
2202 #endregion Override implementation of CodeGeneratorTestBase
2204 #region Override implementation of CodeGeneratorFromTypeTestBase
2206 protected override CodeTypeDeclaration TypeDeclaration
2208 get { return _typeDeclaration; }
2212 public override void DefaultTypeTest ()
2214 string code = GenerateDefaultType (Options);
2215 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2216 "public struct {{{0}" +
2217 "}}{0}", NewLine), code);
2221 public void DefaultTypeTest_C ()
2223 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2224 options.BracingStyle = "C";
2226 string code = GenerateDefaultType (options);
2227 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2228 "public struct {0}" +
2230 "}}{0}", NewLine), code);
2234 [ExpectedException (typeof (NullReferenceException))]
2235 public override void NullTypeTest ()
2237 GenerateNullType (Options);
2241 public override void SimpleTypeTest ()
2243 string code = GenerateSimpleType (Options);
2244 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2245 "public struct Test1 {{{0}" +
2246 "}}{0}", NewLine), code);
2250 public void SimpleTypeTest_C ()
2252 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2253 options.BracingStyle = "C";
2255 string code = GenerateSimpleType (options);
2256 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2257 "public struct Test1{0}" +
2259 "}}{0}", NewLine), code);
2263 public override void DerivedTypeTest ()
2265 string code = GenerateDerivedType (Options);
2266 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2268 "internal struct Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
2270 "struct Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
2272 "}}{0}", NewLine), code);
2276 public override void AttributesAndTypeTest ()
2278 string code = GenerateAttributesAndType (Options);
2279 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2282 "public struct Test1 {{{0}" +
2283 "}}{0}", NewLine), code);
2287 public override void EventMembersTypeTest1 ()
2289 string code = GenerateEventMembersType1 (Options);
2290 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2291 "public struct Test1 {{{0}" +
2295 " private event void ;{0}" +
2296 "}}{0}", NewLine), code);
2300 public override void EventMembersTypeTest2 ()
2302 string code = GenerateEventMembersType2 (Options);
2303 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2304 "public struct Test1 {{{0}" +
2306 " public event int Click;{0}" +
2307 "}}{0}", NewLine), code);
2311 public override void EventImplementationTypes ()
2313 string code = GenerateEventImplementationTypes (Options);
2314 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2315 "public struct Test1 {{{0}" +
2318 " internal event int Click;{0}" +
2320 " /*FamANDAssem*/ internal event int Click;{0}" +
2322 "}}{0}", NewLine), code);
2326 public override void EventPrivateImplementationType ()
2328 string code = GenerateEventPrivateImplementationType (Options);
2329 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2330 "public struct Test1 {{{0}" +
2332 " event int System.Int32.Click;{0}" +
2333 "}}{0}", NewLine), code);
2337 public override void EventImplementationTypeOrder ()
2339 string code = GenerateEventImplementationTypeOrder (Options);
2340 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2341 "public struct Test1 {{{0}" +
2343 " event int System.Int32.Click;{0}" +
2344 "}}{0}", NewLine), code);
2348 public override void FieldMembersAttributesTest ()
2350 string code = GenerateFieldMembersAttributes (Options);
2351 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2352 "public struct Test1 {{{0}" +
2356 " private void ;{0}" +
2357 "}}{0}", NewLine), code);
2361 public override void FieldMembersTypeTest ()
2363 string code = GenerateFieldMembersType (MemberAttributes.Public, Options);
2364 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2365 "public struct Test1 {{{0}" +
2367 " public int Name = 2;{0}" +
2368 "}}{0}", NewLine), code);
2372 public override void FieldNewSlotTest ()
2374 string code = GenerateFieldMembersType (MemberAttributes.Assembly |
2375 MemberAttributes.New, Options);
2376 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2377 "public struct Test1 {{{0}" +
2379 " internal new int Name = 2;{0}" +
2380 "}}{0}", NewLine), code);
2384 public override void PropertyMembersTypeTest1 ()
2386 string code = GeneratePropertyMembersAttributes (Options);
2387 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2388 "public struct Test1 {{{0}" +
2392 " private void {{{0}" +
2394 "}}{0}", NewLine), code);
2398 public override void PropertyMembersTypeTest2 ()
2400 string code = GeneratePropertyMembersType (MemberAttributes.Public,
2401 false, false, Options);
2402 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2403 "public struct Test1 {{{0}" +
2405 " public virtual int Name {{{0}" +
2407 "}}{0}", NewLine), code);
2411 public override void PropertyMembersTypeGetOnly ()
2413 string code = GeneratePropertyMembersType (MemberAttributes.Family,
2414 true, false, Options);
2415 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2416 "public struct Test1 {{{0}" +
2418 " protected virtual int Name {{{0}" +
2422 "}}{0}", NewLine), code);
2426 public override void PropertyMembersTypeSetOnly ()
2428 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
2429 false, true, Options);
2430 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2431 "public struct Test1 {{{0}" +
2434 " internal virtual int Name {{{0}" +
2436 " internal int Name {{{0}" +
2441 "}}{0}", NewLine), code);
2445 public override void PropertyMembersTypeGetSet ()
2447 string code = GeneratePropertyMembersType (MemberAttributes.Family,
2448 true, true, Options);
2449 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2450 "public struct Test1 {{{0}" +
2452 " protected virtual int Name {{{0}" +
2458 "}}{0}", NewLine), code);
2462 public void PropertyMembersTypeGetSet_C ()
2464 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2465 options.BracingStyle = "C";
2467 string code = GeneratePropertyMembersType (MemberAttributes.Family,
2468 true, true, options);
2469 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2470 "public struct Test1{0}" +
2473 " protected virtual int Name{0}" +
2482 "}}{0}", NewLine), code);
2486 public override void PropertyMembersTypeFamilyOrAssembly ()
2488 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
2489 false, false, Options);
2490 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2491 "public struct Test1 {{{0}" +
2493 " protected internal int Name {{{0}" +
2495 "}}{0}", NewLine), code);
2499 public override void PropertyMembersTypeAssembly ()
2501 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
2502 false, false, Options);
2503 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2504 "public struct Test1 {{{0}" +
2507 " internal virtual int Name {{{0}" +
2509 " internal int Name {{{0}" +
2512 "}}{0}", NewLine), code);
2516 public override void PropertyParametersTest ()
2518 string code = GeneratePropertyParameters (Options);
2519 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2520 "public struct Test1 {{{0}" +
2522 " public virtual int Name {{{0}" +
2524 "}}{0}", NewLine), code);
2528 public override void PropertyIndexerTest1 ()
2530 string code = GeneratePropertyIndexer (MemberAttributes.Public,
2531 false, false, true, Options);
2532 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2533 "public struct Test1 {{{0}" +
2535 " public virtual int this[object value1, ref int value2] {{{0}" +
2537 "}}{0}", NewLine), code);
2541 public override void PropertyIndexerTest2 ()
2543 string code = GeneratePropertyIndexer (MemberAttributes.Public,
2544 false, false, false, Options);
2545 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2546 "public struct Test1 {{{0}" +
2548 " public virtual int iTem {{{0}" +
2550 "}}{0}", NewLine), code);
2554 public override void PropertyIndexerGetOnly ()
2556 string code = GeneratePropertyIndexer (MemberAttributes.Family,
2557 true, false, true, Options);
2558 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2559 "public struct Test1 {{{0}" +
2561 " protected virtual int this[object value1, ref int value2] {{{0}" +
2565 "}}{0}", NewLine), code);
2569 public override void PropertyIndexerSetOnly ()
2571 string code = GeneratePropertyIndexer (MemberAttributes.Family,
2572 false, true, true, Options);
2573 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2574 "public struct Test1 {{{0}" +
2576 " protected virtual int this[object value1, ref int value2] {{{0}" +
2580 "}}{0}", NewLine), code);
2584 public override void PropertyImplementationTypes ()
2586 string code = GeneratePropertyImplementationTypes (Options);
2587 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2588 "public struct Test1 {{{0}" +
2590 " public virtual int Name {{{0}" +
2592 "}}{0}", NewLine), code);
2596 public override void PropertyOverloadsTest1 ()
2598 string code = GeneratePropertyOverloads1 (Options);
2599 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2600 "public struct Test1 {{{0}" +
2602 " protected virtual int Name {{{0}" +
2604 "}}{0}", NewLine), code);
2608 public override void PropertyOverloadsTest2 ()
2610 string code = GeneratePropertyOverloads2 (Options);
2611 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2612 "public struct Test1 {{{0}" +
2614 " public virtual int Name {{{0}" +
2617 " private int Name {{{0}" +
2619 "}}{0}", NewLine), code);
2623 public override void PropertyOverloadsTest3 ()
2625 string code = GeneratePropertyOverloads3 (Options);
2626 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2627 "public struct Test1 {{{0}" +
2629 " public virtual int Name {{{0}" +
2632 " int System.Int32.Name {{{0}" +
2634 "}}{0}", NewLine), code);
2638 public override void PropertyPrivateImplementationType ()
2640 string code = GeneratePropertyPrivateImplementationType (Options);
2641 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2642 "public struct Test1 {{{0}" +
2644 " int System.Int32.this[object value1] {{{0}" +
2646 "}}{0}", NewLine), code);
2650 public override void PropertyImplementationTypeOrder ()
2652 string code = GeneratePropertyImplementationTypeOrder (Options);
2653 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2654 "public struct Test1 {{{0}" +
2656 " int System.Int32.this[object value1] {{{0}" +
2658 "}}{0}", NewLine), code);
2662 public override void PropertyNewSlotTest ()
2664 string code = GeneratePropertyMembersType (MemberAttributes.Private |
2665 MemberAttributes.New, true, true, Options);
2666 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2667 "public struct Test1 {{{0}" +
2669 " private new int Name {{{0}" +
2675 "}}{0}", NewLine), code);
2679 public override void MethodMembersTypeTest1 ()
2681 string code = GenerateMethodMembersType1 (Options);
2682 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2683 "public struct Test1 {{{0}" +
2687 " private void () {{{0}" +
2689 "}}{0}", NewLine), code);
2693 public void MethodMembersTypeTest1_C ()
2695 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2696 options.BracingStyle = "C";
2698 string code = GenerateMethodMembersType1 (options);
2699 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2700 "public struct Test1{0}" +
2705 " private void (){0}" +
2708 "}}{0}", NewLine), code);
2712 public override void MethodMembersTypeTest2 ()
2714 string code = GenerateMethodMembersType2 (Options);
2715 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2716 "public struct Test1 {{{0}" +
2718 " public virtual int Something(object value1, object value2, out int index, ref int count) {{{0}" +
2720 "}}{0}", NewLine), code);
2724 public override void MethodMembersTypeTest3 ()
2726 string code = GenerateMethodMembersType3 (Options);
2727 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2728 "public struct Test1 {{{0}" +
2730 " public virtual int Something([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int ) {{{0}" +
2732 "}}{0}", NewLine), code);
2736 public override void MethodImplementationTypes ()
2738 string code = GenerateMethodImplementationTypes (Options);
2739 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2740 "public struct Test1 {{{0}" +
2743 " internal virtual int Execute() {{{0}" +
2745 " internal int Execute() {{{0}" +
2748 "}}{0}", NewLine), code);
2752 public override void MethodOverloadsTest1 ()
2754 string code = GenerateMethodOverloads1 (Options);
2755 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2756 "public struct Test1 {{{0}" +
2759 " internal virtual int Execute() {{{0}" +
2761 " internal int Execute() {{{0}" +
2764 "}}{0}", NewLine), code);
2768 public override void MethodOverloadsTest2 ()
2770 string code = GenerateMethodOverloads2 (Options);
2771 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2772 "public struct Test1 {{{0}" +
2774 " public virtual void Execute() {{{0}" +
2777 " private int Execute(object value1) {{{0}" +
2779 "}}{0}", NewLine), code);
2783 public override void MethodOverloadsTest3 ()
2785 string code = GenerateMethodOverloads3 (Options);
2786 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2787 "public struct Test1 {{{0}" +
2789 " public virtual void Execute() {{{0}" +
2792 " int System.Int32.Execute(object value1) {{{0}" +
2794 "}}{0}", NewLine), code);
2798 public override void MethodPrivateImplementationType ()
2800 string code = GenerateMethodPrivateImplementationType (Options);
2801 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2802 "public struct Test1 {{{0}" +
2804 " int System.Int32.Execute(object value1) {{{0}" +
2806 "}}{0}", NewLine), code);
2810 public override void MethodImplementationTypeOrder ()
2812 string code = GenerateMethodImplementationTypeOrder (Options);
2813 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2814 "public struct Test1 {{{0}" +
2816 " int System.Int32.Execute(object value1) {{{0}" +
2818 "}}{0}", NewLine), code);
2822 public override void MethodReturnTypeAttributes ()
2824 string code = GenerateMethodReturnTypeAttributes (Options);
2825 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2826 "public struct Test1 {{{0}" +
2830 " [return: C(A1=false, A2=true)]{0}" +
2831 " [return: D()]{0}" +
2832 " public virtual int Execute() {{{0}" +
2834 "}}{0}", NewLine), code);
2838 public override void MethodNewSlotTest ()
2840 string code = GenerateMethodNewSlot (Options);
2841 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2842 "public struct Test1 {{{0}" +
2844 " public new virtual int Execute() {{{0}" +
2846 "}}{0}", NewLine), code);
2850 public override void ConstructorAttributesTest ()
2852 string code = GenerateConstructorAttributes (Options);
2853 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2854 "public struct Test1 {{{0}" +
2858 " private Test1() {{{0}" +
2860 "}}{0}", NewLine), code);
2864 public void ConstructorAttributesTest_C ()
2866 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2867 options.BracingStyle = "C";
2869 string code = GenerateConstructorAttributes (options);
2870 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2871 "public struct Test1{0}" +
2876 " private Test1(){0}" +
2879 "}}{0}", NewLine), code);
2883 public override void ConstructorParametersTest ()
2885 string code = GenerateConstructorParameters (Options);
2886 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2887 "public struct Test1 {{{0}" +
2889 " public Test1(object value1, object value2, out int index, ref int count) {{{0}" +
2891 "}}{0}", NewLine), code);
2895 public override void ConstructorParameterAttributesTest ()
2897 string code = GenerateConstructorParameterAttributes (Options);
2898 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2899 "public struct Test1 {{{0}" +
2901 " private Test1([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int index) {{{0}" +
2903 "}}{0}", NewLine), code);
2907 public override void BaseConstructorSingleArg ()
2909 string code = GenerateBaseConstructor (false, Options);
2910 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2911 "public struct Test1 {{{0}" +
2913 " protected Test1(object value1, out int value2) : {0}" +
2914 " base(value1) {{{0}" +
2916 "}}{0}", NewLine), code);
2920 public override void BaseConstructorMultipleArgs ()
2922 string code = GenerateBaseConstructor (true, Options);
2923 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2924 "public struct Test1 {{{0}" +
2926 " protected Test1(object value1, out int value2) : {0}" +
2927 " base(value1, value2) {{{0}" +
2929 "}}{0}", NewLine), code);
2933 public override void ChainedConstructorSingleArg ()
2935 string code = GenerateChainedConstructor (false, Options);
2936 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2937 "public struct Test1 {{{0}" +
2939 " public Test1(object value1, out int value2) : {0}" +
2940 " base(value3) : {0}" +
2941 " this(value1) {{{0}" +
2943 "}}{0}", NewLine), code);
2947 public override void ChainedConstructorMultipleArgs ()
2949 string code = GenerateChainedConstructor (true, Options);
2950 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2951 "public struct Test1 {{{0}" +
2953 " public Test1(object value1, out int value2) : {0}" +
2954 " base(value3) : {0}" +
2955 " this(value1, value2) {{{0}" +
2957 "}}{0}", NewLine), code);
2961 public override void TypeConstructorTest ()
2963 string code = GenerateTypeConstructor (Options);
2964 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2965 "public struct Test1 {{{0}" +
2971 " static Test1() {{{0}" +
2973 "}}{0}", NewLine), code, "#1");
2977 public void TypeConstructorTest_C ()
2979 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2980 options.BracingStyle = "C";
2982 string code = GenerateTypeConstructor (options);
2983 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2984 "public struct Test1{0}" +
2991 " static Test1(){0}" +
2994 "}}{0}", NewLine), code, "#2");
2998 public override void EntryPointMethodTest ()
3000 string code = GenerateEntryPointMethod (Options);
3001 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3002 "public struct Test1 {{{0}" +
3006 " public static int Main() {{{0}" +
3008 " public static void Main() {{{0}" +
3010 " Test.InnerType x;{0}" +
3012 "}}{0}", NewLine), code);
3015 #endregion Override implementation of CodeGeneratorFromTypeTestBase
3019 public class CodeGeneratorFromTypeTest_Enum : CodeGeneratorFromTypeTestBase
3021 private CodeTypeDeclaration _typeDeclaration;
3022 private ICodeGenerator _codeGenerator;
3024 #region Override implementation of CodeGeneratorTestBase
3026 protected override ICodeGenerator CodeGenerator
3028 get { return _codeGenerator; }
3032 public override void SetUp ()
3035 _typeDeclaration = new CodeTypeDeclaration ();
3036 _typeDeclaration.IsEnum = true;
3038 CodeDomProvider provider = new CSharpCodeProvider ();
3039 _codeGenerator = provider.CreateGenerator ();
3042 #endregion Override implementation of CodeGeneratorTestBase
3044 #region Override implementation of CodeGeneratorFromTypeTestBase
3046 protected override CodeTypeDeclaration TypeDeclaration
3048 get { return _typeDeclaration; }
3052 public override void DefaultTypeTest ()
3054 string code = GenerateDefaultType (Options);
3055 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3056 "public enum {{{0}" +
3057 "}}{0}", NewLine), code);
3061 public void DefaultTypeTest_C ()
3063 CodeGeneratorOptions options = new CodeGeneratorOptions ();
3064 options.BracingStyle = "C";
3066 string code = GenerateDefaultType (options);
3067 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3070 "}}{0}", NewLine), code);
3074 [ExpectedException (typeof (NullReferenceException))]
3075 public override void NullTypeTest ()
3077 GenerateNullType (Options);
3081 public override void SimpleTypeTest ()
3083 string code = GenerateSimpleType (Options);
3084 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3085 "public enum Test1 {{{0}" +
3086 "}}{0}", NewLine), code);
3090 public void SimpleTypeTest_C ()
3092 CodeGeneratorOptions options = new CodeGeneratorOptions ();
3093 options.BracingStyle = "C";
3095 string code = GenerateSimpleType (options);
3096 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3097 "public enum Test1{0}" +
3099 "}}{0}", NewLine), code);
3103 public override void DerivedTypeTest ()
3105 string code = GenerateDerivedType (Options);
3106 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3108 "internal enum Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
3110 "enum Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
3112 "}}{0}", NewLine), code);
3116 public override void AttributesAndTypeTest ()
3118 string code = GenerateAttributesAndType (Options);
3119 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3122 "public enum Test1 {{{0}" +
3123 "}}{0}", NewLine), code);
3127 public override void EventMembersTypeTest1 ()
3129 string code = GenerateEventMembersType1 (Options);
3130 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3131 "public enum Test1 {{{0}" +
3133 "}}{0}", NewLine), code);
3137 public override void EventMembersTypeTest2 ()
3139 string code = GenerateEventMembersType2 (Options);
3140 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3141 "public enum Test1 {{{0}" +
3143 "}}{0}", NewLine), code);
3147 public override void EventImplementationTypes ()
3149 string code = GenerateEventImplementationTypes (Options);
3150 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3151 "public enum Test1 {{{0}" +
3153 "}}{0}", NewLine), code);
3157 public override void EventPrivateImplementationType ()
3159 string code = GenerateEventPrivateImplementationType (Options);
3160 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3161 "public enum Test1 {{{0}" +
3163 "}}{0}", NewLine), code);
3167 public override void EventImplementationTypeOrder ()
3169 string code = GenerateEventImplementationTypeOrder (Options);
3170 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3171 "public enum Test1 {{{0}" +
3173 "}}{0}", NewLine), code);
3177 public override void FieldMembersAttributesTest ()
3179 string code = GenerateFieldMembersAttributes (Options);
3180 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3181 "public enum Test1 {{{0}" +
3186 "}}{0}", NewLine), code);
3190 public override void FieldMembersTypeTest ()
3192 string code = GenerateFieldMembersType (MemberAttributes.Public, Options);
3193 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3194 "public enum Test1 {{{0}" +
3197 "}}{0}", NewLine), code);
3201 public override void FieldNewSlotTest ()
3203 string code = GenerateFieldMembersType (MemberAttributes.Assembly |
3204 MemberAttributes.New, Options);
3205 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3206 "public enum Test1 {{{0}" +
3209 "}}{0}", NewLine), code);
3213 public override void PropertyMembersTypeTest1 ()
3215 string code = GeneratePropertyMembersAttributes (Options);
3216 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3217 "public enum Test1 {{{0}" +
3219 "}}{0}", NewLine), code);
3223 public override void PropertyMembersTypeTest2 ()
3225 string code = GeneratePropertyMembersType (MemberAttributes.Public,
3226 false, false, Options);
3227 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3228 "public enum Test1 {{{0}" +
3230 "}}{0}", NewLine), code);
3234 public override void PropertyMembersTypeGetOnly ()
3236 string code = GeneratePropertyMembersType (MemberAttributes.Family,
3237 true, false, Options);
3238 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3239 "public enum Test1 {{{0}" +
3241 "}}{0}", NewLine), code);
3245 public override void PropertyMembersTypeSetOnly ()
3247 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
3248 false, true, Options);
3249 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3250 "public enum Test1 {{{0}" +
3252 "}}{0}", NewLine), code);
3256 public override void PropertyMembersTypeGetSet ()
3258 string code = GeneratePropertyMembersType (MemberAttributes.Family,
3259 true, true, Options);
3260 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3261 "public enum Test1 {{{0}" +
3263 "}}{0}", NewLine), code);
3267 public void PropertyMembersTypeGetSet_C ()
3269 CodeGeneratorOptions options = new CodeGeneratorOptions ();
3270 options.BracingStyle = "C";
3272 string code = GeneratePropertyMembersType (MemberAttributes.Family,
3273 true, true, options);
3274 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3275 "public enum Test1{0}" +
3278 "}}{0}", NewLine), code);
3282 public override void PropertyMembersTypeFamilyOrAssembly ()
3284 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
3285 false, false, Options);
3286 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3287 "public enum Test1 {{{0}" +
3289 "}}{0}", NewLine), code);
3293 public override void PropertyMembersTypeAssembly ()
3295 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
3296 false, false, Options);
3297 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3298 "public enum Test1 {{{0}" +
3300 "}}{0}", NewLine), code);
3304 public override void PropertyParametersTest ()
3306 string code = GeneratePropertyParameters (Options);
3307 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3308 "public enum Test1 {{{0}" +
3310 "}}{0}", NewLine), code);
3314 public override void PropertyIndexerTest1 ()
3316 string code = GeneratePropertyIndexer (MemberAttributes.Public,
3317 false, false, true, Options);
3318 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3319 "public enum Test1 {{{0}" +
3321 "}}{0}", NewLine), code);
3325 public override void PropertyIndexerTest2 ()
3327 string code = GeneratePropertyIndexer (MemberAttributes.Public,
3328 false, false, false, Options);
3329 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3330 "public enum Test1 {{{0}" +
3332 "}}{0}", NewLine), code);
3336 public override void PropertyIndexerGetOnly ()
3338 string code = GeneratePropertyIndexer (MemberAttributes.Family,
3339 true, false, true, Options);
3340 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3341 "public enum Test1 {{{0}" +
3343 "}}{0}", NewLine), code);
3347 public override void PropertyIndexerSetOnly ()
3349 string code = GeneratePropertyIndexer (MemberAttributes.Family,
3350 false, true, true, Options);
3351 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3352 "public enum Test1 {{{0}" +
3354 "}}{0}", NewLine), code);
3358 public override void PropertyImplementationTypes ()
3360 string code = GeneratePropertyImplementationTypes (Options);
3361 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3362 "public enum Test1 {{{0}" +
3364 "}}{0}", NewLine), code);
3368 public override void PropertyOverloadsTest1 ()
3370 string code = GeneratePropertyOverloads1 (Options);
3371 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3372 "public enum Test1 {{{0}" +
3374 "}}{0}", NewLine), code);
3378 public override void PropertyOverloadsTest2 ()
3380 string code = GeneratePropertyOverloads2 (Options);
3381 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3382 "public enum Test1 {{{0}" +
3385 "}}{0}", NewLine), code);
3389 public override void PropertyOverloadsTest3 ()
3391 string code = GeneratePropertyOverloads3 (Options);
3392 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3393 "public enum Test1 {{{0}" +
3396 "}}{0}", NewLine), code);
3400 public override void PropertyPrivateImplementationType ()
3402 string code = GeneratePropertyPrivateImplementationType (Options);
3403 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3404 "public enum Test1 {{{0}" +
3406 "}}{0}", NewLine), code);
3410 public override void PropertyImplementationTypeOrder ()
3412 string code = GeneratePropertyImplementationTypeOrder (Options);
3413 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3414 "public enum Test1 {{{0}" +
3416 "}}{0}", NewLine), code);
3420 public override void PropertyNewSlotTest ()
3422 string code = GeneratePropertyMembersType (MemberAttributes.Private |
3423 MemberAttributes.New, true, true, Options);
3424 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3425 "public enum Test1 {{{0}" +
3427 "}}{0}", NewLine), code);
3431 public override void MethodMembersTypeTest1 ()
3433 string code = GenerateMethodMembersType1 (Options);
3434 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3435 "public enum Test1 {{{0}" +
3437 "}}{0}", NewLine), code);
3441 public override void MethodMembersTypeTest2 ()
3443 string code = GenerateMethodMembersType2 (Options);
3444 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3445 "public enum Test1 {{{0}" +
3447 "}}{0}", NewLine), code);
3451 public override void MethodMembersTypeTest3 ()
3453 string code = GenerateMethodMembersType3 (Options);
3454 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3455 "public enum Test1 {{{0}" +
3457 "}}{0}", NewLine), code);
3461 public override void MethodImplementationTypes ()
3463 string code = GenerateMethodImplementationTypes (Options);
3464 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3465 "public enum Test1 {{{0}" +
3467 "}}{0}", NewLine), code);
3471 public override void MethodOverloadsTest1 ()
3473 string code = GenerateMethodOverloads1 (Options);
3474 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3475 "public enum Test1 {{{0}" +
3477 "}}{0}", NewLine), code);
3481 public override void MethodOverloadsTest2 ()
3483 string code = GenerateMethodOverloads2 (Options);
3484 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3485 "public enum Test1 {{{0}" +
3488 "}}{0}", NewLine), code);
3492 public override void MethodOverloadsTest3 ()
3494 string code = GenerateMethodOverloads3 (Options);
3495 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3496 "public enum Test1 {{{0}" +
3499 "}}{0}", NewLine), code);
3503 public override void MethodPrivateImplementationType ()
3505 string code = GenerateMethodPrivateImplementationType (Options);
3506 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3507 "public enum Test1 {{{0}" +
3509 "}}{0}", NewLine), code);
3513 public override void MethodImplementationTypeOrder ()
3515 string code = GenerateMethodImplementationTypeOrder (Options);
3516 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3517 "public enum Test1 {{{0}" +
3519 "}}{0}", NewLine), code);
3523 public override void MethodNewSlotTest ()
3525 string code = GenerateMethodNewSlot (Options);
3526 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3527 "public enum Test1 {{{0}" +
3529 "}}{0}", NewLine), code);
3533 public override void MethodReturnTypeAttributes ()
3535 string code = GenerateMethodReturnTypeAttributes (Options);
3536 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3537 "public enum Test1 {{{0}" +
3539 "}}{0}", NewLine), code);
3543 public override void ConstructorAttributesTest ()
3545 string code = GenerateConstructorAttributes (Options);
3546 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3547 "public enum Test1 {{{0}" +
3549 "}}{0}", NewLine), code);
3553 public void ConstructorAttributesTest_C ()
3555 CodeGeneratorOptions options = new CodeGeneratorOptions ();
3556 options.BracingStyle = "C";
3558 string code = GenerateConstructorAttributes (options);
3559 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3560 "public enum Test1{0}" +
3563 "}}{0}", NewLine), code);
3567 public override void ConstructorParametersTest ()
3569 string code = GenerateConstructorParameters (Options);
3570 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3571 "public enum Test1 {{{0}" +
3573 "}}{0}", NewLine), code);
3577 public override void ConstructorParameterAttributesTest ()
3579 string code = GenerateConstructorParameterAttributes (Options);
3580 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3581 "public enum Test1 {{{0}" +
3583 "}}{0}", NewLine), code);
3587 public override void BaseConstructorSingleArg ()
3589 string code = GenerateBaseConstructor (false, Options);
3590 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3591 "public enum Test1 {{{0}" +
3593 "}}{0}", NewLine), code);
3597 public override void BaseConstructorMultipleArgs ()
3599 string code = GenerateBaseConstructor (true, Options);
3600 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3601 "public enum Test1 {{{0}" +
3603 "}}{0}", NewLine), code);
3607 public override void ChainedConstructorSingleArg ()
3609 string code = GenerateChainedConstructor (false, Options);
3610 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3611 "public enum Test1 {{{0}" +
3613 "}}{0}", NewLine), code);
3617 public override void ChainedConstructorMultipleArgs ()
3619 string code = GenerateChainedConstructor (true, Options);
3620 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3621 "public enum Test1 {{{0}" +
3623 "}}{0}", NewLine), code);
3627 public override void TypeConstructorTest ()
3629 string code = GenerateTypeConstructor (Options);
3630 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3631 "public enum Test1 {{{0}" +
3633 "}}{0}", NewLine), code);
3637 public void TypeConstructorTest_C ()
3639 CodeGeneratorOptions options = new CodeGeneratorOptions ();
3640 options.BracingStyle = "C";
3642 string code = GenerateTypeConstructor (options);
3643 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3644 "public enum Test1{0}" +
3647 "}}{0}", NewLine), code);
3651 public override void EntryPointMethodTest ()
3653 string code = GenerateEntryPointMethod (Options);
3654 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3655 "public enum Test1 {{{0}" +
3659 " public static int Main() {{{0}" +
3661 " public static void Main() {{{0}" +
3663 " Test.InnerType x;{0}" +
3665 "}}{0}", NewLine), code);
3668 #endregion Override implementation of CodeGeneratorFromTypeTestBase