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;
17 using Microsoft.CSharp;
19 using NUnit.Framework;
21 using MonoTests.System.CodeDom.Compiler;
23 namespace MonoTests.Microsoft.CSharp
26 public class CodeGeneratorFromTypeTest_Class : CodeGeneratorFromTypeTestBase
28 private CodeTypeDeclaration _typeDeclaration;
29 private ICodeGenerator _codeGenerator;
31 #region Override implementation of CodeGeneratorTestBase
33 protected override ICodeGenerator CodeGenerator
35 get { return _codeGenerator; }
39 public override void SetUp ()
42 _typeDeclaration = new CodeTypeDeclaration ();
44 CodeDomProvider provider = new CSharpCodeProvider ();
45 _codeGenerator = provider.CreateGenerator ();
48 #endregion Override implementation of CodeGeneratorTestBase
50 #region Override implementation of CodeGeneratorFromTypeTestBase
52 protected override CodeTypeDeclaration TypeDeclaration
54 get { return _typeDeclaration; }
58 public override void DefaultTypeTest ()
60 string code = GenerateDefaultType (Options);
61 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
62 "public class {{{0}" +
63 "}}{0}", NewLine), code);
67 public void DefaultTypeTest_C ()
69 CodeGeneratorOptions options = new CodeGeneratorOptions ();
70 options.BracingStyle = "C";
72 string code = GenerateDefaultType (options);
73 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
76 "}}{0}", NewLine), code);
80 [ExpectedException (typeof (NullReferenceException))]
81 public override void NullTypeTest ()
83 GenerateNullType (Options);
87 public override void SimpleTypeTest ()
89 string code = GenerateSimpleType (Options);
90 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
91 "public class Test1 {{{0}" +
92 "}}{0}", NewLine), code);
96 public void SimpleTypeTest_C ()
98 CodeGeneratorOptions options = new CodeGeneratorOptions ();
99 options.BracingStyle = "C";
101 string code = GenerateSimpleType (options);
102 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
103 "public class Test1{0}" +
105 "}}{0}", NewLine), code);
109 public override void DerivedTypeTest ()
111 string code = GenerateDerivedType (Options);
112 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
114 "internal abstract class Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
116 "abstract class Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
118 "}}{0}", NewLine), code);
122 public override void AttributesAndTypeTest ()
124 string code = GenerateAttributesAndType (Options);
125 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
128 "public class Test1 {{{0}" +
129 "}}{0}", NewLine), code);
133 public override void EventMembersTypeTest1 ()
135 string code = GenerateEventMembersType1 (Options);
136 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
137 "public class Test1 {{{0}" +
141 " private event void ;{0}" +
142 "}}{0}", NewLine), code);
146 public override void EventMembersTypeTest2 ()
148 string code = GenerateEventMembersType2 (Options);
149 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
150 "public class Test1 {{{0}" +
152 " public event int Click;{0}" +
153 "}}{0}", NewLine), code);
157 public override void EventImplementationTypes ()
159 string code = GenerateEventImplementationTypes (Options);
160 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
161 "public class Test1 {{{0}" +
164 " internal event int Click;{0}" +
166 " /*FamANDAssem*/ internal event int Click;{0}" +
168 "}}{0}", NewLine), code);
172 /// Ensure no access modifiers are output if PrivateImplementationType
176 public override void EventPrivateImplementationType ()
178 string code = GenerateEventPrivateImplementationType (Options);
179 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
180 "public class Test1 {{{0}" +
182 " event int System.Int32.Click;{0}" +
183 "}}{0}", NewLine), code);
187 /// If both ImplementationTypes and PrivateImplementationType are set,
188 /// then only ImplementationTypes are output.
191 public override void EventImplementationTypeOrder ()
193 string code = GenerateEventImplementationTypeOrder (Options);
194 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
195 "public class Test1 {{{0}" +
197 " event int System.Int32.Click;{0}" +
198 "}}{0}", NewLine), code);
202 public override void FieldMembersAttributesTest ()
204 string code = GenerateFieldMembersAttributes (Options);
205 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
206 "public class Test1 {{{0}" +
210 " private void ;{0}" +
211 "}}{0}", NewLine), code);
215 public override void FieldMembersTypeTest ()
217 string code = GenerateFieldMembersType (MemberAttributes.Public, Options);
218 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
219 "public class Test1 {{{0}" +
221 " public int Name = 2;{0}" +
222 "}}{0}", NewLine), code);
226 public override void FieldNewSlotTest ()
228 string code = GenerateFieldMembersType (MemberAttributes.Assembly |
229 MemberAttributes.New, Options);
230 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
231 "public class Test1 {{{0}" +
233 " internal new int Name = 2;{0}" +
234 "}}{0}", NewLine), code);
238 public override void PropertyMembersTypeTest1 ()
240 string code = GeneratePropertyMembersAttributes (Options);
241 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
242 "public class Test1 {{{0}" +
246 " private void {{{0}" +
248 "}}{0}", NewLine), code);
252 public void PropertyMembersTypeTest1_C ()
254 CodeGeneratorOptions options = new CodeGeneratorOptions ();
255 options.BracingStyle = "C";
257 string code = GeneratePropertyMembersAttributes (options);
258 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
259 "public class Test1{0}" +
264 " private void {0}" +
267 "}}{0}", NewLine), code);
271 public override void PropertyMembersTypeTest2 ()
273 string code = GeneratePropertyMembersType (MemberAttributes.Public,
274 false, false, Options);
275 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
276 "public class Test1 {{{0}" +
278 " public virtual int Name {{{0}" +
280 "}}{0}", NewLine), code);
284 public override void PropertyMembersTypeGetOnly ()
286 string code = GeneratePropertyMembersType (MemberAttributes.Family,
287 true, false, Options);
288 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
289 "public class Test1 {{{0}" +
291 " protected virtual int Name {{{0}" +
295 "}}{0}", NewLine), code);
299 public override void PropertyMembersTypeSetOnly ()
301 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
302 false, true, Options);
303 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
304 "public class Test1 {{{0}" +
307 " internal virtual int Name {{{0}" +
309 " internal int Name {{{0}" +
314 "}}{0}", NewLine), code);
318 public override void PropertyMembersTypeGetSet ()
320 string code = GeneratePropertyMembersType (MemberAttributes.Family,
321 true, true, Options);
322 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
323 "public class Test1 {{{0}" +
325 " protected virtual int Name {{{0}" +
331 "}}{0}", NewLine), code);
335 public void PropertyMembersTypeGetSet_C ()
337 CodeGeneratorOptions options = new CodeGeneratorOptions ();
338 options.BracingStyle = "C";
340 string code = GeneratePropertyMembersType (MemberAttributes.Family,
341 true, true, options);
342 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
343 "public class Test1{0}" +
346 " protected virtual int Name{0}" +
355 "}}{0}", NewLine), code);
359 public override void PropertyMembersTypeFamilyOrAssembly ()
361 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
362 false, false, Options);
363 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
364 "public class Test1 {{{0}" +
366 " protected internal int Name {{{0}" +
368 "}}{0}", NewLine), code);
372 public override void PropertyMembersTypeAssembly ()
374 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
375 false, false, Options);
376 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
377 "public class Test1 {{{0}" +
380 " internal virtual int Name {{{0}" +
382 " internal int Name {{{0}" +
385 "}}{0}", NewLine), code);
389 /// Apparently VB.NET CodeDOM also allows properties that aren't indexers
390 /// to have parameters.
393 public override void PropertyParametersTest ()
395 string code = GeneratePropertyParameters (Options);
396 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
397 "public class Test1 {{{0}" +
399 " public virtual int Name {{{0}" +
401 "}}{0}", NewLine), code);
405 public override void PropertyIndexerTest1 ()
407 string code = GeneratePropertyIndexer (MemberAttributes.Public,
408 false, false, true, Options);
409 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
410 "public class Test1 {{{0}" +
412 " public virtual int this[object value1, ref int value2] {{{0}" +
414 "}}{0}", NewLine), code);
418 public override void PropertyIndexerTest2 ()
420 string code = GeneratePropertyIndexer (MemberAttributes.Public,
421 false, false, false, Options);
422 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
423 "public class Test1 {{{0}" +
425 " public virtual int iTem {{{0}" +
427 "}}{0}", NewLine), code);
431 public override void PropertyIndexerGetOnly ()
433 string code = GeneratePropertyIndexer (MemberAttributes.Family,
434 true, false, true, Options);
435 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
436 "public class Test1 {{{0}" +
438 " protected virtual int this[object value1, ref int value2] {{{0}" +
442 "}}{0}", NewLine), code);
446 public override void PropertyIndexerSetOnly ()
448 string code = GeneratePropertyIndexer (MemberAttributes.Family,
449 false, true, true, Options);
450 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
451 "public class Test1 {{{0}" +
453 " protected virtual int this[object value1, ref int value2] {{{0}" +
457 "}}{0}", NewLine), code);
461 public override void PropertyImplementationTypes ()
463 string code = GeneratePropertyImplementationTypes (Options);
464 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
465 "public class Test1 {{{0}" +
467 " public virtual int Name {{{0}" +
469 "}}{0}", NewLine), code);
473 /// Ensure that Overloads keyword is output for a property which has
474 /// explicitly been marked as Overloaded.
477 public override void PropertyOverloadsTest1 ()
479 string code = GeneratePropertyOverloads1 (Options);
480 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
481 "public class Test1 {{{0}" +
483 " protected virtual int Name {{{0}" +
485 "}}{0}", NewLine), code);
489 /// Ensure that Overloads keyword is output if multiple properties with
490 /// the same name are defined.
493 public override void PropertyOverloadsTest2 ()
495 string code = GeneratePropertyOverloads2 (Options);
496 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
497 "public class Test1 {{{0}" +
499 " public virtual int Name {{{0}" +
502 " private int Name {{{0}" +
504 "}}{0}", NewLine), code);
508 /// Ensure that a property with a PrivateImplementationType and with
509 /// the same name does not qualify as an overload.
512 public override void PropertyOverloadsTest3 ()
514 string code = GeneratePropertyOverloads3 (Options);
515 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
516 "public class Test1 {{{0}" +
518 " public virtual int Name {{{0}" +
521 " int System.Int32.Name {{{0}" +
523 "}}{0}", NewLine), code);
527 /// Ensure no access modifiers are output if PrivateImplementationType
528 /// is set. Default keyword is also not output in this case.
531 public override void PropertyPrivateImplementationType ()
533 string code = GeneratePropertyPrivateImplementationType (Options);
534 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
535 "public class Test1 {{{0}" +
537 " int System.Int32.this[object value1] {{{0}" +
539 "}}{0}", NewLine), code);
543 /// If both ImplementationTypes and PrivateImplementationType are set,
544 /// then only ImplementationTypes are output.
547 public override void PropertyImplementationTypeOrder ()
549 string code = GeneratePropertyImplementationTypeOrder (Options);
550 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
551 "public class Test1 {{{0}" +
553 " int System.Int32.this[object value1] {{{0}" +
555 "}}{0}", NewLine), code);
559 public override void PropertyNewSlotTest ()
561 string code = GeneratePropertyMembersType (MemberAttributes.Private |
562 MemberAttributes.New, true, true, Options);
563 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
564 "public class Test1 {{{0}" +
566 " private new int Name {{{0}" +
572 "}}{0}", NewLine), code);
576 public override void MethodMembersTypeTest1 ()
578 string code = GenerateMethodMembersType1 (Options);
579 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
580 "public class Test1 {{{0}" +
584 " private void () {{{0}" +
586 "}}{0}", NewLine), code);
590 public void MethodMembersTypeTest1_C ()
592 CodeGeneratorOptions options = new CodeGeneratorOptions ();
593 options.BracingStyle = "C";
595 string code = GenerateMethodMembersType1 (options);
596 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
597 "public class Test1{0}" +
602 " private void (){0}" +
605 "}}{0}", NewLine), code);
609 public override void MethodMembersTypeTest2 ()
611 string code = GenerateMethodMembersType2 (Options);
612 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
613 "public class Test1 {{{0}" +
615 " public virtual int Something(object value1, object value2, out int index, ref int count) {{{0}" +
617 "}}{0}", NewLine), code);
621 public override void MethodMembersTypeTest3 ()
623 string code = GenerateMethodMembersType3 (Options);
624 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
625 "public class Test1 {{{0}" +
627 " public virtual int Something([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int ) {{{0}" +
629 "}}{0}", NewLine), code);
633 public override void MethodImplementationTypes ()
635 string code = GenerateMethodImplementationTypes (Options);
636 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
637 "public class Test1 {{{0}" +
640 " internal virtual int Execute() {{{0}" +
642 " internal int Execute() {{{0}" +
645 "}}{0}", NewLine), code);
649 public override void MethodOverloadsTest1 ()
651 string code = GenerateMethodOverloads1 (Options);
652 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
653 "public class Test1 {{{0}" +
656 " internal virtual int Execute() {{{0}" +
658 " internal int Execute() {{{0}" +
661 "}}{0}", NewLine), code);
665 public override void MethodOverloadsTest2 ()
667 string code = GenerateMethodOverloads2 (Options);
668 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
669 "public class Test1 {{{0}" +
671 " public virtual void Execute() {{{0}" +
674 " private int Execute(object value1) {{{0}" +
676 "}}{0}", NewLine), code);
680 /// Ensure that a method with a PrivateImplementationType and with
681 /// the same name does not qualify as an overload.
684 public override void MethodOverloadsTest3 ()
686 string code = GenerateMethodOverloads3 (Options);
687 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
688 "public class Test1 {{{0}" +
690 " public virtual void Execute() {{{0}" +
693 " int System.Int32.Execute(object value1) {{{0}" +
695 "}}{0}", NewLine), code);
699 /// Ensure no access modifiers are output if PrivateImplementationType
703 public override void MethodPrivateImplementationType ()
705 string code = GenerateMethodPrivateImplementationType (Options);
706 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
707 "public class Test1 {{{0}" +
709 " int System.Int32.Execute(object value1) {{{0}" +
711 "}}{0}", NewLine), code);
715 /// If both ImplementationTypes and PrivateImplementationType are set,
716 /// then only ImplementationTypes are output.
719 public override void MethodImplementationTypeOrder ()
721 string code = GenerateMethodImplementationTypeOrder (Options);
722 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
723 "public class Test1 {{{0}" +
725 " int System.Int32.Execute(object value1) {{{0}" +
727 "}}{0}", NewLine), code);
731 public override void MethodReturnTypeAttributes ()
733 string code = GenerateMethodReturnTypeAttributes (Options);
734 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
735 "public class Test1 {{{0}" +
739 " [return: C(A1=false, A2=true)]{0}" +
740 " [return: D()]{0}" +
741 " public virtual int Execute() {{{0}" +
743 "}}{0}", NewLine), code);
747 public override void MethodNewSlotTest ()
749 string code = GenerateMethodNewSlot (Options);
750 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
751 "public class Test1 {{{0}" +
753 " public new virtual int Execute() {{{0}" +
755 "}}{0}", NewLine), code);
759 public override void ConstructorAttributesTest ()
761 string code = GenerateConstructorAttributes (Options);
762 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
763 "public class Test1 {{{0}" +
767 " private Test1() {{{0}" +
769 "}}{0}", NewLine), code);
773 public void ConstructorAttributesTest_C ()
775 CodeGeneratorOptions options = new CodeGeneratorOptions ();
776 options.BracingStyle = "C";
778 string code = GenerateConstructorAttributes (options);
779 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
780 "public class Test1{0}" +
785 " private Test1(){0}" +
788 "}}{0}", NewLine), code);
792 public override void ConstructorParametersTest ()
794 string code = GenerateConstructorParameters (Options);
795 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
796 "public class Test1 {{{0}" +
798 " public Test1(object value1, object value2, out int index, ref int count) {{{0}" +
800 "}}{0}", NewLine), code);
804 public override void ConstructorParameterAttributesTest ()
806 string code = GenerateConstructorParameterAttributes (Options);
807 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
808 "public class Test1 {{{0}" +
810 " private Test1([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int index) {{{0}" +
812 "}}{0}", NewLine), code);
816 public override void BaseConstructorSingleArg ()
818 string code = GenerateBaseConstructor (false, Options);
819 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
820 "public class Test1 {{{0}" +
822 " protected Test1(object value1, out int value2) : {0}" +
823 " base(value1) {{{0}" +
825 "}}{0}", NewLine), code);
829 public override void BaseConstructorMultipleArgs ()
831 string code = GenerateBaseConstructor (true, Options);
832 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
833 "public class Test1 {{{0}" +
835 " protected Test1(object value1, out int value2) : {0}" +
836 " base(value1, value2) {{{0}" +
838 "}}{0}", NewLine), code);
842 public override void ChainedConstructorSingleArg ()
844 string code = GenerateChainedConstructor (false, Options);
845 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
846 "public class Test1 {{{0}" +
848 " public Test1(object value1, out int value2) : {0}" +
849 " base(value3) : {0}" +
850 " this(value1) {{{0}" +
852 "}}{0}", NewLine), code);
856 public override void ChainedConstructorMultipleArgs ()
858 string code = GenerateChainedConstructor (true, Options);
859 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
860 "public class Test1 {{{0}" +
862 " public Test1(object value1, out int value2) : {0}" +
863 " base(value3) : {0}" +
864 " this(value1, value2) {{{0}" +
866 "}}{0}", NewLine), code);
870 public override void TypeConstructorTest ()
872 string code = GenerateTypeConstructor (Options);
873 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
874 "public class Test1 {{{0}" +
880 " static Test1() {{{0}" +
882 "}}{0}", NewLine), code);
886 public void TypeConstructorTest_C ()
888 CodeGeneratorOptions options = new CodeGeneratorOptions ();
889 options.BracingStyle = "C";
891 string code = GenerateTypeConstructor (options);
892 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
893 "public class Test1{0}" +
900 " static Test1(){0}" +
903 "}}{0}", NewLine), code);
907 public override void EntryPointMethodTest ()
909 string code = GenerateEntryPointMethod (Options);
910 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
911 "public class Test1 {{{0}" +
915 " public static int Main() {{{0}" +
917 " public static void Main() {{{0}" +
919 " Test.InnerType x;{0}" +
921 "}}{0}", NewLine), code);
924 #endregion Override implementation of CodeGeneratorFromTypeTestBase
927 public void EscapePropertyName ()
929 CodeNamespace cns = new CodeNamespace ();
930 CodeTypeDeclaration ctd = new CodeTypeDeclaration ("TestType");
931 CodeMemberProperty f = new CodeMemberProperty ();
932 f.Type = new CodeTypeReference (typeof (string));
934 f.GetStatements.Add (new CodeMethodReturnStatement (
935 new CodePrimitiveExpression (null)));
938 CSharpCodeProvider p = new CSharpCodeProvider ();
939 StringWriter sw = new StringWriter ();
940 p.CreateGenerator ().GenerateCodeFromNamespace (cns, sw, null);
941 Assert.IsTrue (sw.ToString ().IndexOf ("@default") > 0);
946 public void GenericCodeTypeReferencesTest ()
948 string code = GenerateGenericCodeTypeReferences (Options);
949 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
950 "public class Test {{{0}" +
952 " private System.Nullable<int> Foo;{0}" +
954 " private System.Nullable<> Bar;{0}" +
955 "}}{0}", NewLine), code);
961 public class CodeGeneratorFromTypeTest_Delegate : CodeGeneratorFromTypeTestBase
963 private CodeTypeDeclaration _typeDeclaration;
964 private ICodeGenerator _codeGenerator;
966 #region Override implementation of CodeGeneratorTestBase
968 protected override ICodeGenerator CodeGenerator
970 get { return _codeGenerator; }
974 public override void SetUp ()
977 _typeDeclaration = new CodeTypeDelegate ();
979 CodeDomProvider provider = new CSharpCodeProvider ();
980 _codeGenerator = provider.CreateGenerator ();
983 #endregion Override implementation of CodeGeneratorTestBase
985 #region Override implementation of CodeGeneratorFromTypeTestBase
987 protected override CodeTypeDeclaration TypeDeclaration
989 get { return _typeDeclaration; }
993 public override void DefaultTypeTest ()
995 string code = GenerateDefaultType (Options);
996 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
997 "public delegate void ();{0}", NewLine), code);
1001 [ExpectedException (typeof (NullReferenceException))]
1002 public override void NullTypeTest ()
1004 GenerateNullType (Options);
1008 public override void SimpleTypeTest ()
1010 string code = GenerateSimpleType (Options);
1011 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1012 "public delegate void Test1();{0}", NewLine), code);
1016 public override void DerivedTypeTest ()
1018 string code = GenerateDerivedType (Options);
1019 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1020 "delegate void Test1();{0}", NewLine), code);
1024 public override void AttributesAndTypeTest ()
1026 CodeTypeDelegate delegateDecl = new CodeTypeDelegate ();
1027 delegateDecl.ReturnType = new CodeTypeReference (typeof (int));
1029 _typeDeclaration = delegateDecl;
1031 string code = GenerateAttributesAndType (Options);
1032 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1035 "public delegate int Test1();{0}", NewLine), code);
1039 public override void EventMembersTypeTest1 ()
1041 string code = GenerateEventMembersType1 (Options);
1042 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1043 "public delegate void Test1();{0}{0}", NewLine), code);
1047 public override void EventMembersTypeTest2 ()
1049 string code = GenerateEventMembersType2 (Options);
1050 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1051 "public delegate void Test1();{0}{0}", NewLine), code);
1055 public override void EventImplementationTypes ()
1057 string code = GenerateEventImplementationTypes (Options);
1058 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1059 "public delegate void Test1();{0}{0}", NewLine), code);
1063 /// Ensure no access modifiers are output if PrivateImplementationType
1067 public override void EventPrivateImplementationType ()
1069 string code = GenerateEventPrivateImplementationType (Options);
1070 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1071 "public delegate void Test1();{0}{0}", NewLine), code);
1075 /// If both ImplementationTypes and PrivateImplementationType are set,
1076 /// then only ImplementationTypes are output.
1079 public override void EventImplementationTypeOrder ()
1081 string code = GenerateEventImplementationTypeOrder (Options);
1082 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1083 "public delegate void Test1();{0}{0}", NewLine), code);
1087 public override void FieldMembersAttributesTest ()
1089 string code = GenerateFieldMembersAttributes (Options);
1090 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1091 "public delegate void Test1();{0}{0}", NewLine), code);
1095 public override void FieldMembersTypeTest ()
1097 string code = GenerateFieldMembersType (MemberAttributes.Public, Options);
1098 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1099 "public delegate void Test1();{0}{0}", NewLine), code);
1103 public override void FieldNewSlotTest ()
1105 string code = GenerateFieldMembersType (MemberAttributes.Assembly |
1106 MemberAttributes.New, Options);
1107 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1108 "public delegate void Test1();{0}{0}", NewLine), code);
1112 public override void PropertyMembersTypeTest1 ()
1114 string code = GeneratePropertyMembersAttributes (Options);
1115 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1116 "public delegate void Test1();{0}{0}", NewLine), code);
1120 public override void PropertyMembersTypeTest2 ()
1122 string code = GeneratePropertyMembersType (MemberAttributes.Public,
1123 false, false, Options);
1124 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1125 "public delegate void Test1();{0}{0}", NewLine), code);
1129 public override void PropertyMembersTypeGetOnly ()
1131 string code = GeneratePropertyMembersType (MemberAttributes.Family,
1132 true, false, Options);
1133 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1134 "public delegate void Test1();{0}{0}", NewLine), code);
1138 public override void PropertyMembersTypeSetOnly ()
1140 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
1141 false, true, Options);
1142 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1143 "public delegate void Test1();{0}{0}", NewLine), code);
1147 public override void PropertyMembersTypeGetSet ()
1149 string code = GeneratePropertyMembersType (MemberAttributes.Family,
1150 true, true, Options);
1151 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1152 "public delegate void Test1();{0}{0}", NewLine), code);
1156 public override void PropertyMembersTypeFamilyOrAssembly ()
1158 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
1159 false, false, Options);
1160 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1161 "public delegate void Test1();{0}{0}", NewLine), code);
1165 public override void PropertyMembersTypeAssembly ()
1167 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
1168 false, false, Options);
1169 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1170 "public delegate void Test1();{0}{0}", NewLine), code);
1174 public override void PropertyParametersTest ()
1176 string code = GeneratePropertyParameters (Options);
1177 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1178 "public delegate void Test1();{0}{0}", NewLine), code);
1182 public override void PropertyIndexerTest1 ()
1184 string code = GeneratePropertyIndexer (MemberAttributes.Public,
1185 false, false, true, Options);
1186 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1187 "public delegate void Test1();{0}{0}", NewLine), code);
1191 public override void PropertyIndexerTest2 ()
1193 string code = GeneratePropertyIndexer (MemberAttributes.Public,
1194 false, false, false, Options);
1195 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1196 "public delegate void Test1();{0}{0}", NewLine), code);
1200 public override void PropertyIndexerGetOnly ()
1202 string code = GeneratePropertyIndexer (MemberAttributes.Family,
1203 true, false, true, Options);
1204 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1205 "public delegate void Test1();{0}{0}", NewLine), code);
1209 public override void PropertyIndexerSetOnly ()
1211 string code = GeneratePropertyIndexer (MemberAttributes.Family,
1212 false, true, true, Options);
1213 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1214 "public delegate void Test1();{0}{0}", NewLine), code);
1218 public override void PropertyImplementationTypes ()
1220 string code = GeneratePropertyImplementationTypes (Options);
1221 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1222 "public delegate void Test1();{0}{0}", NewLine), code);
1226 public override void PropertyOverloadsTest1 ()
1228 string code = GeneratePropertyOverloads1 (Options);
1229 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1230 "public delegate void Test1();{0}{0}", NewLine), code);
1234 public override void PropertyOverloadsTest2 ()
1236 string code = GeneratePropertyOverloads2 (Options);
1237 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1238 "public delegate void Test1();{0}{0}{0}", NewLine), code);
1242 public override void PropertyOverloadsTest3 ()
1244 string code = GeneratePropertyOverloads3 (Options);
1245 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1246 "public delegate void Test1();{0}{0}{0}", NewLine), code);
1250 public override void PropertyPrivateImplementationType ()
1252 string code = GeneratePropertyPrivateImplementationType (Options);
1253 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1254 "public delegate void Test1();{0}{0}", NewLine), code);
1258 public override void PropertyImplementationTypeOrder ()
1260 string code = GeneratePropertyImplementationTypeOrder (Options);
1261 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1262 "public delegate void Test1();{0}{0}", NewLine), code);
1266 public override void PropertyNewSlotTest ()
1268 string code = GeneratePropertyMembersType (MemberAttributes.Private |
1269 MemberAttributes.New, true, true, Options);
1270 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1271 "public delegate void Test1();{0}{0}", NewLine), code);
1275 public override void MethodMembersTypeTest1 ()
1277 string code = GenerateMethodMembersType1 (Options);
1278 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1279 "public delegate void Test1();{0}{0}", NewLine), code);
1283 public override void MethodMembersTypeTest2 ()
1285 string code = GenerateMethodMembersType2 (Options);
1286 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1287 "public delegate void Test1();{0}{0}", NewLine), code);
1291 public override void MethodMembersTypeTest3 ()
1293 string code = GenerateMethodMembersType3 (Options);
1294 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1295 "public delegate void Test1();{0}{0}", NewLine), code);
1299 public override void MethodImplementationTypes ()
1301 string code = GenerateMethodImplementationTypes (Options);
1302 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1303 "public delegate void Test1();{0}{0}", NewLine), code);
1307 public override void MethodOverloadsTest1 ()
1309 string code = GenerateMethodOverloads1 (Options);
1310 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1311 "public delegate void Test1();{0}{0}", NewLine), code);
1315 public override void MethodOverloadsTest2 ()
1317 string code = GenerateMethodOverloads2 (Options);
1318 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1319 "public delegate void Test1();{0}{0}{0}", NewLine), code);
1323 public override void MethodOverloadsTest3 ()
1325 string code = GenerateMethodOverloads3 (Options);
1326 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1327 "public delegate void Test1();{0}{0}{0}", NewLine), code);
1331 public override void MethodPrivateImplementationType ()
1333 string code = GenerateMethodPrivateImplementationType (Options);
1334 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1335 "public delegate void Test1();{0}{0}", NewLine), code);
1339 public override void MethodImplementationTypeOrder ()
1341 string code = GenerateMethodImplementationTypeOrder (Options);
1342 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1343 "public delegate void Test1();{0}{0}", NewLine), code);
1347 public override void MethodReturnTypeAttributes ()
1349 string code = GenerateMethodReturnTypeAttributes (Options);
1350 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1351 "public delegate void Test1();{0}{0}", NewLine), code);
1355 public override void MethodNewSlotTest ()
1357 string code = GenerateMethodNewSlot (Options);
1358 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1359 "public delegate void Test1();{0}{0}", NewLine), code);
1363 public override void ConstructorAttributesTest ()
1365 string code = GenerateConstructorAttributes (Options);
1366 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1367 "public delegate void Test1();{0}{0}", NewLine), code);
1371 public override void ConstructorParametersTest ()
1373 string code = GenerateConstructorParameters (Options);
1374 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1375 "public delegate void Test1();{0}{0}", NewLine), code);
1379 public override void ConstructorParameterAttributesTest ()
1381 string code = GenerateConstructorParameterAttributes (Options);
1382 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1383 "public delegate void Test1();{0}{0}", NewLine), code);
1387 public override void BaseConstructorSingleArg ()
1389 string code = GenerateBaseConstructor (false, Options);
1390 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1391 "public delegate void Test1();{0}{0}", NewLine), code);
1395 public override void BaseConstructorMultipleArgs ()
1397 string code = GenerateBaseConstructor (true, Options);
1398 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1399 "public delegate void Test1();{0}{0}", NewLine), code);
1403 public override void ChainedConstructorSingleArg ()
1405 string code = GenerateChainedConstructor (false, Options);
1406 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1407 "public delegate void Test1();{0}{0}", NewLine), code);
1411 public override void ChainedConstructorMultipleArgs ()
1413 string code = GenerateChainedConstructor (true, Options);
1414 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1415 "public delegate void Test1();{0}{0}", NewLine), code);
1419 public override void TypeConstructorTest ()
1421 string code = GenerateTypeConstructor (Options);
1422 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1423 "public delegate void Test1();{0}{0}", NewLine), code);
1427 public override void EntryPointMethodTest ()
1429 string code = GenerateEntryPointMethod (Options);
1430 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1431 "public delegate void Test1();{0}{0}" +
1434 "public static int Main() {{{0}" +
1436 "public static void Main() {{{0}" +
1438 " Test.InnerType x;{0}" +
1439 "}}{0}", NewLine), code);
1442 #endregion Override implementation of CodeGeneratorFromTypeTestBase
1446 public class CodeGeneratorFromTypeTest_Interface : CodeGeneratorFromTypeTestBase
1448 private CodeTypeDeclaration _typeDeclaration;
1449 private ICodeGenerator _codeGenerator;
1451 #region Override implementation of CodeGeneratorTestBase
1453 protected override ICodeGenerator CodeGenerator
1455 get { return _codeGenerator; }
1459 public override void SetUp ()
1462 _typeDeclaration = new CodeTypeDeclaration ();
1463 _typeDeclaration.IsInterface = true;
1465 CodeDomProvider provider = new CSharpCodeProvider ();
1466 _codeGenerator = provider.CreateGenerator ();
1469 #endregion Override implementation of CodeGeneratorTestBase
1471 #region Override implementation of CodeGeneratorFromTypeTestBase
1473 protected override CodeTypeDeclaration TypeDeclaration
1475 get { return _typeDeclaration; }
1479 public override void DefaultTypeTest ()
1481 string code = GenerateDefaultType (Options);
1482 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1483 "public interface {{{0}" +
1484 "}}{0}", NewLine), code);
1488 public void DefaultTypeTest_C ()
1490 CodeGeneratorOptions options = new CodeGeneratorOptions ();
1491 options.BracingStyle = "C";
1493 string code = GenerateDefaultType (options);
1494 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1495 "public interface {0}" +
1497 "}}{0}", NewLine), code);
1501 [ExpectedException (typeof (NullReferenceException))]
1502 public override void NullTypeTest ()
1504 GenerateNullType (Options);
1508 public override void SimpleTypeTest ()
1510 string code = GenerateSimpleType (Options);
1511 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1512 "public interface Test1 {{{0}" +
1513 "}}{0}", NewLine), code);
1517 public void SimpleTypeTest_C ()
1519 CodeGeneratorOptions options = new CodeGeneratorOptions ();
1520 options.BracingStyle = "C";
1522 string code = GenerateSimpleType (options);
1523 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1524 "public interface Test1{0}" +
1526 "}}{0}", NewLine), code);
1530 public override void DerivedTypeTest ()
1532 string code = GenerateDerivedType (Options);
1533 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1535 "internal interface Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
1537 "interface Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
1539 "}}{0}", NewLine), code);
1543 public override void AttributesAndTypeTest ()
1545 string code = GenerateAttributesAndType (Options);
1546 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1549 "public interface Test1 {{{0}" +
1550 "}}{0}", NewLine), code);
1554 public override void EventMembersTypeTest1 ()
1556 string code = GenerateEventMembersType1 (Options);
1557 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1558 "public interface Test1 {{{0}" +
1562 " private event void ;{0}" +
1563 "}}{0}", NewLine), code);
1567 public override void EventMembersTypeTest2 ()
1569 string code = GenerateEventMembersType2 (Options);
1570 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1571 "public interface Test1 {{{0}" +
1573 " public event int Click;{0}" +
1574 "}}{0}", NewLine), code);
1578 public override void EventImplementationTypes ()
1580 string code = GenerateEventImplementationTypes (Options);
1581 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1582 "public interface Test1 {{{0}" +
1585 " internal event int Click;{0}" +
1587 " /*FamANDAssem*/ internal event int Click;{0}" +
1589 "}}{0}", NewLine), code);
1593 public override void EventPrivateImplementationType ()
1595 string code = GenerateEventPrivateImplementationType (Options);
1596 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1597 "public interface Test1 {{{0}" +
1599 " event int System.Int32.Click;{0}" +
1600 "}}{0}", NewLine), code);
1604 public override void EventImplementationTypeOrder ()
1606 string code = GenerateEventImplementationTypeOrder (Options);
1607 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1608 "public interface Test1 {{{0}" +
1610 " event int System.Int32.Click;{0}" +
1611 "}}{0}", NewLine), code);
1615 public override void FieldMembersAttributesTest ()
1617 string code = GenerateFieldMembersAttributes (Options);
1618 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1619 "public interface Test1 {{{0}" +
1621 "}}{0}", NewLine), code);
1625 public override void FieldMembersTypeTest ()
1627 string code = GenerateFieldMembersType (MemberAttributes.Public, Options);
1628 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1629 "public interface Test1 {{{0}" +
1631 "}}{0}", NewLine), code);
1635 public override void FieldNewSlotTest ()
1637 string code = GenerateFieldMembersType (MemberAttributes.Assembly |
1638 MemberAttributes.New, Options);
1639 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1640 "public interface Test1 {{{0}" +
1642 "}}{0}", NewLine), code);
1646 public override void PropertyMembersTypeTest1 ()
1648 string code = GeneratePropertyMembersAttributes (Options);
1649 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1650 "public interface Test1 {{{0}" +
1656 "}}{0}", NewLine), code);
1660 public override void PropertyMembersTypeTest2 ()
1662 string code = GeneratePropertyMembersType (MemberAttributes.Public,
1663 false, false, Options);
1664 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1665 "public interface Test1 {{{0}" +
1669 "}}{0}", NewLine), code);
1673 public override void PropertyMembersTypeGetOnly ()
1675 string code = GeneratePropertyMembersType (MemberAttributes.Family,
1676 true, false, Options);
1677 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1678 "public interface Test1 {{{0}" +
1683 "}}{0}", NewLine), code);
1687 public override void PropertyMembersTypeSetOnly ()
1689 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
1690 false, true, Options);
1691 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1692 "public interface Test1 {{{0}" +
1697 "}}{0}", NewLine), code);
1701 public override void PropertyMembersTypeGetSet ()
1703 string code = GeneratePropertyMembersType (MemberAttributes.Family,
1704 true, true, Options);
1705 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1706 "public interface Test1 {{{0}" +
1712 "}}{0}", NewLine), code);
1716 public void PropertyMembersTypeGetSet_C ()
1718 CodeGeneratorOptions options = new CodeGeneratorOptions ();
1719 options.BracingStyle = "C";
1721 string code = GeneratePropertyMembersType (MemberAttributes.Family,
1722 true, true, options);
1723 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1724 "public interface Test1{0}" +
1732 "}}{0}", NewLine), code);
1736 public override void PropertyMembersTypeFamilyOrAssembly ()
1738 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
1739 false, false, Options);
1740 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1741 "public interface Test1 {{{0}" +
1745 "}}{0}", NewLine), code);
1749 public override void PropertyMembersTypeAssembly ()
1751 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
1752 false, false, Options);
1753 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1754 "public interface Test1 {{{0}" +
1758 "}}{0}", NewLine), code);
1762 public override void PropertyParametersTest ()
1764 string code = GeneratePropertyParameters (Options);
1765 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1766 "public interface Test1 {{{0}" +
1770 "}}{0}", NewLine), code);
1774 public override void PropertyIndexerTest1 ()
1776 string code = GeneratePropertyIndexer (MemberAttributes.Public,
1777 false, false, true, Options);
1778 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1779 "public interface Test1 {{{0}" +
1781 " int this[object value1, ref int value2] {{{0}" +
1783 "}}{0}", NewLine), code);
1787 public override void PropertyIndexerTest2 ()
1789 string code = GeneratePropertyIndexer (MemberAttributes.Public,
1790 false, false, false, Options);
1791 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1792 "public interface Test1 {{{0}" +
1796 "}}{0}", NewLine), code);
1800 public override void PropertyIndexerGetOnly ()
1802 string code = GeneratePropertyIndexer (MemberAttributes.Family,
1803 true, false, true, Options);
1804 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1805 "public interface Test1 {{{0}" +
1807 " int this[object value1, ref int value2] {{{0}" +
1810 "}}{0}", NewLine), code);
1814 public override void PropertyIndexerSetOnly ()
1816 string code = GeneratePropertyIndexer (MemberAttributes.Family,
1817 false, true, true, Options);
1818 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1819 "public interface Test1 {{{0}" +
1821 " int this[object value1, ref int value2] {{{0}" +
1824 "}}{0}", NewLine), code);
1828 public override void PropertyImplementationTypes ()
1830 string code = GeneratePropertyImplementationTypes (Options);
1831 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1832 "public interface Test1 {{{0}" +
1836 "}}{0}", NewLine), code);
1840 public override void PropertyOverloadsTest1 ()
1842 string code = GeneratePropertyOverloads1 (Options);
1843 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1844 "public interface Test1 {{{0}" +
1848 "}}{0}", NewLine), code);
1852 public override void PropertyOverloadsTest2 ()
1854 string code = GeneratePropertyOverloads2 (Options);
1855 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1856 "public interface Test1 {{{0}" +
1863 "}}{0}", NewLine), code);
1867 public override void PropertyOverloadsTest3 ()
1869 string code = GeneratePropertyOverloads3 (Options);
1870 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1871 "public interface Test1 {{{0}" +
1878 "}}{0}", NewLine), code);
1882 public override void PropertyPrivateImplementationType ()
1884 string code = GeneratePropertyPrivateImplementationType (Options);
1885 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1886 "public interface Test1 {{{0}" +
1888 " int this[object value1] {{{0}" +
1890 "}}{0}", NewLine), code);
1894 public override void PropertyImplementationTypeOrder ()
1896 string code = GeneratePropertyImplementationTypeOrder (Options);
1897 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1898 "public interface Test1 {{{0}" +
1900 " int this[object value1] {{{0}" +
1902 "}}{0}", NewLine), code);
1906 public override void PropertyNewSlotTest ()
1908 string code = GeneratePropertyMembersType (MemberAttributes.Private |
1909 MemberAttributes.New, true, true, Options);
1910 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1911 "public interface Test1 {{{0}" +
1913 " new int Name {{{0}" +
1917 "}}{0}", NewLine), code);
1921 public override void MethodMembersTypeTest1 ()
1923 string code = GenerateMethodMembersType1 (Options);
1924 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1925 "public interface Test1 {{{0}" +
1930 "}}{0}", NewLine), code);
1934 public void MethodMembersTypeTest1_C ()
1936 CodeGeneratorOptions options = new CodeGeneratorOptions ();
1937 options.BracingStyle = "C";
1939 string code = GenerateMethodMembersType1 (options);
1940 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1941 "public interface Test1{0}" +
1947 "}}{0}", NewLine), code);
1951 public override void MethodMembersTypeTest2 ()
1953 string code = GenerateMethodMembersType2 (Options);
1954 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1955 "public interface Test1 {{{0}" +
1957 " int Something(object value1, object value2, out int index, ref int count);{0}" +
1958 "}}{0}", NewLine), code);
1962 public override void MethodMembersTypeTest3 ()
1964 string code = GenerateMethodMembersType3 (Options);
1965 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1966 "public interface Test1 {{{0}" +
1968 " int Something([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int );{0}" +
1969 "}}{0}", NewLine), code);
1973 public override void MethodImplementationTypes ()
1975 string code = GenerateMethodImplementationTypes (Options);
1976 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1977 "public interface Test1 {{{0}" +
1979 " int Execute();{0}" +
1980 "}}{0}", NewLine), code);
1984 public override void MethodOverloadsTest1 ()
1986 string code = GenerateMethodOverloads1 (Options);
1987 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1988 "public interface Test1 {{{0}" +
1990 " int Execute();{0}" +
1991 "}}{0}", NewLine), code);
1995 public override void MethodOverloadsTest2 ()
1997 string code = GenerateMethodOverloads2 (Options);
1998 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1999 "public interface Test1 {{{0}" +
2001 " void Execute();{0}" +
2003 " int Execute(object value1);{0}" +
2004 "}}{0}", NewLine), code);
2008 public override void MethodOverloadsTest3 ()
2010 string code = GenerateMethodOverloads3 (Options);
2011 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2012 "public interface Test1 {{{0}" +
2014 " void Execute();{0}" +
2016 " int System.Int32.Execute(object value1);{0}" +
2017 "}}{0}", NewLine), code);
2021 public override void MethodPrivateImplementationType ()
2023 string code = GenerateMethodPrivateImplementationType (Options);
2024 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2025 "public interface Test1 {{{0}" +
2027 " int System.Int32.Execute(object value1);{0}" +
2028 "}}{0}", NewLine), code);
2032 public override void MethodImplementationTypeOrder ()
2034 string code = GenerateMethodImplementationTypeOrder (Options);
2035 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2036 "public interface Test1 {{{0}" +
2038 " int System.Int32.Execute(object value1);{0}" +
2039 "}}{0}", NewLine), code);
2043 public override void MethodReturnTypeAttributes ()
2045 string code = GenerateMethodReturnTypeAttributes (Options);
2046 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2047 "public interface Test1 {{{0}" +
2051 " [return: C(A1=false, A2=true)]{0}" +
2052 " [return: D()]{0}" +
2053 " int Execute();{0}" +
2054 "}}{0}", NewLine), code);
2058 public override void MethodNewSlotTest ()
2060 string code = GenerateMethodNewSlot (Options);
2061 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2062 "public interface Test1 {{{0}" +
2064 " new int Execute();{0}" +
2065 "}}{0}", NewLine), code);
2069 public override void ConstructorAttributesTest ()
2071 string code = GenerateConstructorAttributes (Options);
2072 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2073 "public interface Test1 {{{0}" +
2075 "}}{0}", NewLine), code);
2079 public void ConstructorAttributesTest_C ()
2081 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2082 options.BracingStyle = "C";
2084 string code = GenerateConstructorAttributes (options);
2085 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2086 "public interface Test1{0}" +
2089 "}}{0}", NewLine), code);
2093 public override void ConstructorParametersTest ()
2095 string code = GenerateConstructorParameters (Options);
2096 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2097 "public interface Test1 {{{0}" +
2099 "}}{0}", NewLine), code);
2103 public override void ConstructorParameterAttributesTest ()
2105 string code = GenerateConstructorParameterAttributes (Options);
2106 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2107 "public interface Test1 {{{0}" +
2109 "}}{0}", NewLine), code, "#1");
2113 public override void BaseConstructorSingleArg ()
2115 string code = GenerateBaseConstructor (false, Options);
2116 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2117 "public interface Test1 {{{0}" +
2119 "}}{0}", NewLine), code);
2123 public override void BaseConstructorMultipleArgs ()
2125 string code = GenerateBaseConstructor (true, Options);
2126 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2127 "public interface Test1 {{{0}" +
2129 "}}{0}", NewLine), code);
2133 public override void ChainedConstructorSingleArg ()
2135 string code = GenerateChainedConstructor (false, Options);
2136 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2137 "public interface Test1 {{{0}" +
2139 "}}{0}", NewLine), code);
2143 public override void ChainedConstructorMultipleArgs ()
2145 string code = GenerateChainedConstructor (true, Options);
2146 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2147 "public interface Test1 {{{0}" +
2149 "}}{0}", NewLine), code);
2153 public override void TypeConstructorTest ()
2155 string code = GenerateTypeConstructor (Options);
2156 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2157 "public interface Test1 {{{0}" +
2159 "}}{0}", NewLine), code);
2163 public void TypeConstructorTest_C ()
2165 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2166 options.BracingStyle = "C";
2168 string code = GenerateTypeConstructor (options);
2169 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2170 "public interface Test1{0}" +
2173 "}}{0}", NewLine), code);
2177 public override void EntryPointMethodTest ()
2179 string code = GenerateEntryPointMethod (Options);
2180 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2181 "public interface Test1 {{{0}" +
2185 " public static int Main() {{{0}" +
2187 " public static void Main() {{{0}" +
2189 " Test.InnerType x;{0}" +
2191 "}}{0}", NewLine), code);
2194 #endregion Override implementation of CodeGeneratorFromTypeTestBase
2198 public class CodeGeneratorFromTypeTest_Struct : CodeGeneratorFromTypeTestBase
2200 private CodeTypeDeclaration _typeDeclaration;
2201 private ICodeGenerator _codeGenerator;
2203 #region Override implementation of CodeGeneratorTestBase
2205 protected override ICodeGenerator CodeGenerator
2207 get { return _codeGenerator; }
2211 public override void SetUp ()
2214 _typeDeclaration = new CodeTypeDeclaration ();
2215 _typeDeclaration.IsStruct = true;
2217 CodeDomProvider provider = new CSharpCodeProvider ();
2218 _codeGenerator = provider.CreateGenerator ();
2221 #endregion Override implementation of CodeGeneratorTestBase
2223 #region Override implementation of CodeGeneratorFromTypeTestBase
2225 protected override CodeTypeDeclaration TypeDeclaration
2227 get { return _typeDeclaration; }
2231 public override void DefaultTypeTest ()
2233 string code = GenerateDefaultType (Options);
2234 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2235 "public struct {{{0}" +
2236 "}}{0}", NewLine), code);
2240 public void DefaultTypeTest_C ()
2242 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2243 options.BracingStyle = "C";
2245 string code = GenerateDefaultType (options);
2246 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2247 "public struct {0}" +
2249 "}}{0}", NewLine), code);
2253 [ExpectedException (typeof (NullReferenceException))]
2254 public override void NullTypeTest ()
2256 GenerateNullType (Options);
2260 public override void SimpleTypeTest ()
2262 string code = GenerateSimpleType (Options);
2263 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2264 "public struct Test1 {{{0}" +
2265 "}}{0}", NewLine), code);
2269 public void SimpleTypeTest_C ()
2271 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2272 options.BracingStyle = "C";
2274 string code = GenerateSimpleType (options);
2275 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2276 "public struct Test1{0}" +
2278 "}}{0}", NewLine), code);
2282 public override void DerivedTypeTest ()
2284 string code = GenerateDerivedType (Options);
2285 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2287 "internal struct Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
2289 "struct Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
2291 "}}{0}", NewLine), code);
2295 public override void AttributesAndTypeTest ()
2297 string code = GenerateAttributesAndType (Options);
2298 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2301 "public struct Test1 {{{0}" +
2302 "}}{0}", NewLine), code);
2306 public override void EventMembersTypeTest1 ()
2308 string code = GenerateEventMembersType1 (Options);
2309 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2310 "public struct Test1 {{{0}" +
2314 " private event void ;{0}" +
2315 "}}{0}", NewLine), code);
2319 public override void EventMembersTypeTest2 ()
2321 string code = GenerateEventMembersType2 (Options);
2322 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2323 "public struct Test1 {{{0}" +
2325 " public event int Click;{0}" +
2326 "}}{0}", NewLine), code);
2330 public override void EventImplementationTypes ()
2332 string code = GenerateEventImplementationTypes (Options);
2333 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2334 "public struct Test1 {{{0}" +
2337 " internal event int Click;{0}" +
2339 " /*FamANDAssem*/ internal event int Click;{0}" +
2341 "}}{0}", NewLine), code);
2345 public override void EventPrivateImplementationType ()
2347 string code = GenerateEventPrivateImplementationType (Options);
2348 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2349 "public struct Test1 {{{0}" +
2351 " event int System.Int32.Click;{0}" +
2352 "}}{0}", NewLine), code);
2356 public override void EventImplementationTypeOrder ()
2358 string code = GenerateEventImplementationTypeOrder (Options);
2359 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2360 "public struct Test1 {{{0}" +
2362 " event int System.Int32.Click;{0}" +
2363 "}}{0}", NewLine), code);
2367 public override void FieldMembersAttributesTest ()
2369 string code = GenerateFieldMembersAttributes (Options);
2370 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2371 "public struct Test1 {{{0}" +
2375 " private void ;{0}" +
2376 "}}{0}", NewLine), code);
2380 public override void FieldMembersTypeTest ()
2382 string code = GenerateFieldMembersType (MemberAttributes.Public, Options);
2383 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2384 "public struct Test1 {{{0}" +
2386 " public int Name = 2;{0}" +
2387 "}}{0}", NewLine), code);
2391 public override void FieldNewSlotTest ()
2393 string code = GenerateFieldMembersType (MemberAttributes.Assembly |
2394 MemberAttributes.New, Options);
2395 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2396 "public struct Test1 {{{0}" +
2398 " internal new int Name = 2;{0}" +
2399 "}}{0}", NewLine), code);
2403 public override void PropertyMembersTypeTest1 ()
2405 string code = GeneratePropertyMembersAttributes (Options);
2406 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2407 "public struct Test1 {{{0}" +
2411 " private void {{{0}" +
2413 "}}{0}", NewLine), code);
2417 public override void PropertyMembersTypeTest2 ()
2419 string code = GeneratePropertyMembersType (MemberAttributes.Public,
2420 false, false, Options);
2421 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2422 "public struct Test1 {{{0}" +
2424 " public virtual int Name {{{0}" +
2426 "}}{0}", NewLine), code);
2430 public override void PropertyMembersTypeGetOnly ()
2432 string code = GeneratePropertyMembersType (MemberAttributes.Family,
2433 true, false, Options);
2434 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2435 "public struct Test1 {{{0}" +
2437 " protected virtual int Name {{{0}" +
2441 "}}{0}", NewLine), code);
2445 public override void PropertyMembersTypeSetOnly ()
2447 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
2448 false, true, Options);
2449 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2450 "public struct Test1 {{{0}" +
2453 " internal virtual int Name {{{0}" +
2455 " internal int Name {{{0}" +
2460 "}}{0}", NewLine), code);
2464 public override void PropertyMembersTypeGetSet ()
2466 string code = GeneratePropertyMembersType (MemberAttributes.Family,
2467 true, true, Options);
2468 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2469 "public struct Test1 {{{0}" +
2471 " protected virtual int Name {{{0}" +
2477 "}}{0}", NewLine), code);
2481 public void PropertyMembersTypeGetSet_C ()
2483 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2484 options.BracingStyle = "C";
2486 string code = GeneratePropertyMembersType (MemberAttributes.Family,
2487 true, true, options);
2488 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2489 "public struct Test1{0}" +
2492 " protected virtual int Name{0}" +
2501 "}}{0}", NewLine), code);
2505 public override void PropertyMembersTypeFamilyOrAssembly ()
2507 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
2508 false, false, Options);
2509 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2510 "public struct Test1 {{{0}" +
2512 " protected internal int Name {{{0}" +
2514 "}}{0}", NewLine), code);
2518 public override void PropertyMembersTypeAssembly ()
2520 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
2521 false, false, Options);
2522 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2523 "public struct Test1 {{{0}" +
2526 " internal virtual int Name {{{0}" +
2528 " internal int Name {{{0}" +
2531 "}}{0}", NewLine), code);
2535 public override void PropertyParametersTest ()
2537 string code = GeneratePropertyParameters (Options);
2538 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2539 "public struct Test1 {{{0}" +
2541 " public virtual int Name {{{0}" +
2543 "}}{0}", NewLine), code);
2547 public override void PropertyIndexerTest1 ()
2549 string code = GeneratePropertyIndexer (MemberAttributes.Public,
2550 false, false, true, Options);
2551 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2552 "public struct Test1 {{{0}" +
2554 " public virtual int this[object value1, ref int value2] {{{0}" +
2556 "}}{0}", NewLine), code);
2560 public override void PropertyIndexerTest2 ()
2562 string code = GeneratePropertyIndexer (MemberAttributes.Public,
2563 false, false, false, Options);
2564 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2565 "public struct Test1 {{{0}" +
2567 " public virtual int iTem {{{0}" +
2569 "}}{0}", NewLine), code);
2573 public override void PropertyIndexerGetOnly ()
2575 string code = GeneratePropertyIndexer (MemberAttributes.Family,
2576 true, false, true, Options);
2577 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2578 "public struct Test1 {{{0}" +
2580 " protected virtual int this[object value1, ref int value2] {{{0}" +
2584 "}}{0}", NewLine), code);
2588 public override void PropertyIndexerSetOnly ()
2590 string code = GeneratePropertyIndexer (MemberAttributes.Family,
2591 false, true, true, Options);
2592 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2593 "public struct Test1 {{{0}" +
2595 " protected virtual int this[object value1, ref int value2] {{{0}" +
2599 "}}{0}", NewLine), code);
2603 public override void PropertyImplementationTypes ()
2605 string code = GeneratePropertyImplementationTypes (Options);
2606 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2607 "public struct Test1 {{{0}" +
2609 " public virtual int Name {{{0}" +
2611 "}}{0}", NewLine), code);
2615 public override void PropertyOverloadsTest1 ()
2617 string code = GeneratePropertyOverloads1 (Options);
2618 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2619 "public struct Test1 {{{0}" +
2621 " protected virtual int Name {{{0}" +
2623 "}}{0}", NewLine), code);
2627 public override void PropertyOverloadsTest2 ()
2629 string code = GeneratePropertyOverloads2 (Options);
2630 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2631 "public struct Test1 {{{0}" +
2633 " public virtual int Name {{{0}" +
2636 " private int Name {{{0}" +
2638 "}}{0}", NewLine), code);
2642 public override void PropertyOverloadsTest3 ()
2644 string code = GeneratePropertyOverloads3 (Options);
2645 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2646 "public struct Test1 {{{0}" +
2648 " public virtual int Name {{{0}" +
2651 " int System.Int32.Name {{{0}" +
2653 "}}{0}", NewLine), code);
2657 public override void PropertyPrivateImplementationType ()
2659 string code = GeneratePropertyPrivateImplementationType (Options);
2660 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2661 "public struct Test1 {{{0}" +
2663 " int System.Int32.this[object value1] {{{0}" +
2665 "}}{0}", NewLine), code);
2669 public override void PropertyImplementationTypeOrder ()
2671 string code = GeneratePropertyImplementationTypeOrder (Options);
2672 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2673 "public struct Test1 {{{0}" +
2675 " int System.Int32.this[object value1] {{{0}" +
2677 "}}{0}", NewLine), code);
2681 public override void PropertyNewSlotTest ()
2683 string code = GeneratePropertyMembersType (MemberAttributes.Private |
2684 MemberAttributes.New, true, true, Options);
2685 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2686 "public struct Test1 {{{0}" +
2688 " private new int Name {{{0}" +
2694 "}}{0}", NewLine), code);
2698 public override void MethodMembersTypeTest1 ()
2700 string code = GenerateMethodMembersType1 (Options);
2701 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2702 "public struct Test1 {{{0}" +
2706 " private void () {{{0}" +
2708 "}}{0}", NewLine), code);
2712 public void MethodMembersTypeTest1_C ()
2714 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2715 options.BracingStyle = "C";
2717 string code = GenerateMethodMembersType1 (options);
2718 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2719 "public struct Test1{0}" +
2724 " private void (){0}" +
2727 "}}{0}", NewLine), code);
2731 public override void MethodMembersTypeTest2 ()
2733 string code = GenerateMethodMembersType2 (Options);
2734 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2735 "public struct Test1 {{{0}" +
2737 " public virtual int Something(object value1, object value2, out int index, ref int count) {{{0}" +
2739 "}}{0}", NewLine), code);
2743 public override void MethodMembersTypeTest3 ()
2745 string code = GenerateMethodMembersType3 (Options);
2746 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2747 "public struct Test1 {{{0}" +
2749 " public virtual int Something([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int ) {{{0}" +
2751 "}}{0}", NewLine), code);
2755 public override void MethodImplementationTypes ()
2757 string code = GenerateMethodImplementationTypes (Options);
2758 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2759 "public struct Test1 {{{0}" +
2762 " internal virtual int Execute() {{{0}" +
2764 " internal int Execute() {{{0}" +
2767 "}}{0}", NewLine), code);
2771 public override void MethodOverloadsTest1 ()
2773 string code = GenerateMethodOverloads1 (Options);
2774 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2775 "public struct Test1 {{{0}" +
2778 " internal virtual int Execute() {{{0}" +
2780 " internal int Execute() {{{0}" +
2783 "}}{0}", NewLine), code);
2787 public override void MethodOverloadsTest2 ()
2789 string code = GenerateMethodOverloads2 (Options);
2790 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2791 "public struct Test1 {{{0}" +
2793 " public virtual void Execute() {{{0}" +
2796 " private int Execute(object value1) {{{0}" +
2798 "}}{0}", NewLine), code);
2802 public override void MethodOverloadsTest3 ()
2804 string code = GenerateMethodOverloads3 (Options);
2805 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2806 "public struct Test1 {{{0}" +
2808 " public virtual void Execute() {{{0}" +
2811 " int System.Int32.Execute(object value1) {{{0}" +
2813 "}}{0}", NewLine), code);
2817 public override void MethodPrivateImplementationType ()
2819 string code = GenerateMethodPrivateImplementationType (Options);
2820 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2821 "public struct Test1 {{{0}" +
2823 " int System.Int32.Execute(object value1) {{{0}" +
2825 "}}{0}", NewLine), code);
2829 public override void MethodImplementationTypeOrder ()
2831 string code = GenerateMethodImplementationTypeOrder (Options);
2832 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2833 "public struct Test1 {{{0}" +
2835 " int System.Int32.Execute(object value1) {{{0}" +
2837 "}}{0}", NewLine), code);
2841 public override void MethodReturnTypeAttributes ()
2843 string code = GenerateMethodReturnTypeAttributes (Options);
2844 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2845 "public struct Test1 {{{0}" +
2849 " [return: C(A1=false, A2=true)]{0}" +
2850 " [return: D()]{0}" +
2851 " public virtual int Execute() {{{0}" +
2853 "}}{0}", NewLine), code);
2857 public override void MethodNewSlotTest ()
2859 string code = GenerateMethodNewSlot (Options);
2860 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2861 "public struct Test1 {{{0}" +
2863 " public new virtual int Execute() {{{0}" +
2865 "}}{0}", NewLine), code);
2869 public override void ConstructorAttributesTest ()
2871 string code = GenerateConstructorAttributes (Options);
2872 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2873 "public struct Test1 {{{0}" +
2877 " private Test1() {{{0}" +
2879 "}}{0}", NewLine), code);
2883 public void ConstructorAttributesTest_C ()
2885 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2886 options.BracingStyle = "C";
2888 string code = GenerateConstructorAttributes (options);
2889 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2890 "public struct Test1{0}" +
2895 " private Test1(){0}" +
2898 "}}{0}", NewLine), code);
2902 public override void ConstructorParametersTest ()
2904 string code = GenerateConstructorParameters (Options);
2905 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2906 "public struct Test1 {{{0}" +
2908 " public Test1(object value1, object value2, out int index, ref int count) {{{0}" +
2910 "}}{0}", NewLine), code);
2914 public override void ConstructorParameterAttributesTest ()
2916 string code = GenerateConstructorParameterAttributes (Options);
2917 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2918 "public struct Test1 {{{0}" +
2920 " private Test1([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int index) {{{0}" +
2922 "}}{0}", NewLine), code);
2926 public override void BaseConstructorSingleArg ()
2928 string code = GenerateBaseConstructor (false, Options);
2929 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2930 "public struct Test1 {{{0}" +
2932 " protected Test1(object value1, out int value2) : {0}" +
2933 " base(value1) {{{0}" +
2935 "}}{0}", NewLine), code);
2939 public override void BaseConstructorMultipleArgs ()
2941 string code = GenerateBaseConstructor (true, Options);
2942 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2943 "public struct Test1 {{{0}" +
2945 " protected Test1(object value1, out int value2) : {0}" +
2946 " base(value1, value2) {{{0}" +
2948 "}}{0}", NewLine), code);
2952 public override void ChainedConstructorSingleArg ()
2954 string code = GenerateChainedConstructor (false, Options);
2955 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2956 "public struct Test1 {{{0}" +
2958 " public Test1(object value1, out int value2) : {0}" +
2959 " base(value3) : {0}" +
2960 " this(value1) {{{0}" +
2962 "}}{0}", NewLine), code);
2966 public override void ChainedConstructorMultipleArgs ()
2968 string code = GenerateChainedConstructor (true, Options);
2969 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2970 "public struct Test1 {{{0}" +
2972 " public Test1(object value1, out int value2) : {0}" +
2973 " base(value3) : {0}" +
2974 " this(value1, value2) {{{0}" +
2976 "}}{0}", NewLine), code);
2980 public override void TypeConstructorTest ()
2982 string code = GenerateTypeConstructor (Options);
2983 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2984 "public struct Test1 {{{0}" +
2990 " static Test1() {{{0}" +
2992 "}}{0}", NewLine), code, "#1");
2996 public void TypeConstructorTest_C ()
2998 CodeGeneratorOptions options = new CodeGeneratorOptions ();
2999 options.BracingStyle = "C";
3001 string code = GenerateTypeConstructor (options);
3002 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3003 "public struct Test1{0}" +
3010 " static Test1(){0}" +
3013 "}}{0}", NewLine), code, "#2");
3017 public override void EntryPointMethodTest ()
3019 string code = GenerateEntryPointMethod (Options);
3020 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3021 "public struct Test1 {{{0}" +
3025 " public static int Main() {{{0}" +
3027 " public static void Main() {{{0}" +
3029 " Test.InnerType x;{0}" +
3031 "}}{0}", NewLine), code);
3034 #endregion Override implementation of CodeGeneratorFromTypeTestBase
3038 public class CodeGeneratorFromTypeTest_Enum : CodeGeneratorFromTypeTestBase
3040 private CodeTypeDeclaration _typeDeclaration;
3041 private ICodeGenerator _codeGenerator;
3043 #region Override implementation of CodeGeneratorTestBase
3045 protected override ICodeGenerator CodeGenerator
3047 get { return _codeGenerator; }
3051 public override void SetUp ()
3054 _typeDeclaration = new CodeTypeDeclaration ();
3055 _typeDeclaration.IsEnum = true;
3057 CodeDomProvider provider = new CSharpCodeProvider ();
3058 _codeGenerator = provider.CreateGenerator ();
3061 #endregion Override implementation of CodeGeneratorTestBase
3063 #region Override implementation of CodeGeneratorFromTypeTestBase
3065 protected override CodeTypeDeclaration TypeDeclaration
3067 get { return _typeDeclaration; }
3071 public override void DefaultTypeTest ()
3073 string code = GenerateDefaultType (Options);
3074 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3075 "public enum {{{0}" +
3076 "}}{0}", NewLine), code);
3080 public void DefaultTypeTest_C ()
3082 CodeGeneratorOptions options = new CodeGeneratorOptions ();
3083 options.BracingStyle = "C";
3085 string code = GenerateDefaultType (options);
3086 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3089 "}}{0}", NewLine), code);
3093 [ExpectedException (typeof (NullReferenceException))]
3094 public override void NullTypeTest ()
3096 GenerateNullType (Options);
3100 public override void SimpleTypeTest ()
3102 string code = GenerateSimpleType (Options);
3103 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3104 "public enum Test1 {{{0}" +
3105 "}}{0}", NewLine), code);
3109 public void SimpleTypeTest_C ()
3111 CodeGeneratorOptions options = new CodeGeneratorOptions ();
3112 options.BracingStyle = "C";
3114 string code = GenerateSimpleType (options);
3115 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3116 "public enum Test1{0}" +
3118 "}}{0}", NewLine), code);
3122 public override void DerivedTypeTest ()
3124 string code = GenerateDerivedType (Options);
3125 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3127 "internal enum Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
3129 "enum Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
3131 "}}{0}", NewLine), code);
3135 public override void AttributesAndTypeTest ()
3137 string code = GenerateAttributesAndType (Options);
3138 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3141 "public enum Test1 {{{0}" +
3142 "}}{0}", NewLine), code);
3146 public override void EventMembersTypeTest1 ()
3148 string code = GenerateEventMembersType1 (Options);
3149 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3150 "public enum Test1 {{{0}" +
3152 "}}{0}", NewLine), code);
3156 public override void EventMembersTypeTest2 ()
3158 string code = GenerateEventMembersType2 (Options);
3159 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3160 "public enum Test1 {{{0}" +
3162 "}}{0}", NewLine), code);
3166 public override void EventImplementationTypes ()
3168 string code = GenerateEventImplementationTypes (Options);
3169 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3170 "public enum Test1 {{{0}" +
3172 "}}{0}", NewLine), code);
3176 public override void EventPrivateImplementationType ()
3178 string code = GenerateEventPrivateImplementationType (Options);
3179 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3180 "public enum Test1 {{{0}" +
3182 "}}{0}", NewLine), code);
3186 public override void EventImplementationTypeOrder ()
3188 string code = GenerateEventImplementationTypeOrder (Options);
3189 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3190 "public enum Test1 {{{0}" +
3192 "}}{0}", NewLine), code);
3196 public override void FieldMembersAttributesTest ()
3198 string code = GenerateFieldMembersAttributes (Options);
3199 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3200 "public enum Test1 {{{0}" +
3205 "}}{0}", NewLine), code);
3209 public override void FieldMembersTypeTest ()
3211 string code = GenerateFieldMembersType (MemberAttributes.Public, Options);
3212 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3213 "public enum Test1 {{{0}" +
3216 "}}{0}", NewLine), code);
3220 public override void FieldNewSlotTest ()
3222 string code = GenerateFieldMembersType (MemberAttributes.Assembly |
3223 MemberAttributes.New, Options);
3224 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3225 "public enum Test1 {{{0}" +
3228 "}}{0}", NewLine), code);
3232 public override void PropertyMembersTypeTest1 ()
3234 string code = GeneratePropertyMembersAttributes (Options);
3235 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3236 "public enum Test1 {{{0}" +
3238 "}}{0}", NewLine), code);
3242 public override void PropertyMembersTypeTest2 ()
3244 string code = GeneratePropertyMembersType (MemberAttributes.Public,
3245 false, false, Options);
3246 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3247 "public enum Test1 {{{0}" +
3249 "}}{0}", NewLine), code);
3253 public override void PropertyMembersTypeGetOnly ()
3255 string code = GeneratePropertyMembersType (MemberAttributes.Family,
3256 true, false, Options);
3257 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3258 "public enum Test1 {{{0}" +
3260 "}}{0}", NewLine), code);
3264 public override void PropertyMembersTypeSetOnly ()
3266 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
3267 false, true, Options);
3268 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3269 "public enum Test1 {{{0}" +
3271 "}}{0}", NewLine), code);
3275 public override void PropertyMembersTypeGetSet ()
3277 string code = GeneratePropertyMembersType (MemberAttributes.Family,
3278 true, true, Options);
3279 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3280 "public enum Test1 {{{0}" +
3282 "}}{0}", NewLine), code);
3286 public void PropertyMembersTypeGetSet_C ()
3288 CodeGeneratorOptions options = new CodeGeneratorOptions ();
3289 options.BracingStyle = "C";
3291 string code = GeneratePropertyMembersType (MemberAttributes.Family,
3292 true, true, options);
3293 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3294 "public enum Test1{0}" +
3297 "}}{0}", NewLine), code);
3301 public override void PropertyMembersTypeFamilyOrAssembly ()
3303 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
3304 false, false, Options);
3305 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3306 "public enum Test1 {{{0}" +
3308 "}}{0}", NewLine), code);
3312 public override void PropertyMembersTypeAssembly ()
3314 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
3315 false, false, Options);
3316 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3317 "public enum Test1 {{{0}" +
3319 "}}{0}", NewLine), code);
3323 public override void PropertyParametersTest ()
3325 string code = GeneratePropertyParameters (Options);
3326 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3327 "public enum Test1 {{{0}" +
3329 "}}{0}", NewLine), code);
3333 public override void PropertyIndexerTest1 ()
3335 string code = GeneratePropertyIndexer (MemberAttributes.Public,
3336 false, false, true, Options);
3337 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3338 "public enum Test1 {{{0}" +
3340 "}}{0}", NewLine), code);
3344 public override void PropertyIndexerTest2 ()
3346 string code = GeneratePropertyIndexer (MemberAttributes.Public,
3347 false, false, false, Options);
3348 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3349 "public enum Test1 {{{0}" +
3351 "}}{0}", NewLine), code);
3355 public override void PropertyIndexerGetOnly ()
3357 string code = GeneratePropertyIndexer (MemberAttributes.Family,
3358 true, false, true, Options);
3359 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3360 "public enum Test1 {{{0}" +
3362 "}}{0}", NewLine), code);
3366 public override void PropertyIndexerSetOnly ()
3368 string code = GeneratePropertyIndexer (MemberAttributes.Family,
3369 false, true, true, Options);
3370 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3371 "public enum Test1 {{{0}" +
3373 "}}{0}", NewLine), code);
3377 public override void PropertyImplementationTypes ()
3379 string code = GeneratePropertyImplementationTypes (Options);
3380 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3381 "public enum Test1 {{{0}" +
3383 "}}{0}", NewLine), code);
3387 public override void PropertyOverloadsTest1 ()
3389 string code = GeneratePropertyOverloads1 (Options);
3390 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3391 "public enum Test1 {{{0}" +
3393 "}}{0}", NewLine), code);
3397 public override void PropertyOverloadsTest2 ()
3399 string code = GeneratePropertyOverloads2 (Options);
3400 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3401 "public enum Test1 {{{0}" +
3404 "}}{0}", NewLine), code);
3408 public override void PropertyOverloadsTest3 ()
3410 string code = GeneratePropertyOverloads3 (Options);
3411 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3412 "public enum Test1 {{{0}" +
3415 "}}{0}", NewLine), code);
3419 public override void PropertyPrivateImplementationType ()
3421 string code = GeneratePropertyPrivateImplementationType (Options);
3422 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3423 "public enum Test1 {{{0}" +
3425 "}}{0}", NewLine), code);
3429 public override void PropertyImplementationTypeOrder ()
3431 string code = GeneratePropertyImplementationTypeOrder (Options);
3432 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3433 "public enum Test1 {{{0}" +
3435 "}}{0}", NewLine), code);
3439 public override void PropertyNewSlotTest ()
3441 string code = GeneratePropertyMembersType (MemberAttributes.Private |
3442 MemberAttributes.New, true, true, Options);
3443 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3444 "public enum Test1 {{{0}" +
3446 "}}{0}", NewLine), code);
3450 public override void MethodMembersTypeTest1 ()
3452 string code = GenerateMethodMembersType1 (Options);
3453 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3454 "public enum Test1 {{{0}" +
3456 "}}{0}", NewLine), code);
3460 public override void MethodMembersTypeTest2 ()
3462 string code = GenerateMethodMembersType2 (Options);
3463 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3464 "public enum Test1 {{{0}" +
3466 "}}{0}", NewLine), code);
3470 public override void MethodMembersTypeTest3 ()
3472 string code = GenerateMethodMembersType3 (Options);
3473 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3474 "public enum Test1 {{{0}" +
3476 "}}{0}", NewLine), code);
3480 public override void MethodImplementationTypes ()
3482 string code = GenerateMethodImplementationTypes (Options);
3483 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3484 "public enum Test1 {{{0}" +
3486 "}}{0}", NewLine), code);
3490 public override void MethodOverloadsTest1 ()
3492 string code = GenerateMethodOverloads1 (Options);
3493 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3494 "public enum Test1 {{{0}" +
3496 "}}{0}", NewLine), code);
3500 public override void MethodOverloadsTest2 ()
3502 string code = GenerateMethodOverloads2 (Options);
3503 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3504 "public enum Test1 {{{0}" +
3507 "}}{0}", NewLine), code);
3511 public override void MethodOverloadsTest3 ()
3513 string code = GenerateMethodOverloads3 (Options);
3514 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3515 "public enum Test1 {{{0}" +
3518 "}}{0}", NewLine), code);
3522 public override void MethodPrivateImplementationType ()
3524 string code = GenerateMethodPrivateImplementationType (Options);
3525 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3526 "public enum Test1 {{{0}" +
3528 "}}{0}", NewLine), code);
3532 public override void MethodImplementationTypeOrder ()
3534 string code = GenerateMethodImplementationTypeOrder (Options);
3535 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3536 "public enum Test1 {{{0}" +
3538 "}}{0}", NewLine), code);
3542 public override void MethodNewSlotTest ()
3544 string code = GenerateMethodNewSlot (Options);
3545 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3546 "public enum Test1 {{{0}" +
3548 "}}{0}", NewLine), code);
3552 public override void MethodReturnTypeAttributes ()
3554 string code = GenerateMethodReturnTypeAttributes (Options);
3555 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3556 "public enum Test1 {{{0}" +
3558 "}}{0}", NewLine), code);
3562 public override void ConstructorAttributesTest ()
3564 string code = GenerateConstructorAttributes (Options);
3565 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3566 "public enum Test1 {{{0}" +
3568 "}}{0}", NewLine), code);
3572 public void ConstructorAttributesTest_C ()
3574 CodeGeneratorOptions options = new CodeGeneratorOptions ();
3575 options.BracingStyle = "C";
3577 string code = GenerateConstructorAttributes (options);
3578 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3579 "public enum Test1{0}" +
3582 "}}{0}", NewLine), code);
3586 public override void ConstructorParametersTest ()
3588 string code = GenerateConstructorParameters (Options);
3589 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3590 "public enum Test1 {{{0}" +
3592 "}}{0}", NewLine), code);
3596 public override void ConstructorParameterAttributesTest ()
3598 string code = GenerateConstructorParameterAttributes (Options);
3599 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3600 "public enum Test1 {{{0}" +
3602 "}}{0}", NewLine), code);
3606 public override void BaseConstructorSingleArg ()
3608 string code = GenerateBaseConstructor (false, Options);
3609 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3610 "public enum Test1 {{{0}" +
3612 "}}{0}", NewLine), code);
3616 public override void BaseConstructorMultipleArgs ()
3618 string code = GenerateBaseConstructor (true, Options);
3619 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3620 "public enum Test1 {{{0}" +
3622 "}}{0}", NewLine), code);
3626 public override void ChainedConstructorSingleArg ()
3628 string code = GenerateChainedConstructor (false, Options);
3629 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3630 "public enum Test1 {{{0}" +
3632 "}}{0}", NewLine), code);
3636 public override void ChainedConstructorMultipleArgs ()
3638 string code = GenerateChainedConstructor (true, Options);
3639 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3640 "public enum Test1 {{{0}" +
3642 "}}{0}", NewLine), code);
3646 public override void TypeConstructorTest ()
3648 string code = GenerateTypeConstructor (Options);
3649 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3650 "public enum Test1 {{{0}" +
3652 "}}{0}", NewLine), code);
3656 public void TypeConstructorTest_C ()
3658 CodeGeneratorOptions options = new CodeGeneratorOptions ();
3659 options.BracingStyle = "C";
3661 string code = GenerateTypeConstructor (options);
3662 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3663 "public enum Test1{0}" +
3666 "}}{0}", NewLine), code);
3670 public override void EntryPointMethodTest ()
3672 string code = GenerateEntryPointMethod (Options);
3673 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3674 "public enum Test1 {{{0}" +
3678 " public static int Main() {{{0}" +
3680 " public static void Main() {{{0}" +
3682 " Test.InnerType x;{0}" +
3684 "}}{0}", NewLine), code);
3687 #endregion Override implementation of CodeGeneratorFromTypeTestBase