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
,
113 "internal abstract class Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
114 "}}{0}", NewLine
), code
);
118 public override void AttributesAndTypeTest ()
120 string code
= GenerateAttributesAndType (Options
);
121 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
124 "public class Test1 {{{0}" +
125 "}}{0}", NewLine
), code
);
129 public override void EventMembersTypeTest1 ()
131 string code
= GenerateEventMembersType1 (Options
);
132 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
133 "public class Test1 {{{0}" +
137 " private event void ;{0}" +
138 "}}{0}", NewLine
), code
);
142 public override void EventMembersTypeTest2 ()
144 string code
= GenerateEventMembersType2 (Options
);
145 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
146 "public class Test1 {{{0}" +
148 " public event int Click;{0}" +
149 "}}{0}", NewLine
), code
);
153 public override void EventImplementationTypes ()
155 string code
= GenerateEventImplementationTypes (Options
);
156 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
157 "public class Test1 {{{0}" +
159 " internal event int Click;{0}" +
160 "}}{0}", NewLine
), code
);
164 /// Ensure no access modifiers are output if PrivateImplementationType
168 public override void EventPrivateImplementationType ()
170 string code
= GenerateEventPrivateImplementationType (Options
);
171 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
172 "public class Test1 {{{0}" +
174 " event int System.Int32.Click;{0}" +
175 "}}{0}", NewLine
), code
);
179 /// If both ImplementationTypes and PrivateImplementationType are set,
180 /// then only ImplementationTypes are output.
183 public override void EventImplementationTypeOrder ()
185 string code
= GenerateEventImplementationTypeOrder (Options
);
186 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
187 "public class Test1 {{{0}" +
189 " event int System.Int32.Click;{0}" +
190 "}}{0}", NewLine
), code
);
194 public override void FieldMembersAttributesTest ()
196 string code
= GenerateFieldMembersAttributes (Options
);
197 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
198 "public class Test1 {{{0}" +
202 " private void ;{0}" +
203 "}}{0}", NewLine
), code
);
207 public override void FieldMembersTypeTest ()
209 string code
= GenerateFieldMembersType (MemberAttributes
.Public
, Options
);
210 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
211 "public class Test1 {{{0}" +
213 " public int Name = 2;{0}" +
214 "}}{0}", NewLine
), code
);
218 public override void FieldNewSlotTest ()
220 string code
= GenerateFieldMembersType (MemberAttributes
.Assembly
|
221 MemberAttributes
.New
, Options
);
222 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
223 "public class Test1 {{{0}" +
225 " internal new int Name = 2;{0}" +
226 "}}{0}", NewLine
), code
);
230 public void AbstractPropertyTest ()
232 string code
= GenerateAbstractProperty (Options
);
233 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
234 "public abstract class Test1 {{{0}" +
236 " public abstract string Name {{{0}" +
240 "}}{0}", NewLine
), code
);
244 public void StaticPropertyTest ()
246 string code
= GenerateStaticProperty (Options
);
247 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
248 "public class Test1 {{{0}" +
250 " public static string Name {{{0}" +
254 "}}{0}", NewLine
), code
);
258 public override void PropertyMembersTypeTest1 ()
260 string code
= GeneratePropertyMembersAttributes (Options
);
261 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
262 "public class Test1 {{{0}" +
266 " private void {{{0}" +
268 "}}{0}", NewLine
), code
);
272 public void PropertyMembersTypeTest1_C ()
274 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
275 options
.BracingStyle
= "C";
277 string code
= GeneratePropertyMembersAttributes (options
);
278 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
279 "public class Test1{0}" +
284 " private void {0}" +
287 "}}{0}", NewLine
), code
);
291 public override void PropertyMembersTypeTest2 ()
293 string code
= GeneratePropertyMembersType (MemberAttributes
.Public
,
294 false, false, Options
);
295 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
296 "public class Test1 {{{0}" +
298 " public virtual int Name {{{0}" +
300 "}}{0}", NewLine
), code
);
304 public override void PropertyMembersTypeGetOnly ()
306 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
307 true, false, Options
);
308 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
309 "public class Test1 {{{0}" +
311 " protected virtual int Name {{{0}" +
315 "}}{0}", NewLine
), code
);
319 public override void PropertyMembersTypeSetOnly ()
321 string code
= GeneratePropertyMembersType (MemberAttributes
.Assembly
,
322 false, true, Options
);
323 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
324 "public class Test1 {{{0}" +
326 " internal virtual int Name {{{0}" +
330 "}}{0}", NewLine
), code
);
334 public override void PropertyMembersTypeGetSet ()
336 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
337 true, true, Options
);
338 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
339 "public class Test1 {{{0}" +
341 " protected virtual int Name {{{0}" +
347 "}}{0}", NewLine
), code
);
351 public void PropertyMembersTypeGetSet_C ()
353 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
354 options
.BracingStyle
= "C";
356 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
357 true, true, options
);
358 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
359 "public class Test1{0}" +
362 " protected virtual int Name{0}" +
371 "}}{0}", NewLine
), code
);
375 public override void PropertyMembersTypeFamilyOrAssembly ()
377 string code
= GeneratePropertyMembersType (MemberAttributes
.FamilyOrAssembly
,
378 false, false, Options
);
379 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
380 "public class Test1 {{{0}" +
382 " protected internal int Name {{{0}" +
384 "}}{0}", NewLine
), code
);
388 public override void PropertyMembersTypeAssembly ()
390 string code
= GeneratePropertyMembersType (MemberAttributes
.Assembly
,
391 false, false, Options
);
392 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
393 "public class Test1 {{{0}" +
395 " internal virtual int Name {{{0}" +
397 "}}{0}", NewLine
), code
);
401 /// Apparently VB.NET CodeDOM also allows properties that aren't indexers
402 /// to have parameters.
405 public override void PropertyParametersTest ()
407 string code
= GeneratePropertyParameters (Options
);
408 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
409 "public class Test1 {{{0}" +
411 " public virtual int Name {{{0}" +
413 "}}{0}", NewLine
), code
);
417 public override void PropertyIndexerTest1 ()
419 string code
= GeneratePropertyIndexer (MemberAttributes
.Public
,
420 false, false, true, Options
);
421 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
422 "public class Test1 {{{0}" +
424 " public virtual int this[object value1, ref int value2] {{{0}" +
426 "}}{0}", NewLine
), code
);
430 public override void PropertyIndexerTest2 ()
432 string code
= GeneratePropertyIndexer (MemberAttributes
.Public
,
433 false, false, false, Options
);
434 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
435 "public class Test1 {{{0}" +
437 " public virtual int iTem {{{0}" +
439 "}}{0}", NewLine
), code
);
443 public override void PropertyIndexerGetOnly ()
445 string code
= GeneratePropertyIndexer (MemberAttributes
.Family
,
446 true, false, true, Options
);
447 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
448 "public class Test1 {{{0}" +
450 " protected virtual int this[object value1, ref int value2] {{{0}" +
454 "}}{0}", NewLine
), code
);
458 public override void PropertyIndexerSetOnly ()
460 string code
= GeneratePropertyIndexer (MemberAttributes
.Family
,
461 false, true, true, Options
);
462 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
463 "public class Test1 {{{0}" +
465 " protected virtual int this[object value1, ref int value2] {{{0}" +
469 "}}{0}", NewLine
), code
);
473 public override void PropertyImplementationTypes ()
475 string code
= GeneratePropertyImplementationTypes (Options
);
476 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
477 "public class Test1 {{{0}" +
479 " public virtual int Name {{{0}" +
481 "}}{0}", NewLine
), code
);
485 /// Ensure that Overloads keyword is output for a property which has
486 /// explicitly been marked as Overloaded.
489 public override void PropertyOverloadsTest1 ()
491 string code
= GeneratePropertyOverloads1 (Options
);
492 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
493 "public class Test1 {{{0}" +
495 " protected virtual int Name {{{0}" +
497 "}}{0}", NewLine
), code
);
501 /// Ensure that Overloads keyword is output if multiple properties with
502 /// the same name are defined.
505 public override void PropertyOverloadsTest2 ()
507 string code
= GeneratePropertyOverloads2 (Options
);
508 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
509 "public class Test1 {{{0}" +
511 " public virtual int Name {{{0}" +
514 " private int Name {{{0}" +
516 "}}{0}", NewLine
), code
);
520 /// Ensure that a property with a PrivateImplementationType and with
521 /// the same name does not qualify as an overload.
524 public override void PropertyOverloadsTest3 ()
526 string code
= GeneratePropertyOverloads3 (Options
);
527 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
528 "public class Test1 {{{0}" +
530 " public virtual int Name {{{0}" +
533 " int System.Int32.Name {{{0}" +
535 "}}{0}", NewLine
), code
);
539 /// Ensure no access modifiers are output if PrivateImplementationType
540 /// is set. Default keyword is also not output in this case.
543 public override void PropertyPrivateImplementationType ()
545 string code
= GeneratePropertyPrivateImplementationType (Options
);
546 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
547 "public class Test1 {{{0}" +
549 " int System.Int32.this[object value1] {{{0}" +
551 "}}{0}", NewLine
), code
);
555 /// If both ImplementationTypes and PrivateImplementationType are set,
556 /// then only ImplementationTypes are output.
559 public override void PropertyImplementationTypeOrder ()
561 string code
= GeneratePropertyImplementationTypeOrder (Options
);
562 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
563 "public class Test1 {{{0}" +
565 " int System.Int32.this[object value1] {{{0}" +
567 "}}{0}", NewLine
), code
);
571 public override void PropertyNewSlotTest ()
573 string code
= GeneratePropertyMembersType (MemberAttributes
.Private
|
574 MemberAttributes
.New
, true, true, Options
);
575 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
576 "public class Test1 {{{0}" +
578 " private new int Name {{{0}" +
584 "}}{0}", NewLine
), code
);
588 public override void MethodMembersTypeTest1 ()
590 string code
= GenerateMethodMembersType1 (Options
);
591 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
592 "public class Test1 {{{0}" +
596 " private void () {{{0}" +
598 "}}{0}", NewLine
), code
);
602 public void MethodMembersTypeTest1_C ()
604 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
605 options
.BracingStyle
= "C";
607 string code
= GenerateMethodMembersType1 (options
);
608 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
609 "public class Test1{0}" +
614 " private void (){0}" +
617 "}}{0}", NewLine
), code
);
621 public override void MethodMembersTypeTest2 ()
623 string code
= GenerateMethodMembersType2 (Options
);
624 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
625 "public class Test1 {{{0}" +
627 " public virtual int Something(object value1, object value2, out int index, ref int count) {{{0}" +
629 "}}{0}", NewLine
), code
);
633 public override void MethodMembersTypeTest3 ()
635 string code
= GenerateMethodMembersType3 (Options
);
636 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
637 "public class Test1 {{{0}" +
639 " public virtual int Something([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int ) {{{0}" +
641 "}}{0}", NewLine
), code
);
645 public override void MethodImplementationTypes ()
647 string code
= GenerateMethodImplementationTypes (Options
);
648 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
649 "public class Test1 {{{0}" +
651 " internal virtual int Execute() {{{0}" +
653 "}}{0}", NewLine
), code
);
657 public override void MethodOverloadsTest1 ()
659 string code
= GenerateMethodOverloads1 (Options
);
660 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
661 "public class Test1 {{{0}" +
663 " internal virtual int Execute() {{{0}" +
665 "}}{0}", NewLine
), code
);
669 public override void MethodOverloadsTest2 ()
671 string code
= GenerateMethodOverloads2 (Options
);
672 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
673 "public class Test1 {{{0}" +
675 " public virtual void Execute() {{{0}" +
678 " private int Execute(object value1) {{{0}" +
680 "}}{0}", NewLine
), code
);
684 /// Ensure that a method with a PrivateImplementationType and with
685 /// the same name does not qualify as an overload.
688 public override void MethodOverloadsTest3 ()
690 string code
= GenerateMethodOverloads3 (Options
);
691 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
692 "public class Test1 {{{0}" +
694 " public virtual void Execute() {{{0}" +
697 " int System.Int32.Execute(object value1) {{{0}" +
699 "}}{0}", NewLine
), code
);
703 /// Ensure no access modifiers are output if PrivateImplementationType
707 public override void MethodPrivateImplementationType ()
709 string code
= GenerateMethodPrivateImplementationType (Options
);
710 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
711 "public class Test1 {{{0}" +
713 " int System.Int32.Execute(object value1) {{{0}" +
715 "}}{0}", NewLine
), code
);
719 /// If both ImplementationTypes and PrivateImplementationType are set,
720 /// then only ImplementationTypes are output.
723 public override void MethodImplementationTypeOrder ()
725 string code
= GenerateMethodImplementationTypeOrder (Options
);
726 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
727 "public class Test1 {{{0}" +
729 " int System.Int32.Execute(object value1) {{{0}" +
731 "}}{0}", NewLine
), code
);
735 public override void MethodParamArrayAttribute ()
737 string code
= GenerateMethodParamArrayAttribute (Options
);
738 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
739 "public class Test1 {{{0}" +
741 " public virtual int Something([A()] [B()] params out object value, [C()] ref int ) {{{0}" +
743 "}}{0}", NewLine
), code
);
747 public override void MethodReturnTypeAttributes ()
749 string code
= GenerateMethodReturnTypeAttributes (Options
);
750 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
751 "public class Test1 {{{0}" +
756 " [return: C(A1=false, A2=true)]{0}" +
757 " [return: D()]{0}" +
758 " return: params{0}" +
759 " public virtual int Execute() {{{0}" +
761 "}}{0}", NewLine
), code
);
765 public override void MethodNewSlotTest ()
767 string code
= GenerateMethodNewSlot (Options
);
768 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
769 "public class Test1 {{{0}" +
771 " public new virtual int Execute() {{{0}" +
773 "}}{0}", NewLine
), code
);
777 public override void ConstructorAttributesTest ()
779 string code
= GenerateConstructorAttributes (Options
);
780 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
781 "public class Test1 {{{0}" +
785 " private Test1() {{{0}" +
787 "}}{0}", NewLine
), code
);
791 public void ConstructorAttributesTest_C ()
793 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
794 options
.BracingStyle
= "C";
796 string code
= GenerateConstructorAttributes (options
);
797 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
798 "public class Test1{0}" +
803 " private Test1(){0}" +
806 "}}{0}", NewLine
), code
);
810 public override void ConstructorParametersTest ()
812 string code
= GenerateConstructorParameters (Options
);
813 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
814 "public class Test1 {{{0}" +
816 " public Test1(object value1, object value2, out int index, ref int count) {{{0}" +
818 "}}{0}", NewLine
), code
);
822 public override void ConstructorParameterAttributesTest ()
824 string code
= GenerateConstructorParameterAttributes (Options
);
825 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
826 "public class Test1 {{{0}" +
828 " private Test1([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int index) {{{0}" +
830 "}}{0}", NewLine
), code
);
834 public override void BaseConstructorSingleArg ()
836 string code
= GenerateBaseConstructor (false, Options
);
837 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
838 "public class Test1 {{{0}" +
840 " protected Test1(object value1, out int value2) : {0}" +
841 " base(value1) {{{0}" +
843 "}}{0}", NewLine
), code
);
847 public override void BaseConstructorMultipleArgs ()
849 string code
= GenerateBaseConstructor (true, Options
);
850 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
851 "public class Test1 {{{0}" +
853 " protected Test1(object value1, out int value2) : {0}" +
854 " base(value1, value2) {{{0}" +
856 "}}{0}", NewLine
), code
);
860 public override void ChainedConstructorSingleArg ()
862 string code
= GenerateChainedConstructor (false, Options
);
863 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
864 "public class Test1 {{{0}" +
866 " public Test1(object value1, out int value2) : {0}" +
867 " base(value3) : {0}" +
868 " this(value1) {{{0}" +
870 "}}{0}", NewLine
), code
);
874 public override void ChainedConstructorMultipleArgs ()
876 string code
= GenerateChainedConstructor (true, Options
);
877 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
878 "public class Test1 {{{0}" +
880 " public Test1(object value1, out int value2) : {0}" +
881 " base(value3) : {0}" +
882 " this(value1, value2) {{{0}" +
884 "}}{0}", NewLine
), code
);
888 public override void TypeConstructorTest ()
890 string code
= GenerateTypeConstructor (Options
);
891 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
892 "public class Test1 {{{0}" +
896 " static Test1() {{{0}" +
898 "}}{0}", NewLine
), code
);
902 public void TypeConstructorTest_C ()
904 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
905 options
.BracingStyle
= "C";
907 string code
= GenerateTypeConstructor (options
);
908 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
909 "public class Test1{0}" +
914 " static Test1(){0}" +
917 "}}{0}", NewLine
), code
);
921 public override void EntryPointMethodTest ()
923 string code
= GenerateEntryPointMethod (Options
);
924 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
925 "public class Test1 {{{0}" +
928 " public static int Main() {{{0}" +
929 " Test.InnerType x;{0}" +
931 "}}{0}", NewLine
), code
);
934 #endregion Override implementation of CodeGeneratorFromTypeTestBase
937 public void EscapePropertyName ()
939 CodeNamespace cns
= new CodeNamespace ();
940 CodeTypeDeclaration ctd
= new CodeTypeDeclaration ("TestType");
941 CodeMemberProperty f
= new CodeMemberProperty ();
942 f
.Type
= new CodeTypeReference (typeof (string));
944 f
.GetStatements
.Add (new CodeMethodReturnStatement (
945 new CodePrimitiveExpression (null)));
948 CSharpCodeProvider p
= new CSharpCodeProvider ();
949 StringWriter sw
= new StringWriter ();
950 p
.CreateGenerator ().GenerateCodeFromNamespace (cns
, sw
, null);
951 Assert
.IsTrue (sw
.ToString ().IndexOf ("@default") > 0);
955 public void GenericCodeTypeReferencesTest ()
957 string code
= GenerateGenericCodeTypeReferences (Options
);
958 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
959 "public class Test {{{0}" +
961 " private System.Nullable<int> Foo;{0}" +
963 " private System.Nullable<> Bar;{0}" +
964 "}}{0}", NewLine
), code
);
968 public override void PartialTypeTest ()
970 string code
= GeneratePartialType (Options
);
971 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
972 "public partial class Test1 {{{0}" +
973 "}}{0}", NewLine
), code
);
978 public class CodeGeneratorFromTypeTest_Delegate
: CodeGeneratorFromTypeTestBase
980 private CodeTypeDeclaration _typeDeclaration
;
981 private ICodeGenerator _codeGenerator
;
983 #region Override implementation of CodeGeneratorTestBase
985 protected override ICodeGenerator CodeGenerator
987 get { return _codeGenerator; }
991 public override void SetUp ()
994 _typeDeclaration
= new CodeTypeDelegate ();
996 CodeDomProvider provider
= new CSharpCodeProvider ();
997 _codeGenerator
= provider
.CreateGenerator ();
1000 #endregion Override implementation of CodeGeneratorTestBase
1002 #region Override implementation of CodeGeneratorFromTypeTestBase
1004 protected override CodeTypeDeclaration TypeDeclaration
1006 get { return _typeDeclaration; }
1010 public override void DefaultTypeTest ()
1012 string code
= GenerateDefaultType (Options
);
1013 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1014 "public delegate void ();{0}", NewLine
), code
);
1018 [ExpectedException (typeof (NullReferenceException
))]
1019 public override void NullTypeTest ()
1021 GenerateNullType (Options
);
1025 public override void SimpleTypeTest ()
1027 string code
= GenerateSimpleType (Options
);
1028 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1029 "public delegate void Test1();{0}", NewLine
), code
);
1033 public override void DerivedTypeTest ()
1035 string code
= GenerateDerivedType (Options
);
1036 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1037 "delegate void Test1();{0}", NewLine
), code
);
1041 public override void AttributesAndTypeTest ()
1043 CodeTypeDelegate delegateDecl
= new CodeTypeDelegate ();
1044 delegateDecl
.ReturnType
= new CodeTypeReference (typeof (int));
1046 _typeDeclaration
= delegateDecl
;
1048 string code
= GenerateAttributesAndType (Options
);
1049 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1052 "public delegate int Test1();{0}", NewLine
), code
);
1056 public override void EventMembersTypeTest1 ()
1058 string code
= GenerateEventMembersType1 (Options
);
1059 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1060 "public delegate void Test1();{0}{0}", NewLine
), code
);
1064 public override void EventMembersTypeTest2 ()
1066 string code
= GenerateEventMembersType2 (Options
);
1067 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1068 "public delegate void Test1();{0}{0}", NewLine
), code
);
1072 public override void EventImplementationTypes ()
1074 string code
= GenerateEventImplementationTypes (Options
);
1075 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1076 "public delegate void Test1();{0}{0}", NewLine
), code
);
1080 /// Ensure no access modifiers are output if PrivateImplementationType
1084 public override void EventPrivateImplementationType ()
1086 string code
= GenerateEventPrivateImplementationType (Options
);
1087 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1088 "public delegate void Test1();{0}{0}", NewLine
), code
);
1092 /// If both ImplementationTypes and PrivateImplementationType are set,
1093 /// then only ImplementationTypes are output.
1096 public override void EventImplementationTypeOrder ()
1098 string code
= GenerateEventImplementationTypeOrder (Options
);
1099 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1100 "public delegate void Test1();{0}{0}", NewLine
), code
);
1104 public override void FieldMembersAttributesTest ()
1106 string code
= GenerateFieldMembersAttributes (Options
);
1107 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1108 "public delegate void Test1();{0}{0}", NewLine
), code
);
1112 public override void FieldMembersTypeTest ()
1114 string code
= GenerateFieldMembersType (MemberAttributes
.Public
, Options
);
1115 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1116 "public delegate void Test1();{0}{0}", NewLine
), code
);
1120 public override void FieldNewSlotTest ()
1122 string code
= GenerateFieldMembersType (MemberAttributes
.Assembly
|
1123 MemberAttributes
.New
, Options
);
1124 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1125 "public delegate void Test1();{0}{0}", NewLine
), code
);
1129 public override void PropertyMembersTypeTest1 ()
1131 string code
= GeneratePropertyMembersAttributes (Options
);
1132 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1133 "public delegate void Test1();{0}{0}", NewLine
), code
);
1137 public override void PropertyMembersTypeTest2 ()
1139 string code
= GeneratePropertyMembersType (MemberAttributes
.Public
,
1140 false, false, Options
);
1141 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1142 "public delegate void Test1();{0}{0}", NewLine
), code
);
1146 public override void PropertyMembersTypeGetOnly ()
1148 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
1149 true, false, Options
);
1150 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1151 "public delegate void Test1();{0}{0}", NewLine
), code
);
1155 public override void PropertyMembersTypeSetOnly ()
1157 string code
= GeneratePropertyMembersType (MemberAttributes
.Assembly
,
1158 false, true, Options
);
1159 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1160 "public delegate void Test1();{0}{0}", NewLine
), code
);
1164 public override void PropertyMembersTypeGetSet ()
1166 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
1167 true, true, Options
);
1168 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1169 "public delegate void Test1();{0}{0}", NewLine
), code
);
1173 public override void PropertyMembersTypeFamilyOrAssembly ()
1175 string code
= GeneratePropertyMembersType (MemberAttributes
.FamilyOrAssembly
,
1176 false, false, Options
);
1177 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1178 "public delegate void Test1();{0}{0}", NewLine
), code
);
1182 public override void PropertyMembersTypeAssembly ()
1184 string code
= GeneratePropertyMembersType (MemberAttributes
.Assembly
,
1185 false, false, Options
);
1186 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1187 "public delegate void Test1();{0}{0}", NewLine
), code
);
1191 public override void PropertyParametersTest ()
1193 string code
= GeneratePropertyParameters (Options
);
1194 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1195 "public delegate void Test1();{0}{0}", NewLine
), code
);
1199 public override void PropertyIndexerTest1 ()
1201 string code
= GeneratePropertyIndexer (MemberAttributes
.Public
,
1202 false, false, true, Options
);
1203 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1204 "public delegate void Test1();{0}{0}", NewLine
), code
);
1208 public override void PropertyIndexerTest2 ()
1210 string code
= GeneratePropertyIndexer (MemberAttributes
.Public
,
1211 false, false, false, Options
);
1212 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1213 "public delegate void Test1();{0}{0}", NewLine
), code
);
1217 public override void PropertyIndexerGetOnly ()
1219 string code
= GeneratePropertyIndexer (MemberAttributes
.Family
,
1220 true, false, true, Options
);
1221 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1222 "public delegate void Test1();{0}{0}", NewLine
), code
);
1226 public override void PropertyIndexerSetOnly ()
1228 string code
= GeneratePropertyIndexer (MemberAttributes
.Family
,
1229 false, true, true, Options
);
1230 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1231 "public delegate void Test1();{0}{0}", NewLine
), code
);
1235 public override void PropertyImplementationTypes ()
1237 string code
= GeneratePropertyImplementationTypes (Options
);
1238 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1239 "public delegate void Test1();{0}{0}", NewLine
), code
);
1243 public override void PropertyOverloadsTest1 ()
1245 string code
= GeneratePropertyOverloads1 (Options
);
1246 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1247 "public delegate void Test1();{0}{0}", NewLine
), code
);
1251 public override void PropertyOverloadsTest2 ()
1253 string code
= GeneratePropertyOverloads2 (Options
);
1254 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1255 "public delegate void Test1();{0}{0}{0}", NewLine
), code
);
1259 public override void PropertyOverloadsTest3 ()
1261 string code
= GeneratePropertyOverloads3 (Options
);
1262 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1263 "public delegate void Test1();{0}{0}{0}", NewLine
), code
);
1267 public override void PropertyPrivateImplementationType ()
1269 string code
= GeneratePropertyPrivateImplementationType (Options
);
1270 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1271 "public delegate void Test1();{0}{0}", NewLine
), code
);
1275 public override void PropertyImplementationTypeOrder ()
1277 string code
= GeneratePropertyImplementationTypeOrder (Options
);
1278 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1279 "public delegate void Test1();{0}{0}", NewLine
), code
);
1283 public override void PropertyNewSlotTest ()
1285 string code
= GeneratePropertyMembersType (MemberAttributes
.Private
|
1286 MemberAttributes
.New
, true, true, Options
);
1287 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1288 "public delegate void Test1();{0}{0}", NewLine
), code
);
1292 public override void MethodMembersTypeTest1 ()
1294 string code
= GenerateMethodMembersType1 (Options
);
1295 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1296 "public delegate void Test1();{0}{0}", NewLine
), code
);
1300 public override void MethodMembersTypeTest2 ()
1302 string code
= GenerateMethodMembersType2 (Options
);
1303 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1304 "public delegate void Test1();{0}{0}", NewLine
), code
);
1308 public override void MethodMembersTypeTest3 ()
1310 string code
= GenerateMethodMembersType3 (Options
);
1311 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1312 "public delegate void Test1();{0}{0}", NewLine
), code
);
1316 public override void MethodImplementationTypes ()
1318 string code
= GenerateMethodImplementationTypes (Options
);
1319 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1320 "public delegate void Test1();{0}{0}", NewLine
), code
);
1324 public override void MethodOverloadsTest1 ()
1326 string code
= GenerateMethodOverloads1 (Options
);
1327 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1328 "public delegate void Test1();{0}{0}", NewLine
), code
);
1332 public override void MethodOverloadsTest2 ()
1334 string code
= GenerateMethodOverloads2 (Options
);
1335 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1336 "public delegate void Test1();{0}{0}{0}", NewLine
), code
);
1340 public override void MethodOverloadsTest3 ()
1342 string code
= GenerateMethodOverloads3 (Options
);
1343 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1344 "public delegate void Test1();{0}{0}{0}", NewLine
), code
);
1348 public override void MethodPrivateImplementationType ()
1350 string code
= GenerateMethodPrivateImplementationType (Options
);
1351 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1352 "public delegate void Test1();{0}{0}", NewLine
), code
);
1356 public override void MethodImplementationTypeOrder ()
1358 string code
= GenerateMethodImplementationTypeOrder (Options
);
1359 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1360 "public delegate void Test1();{0}{0}", NewLine
), code
);
1364 public override void MethodParamArrayAttribute ()
1366 string code
= GenerateMethodParamArrayAttribute (Options
);
1367 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1368 "public delegate void Test1();{0}{0}", NewLine
), code
);
1372 public override void MethodReturnTypeAttributes ()
1374 string code
= GenerateMethodReturnTypeAttributes (Options
);
1375 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1376 "public delegate void Test1();{0}{0}", NewLine
), code
);
1380 public override void MethodNewSlotTest ()
1382 string code
= GenerateMethodNewSlot (Options
);
1383 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1384 "public delegate void Test1();{0}{0}", NewLine
), code
);
1388 public override void ConstructorAttributesTest ()
1390 string code
= GenerateConstructorAttributes (Options
);
1391 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1392 "public delegate void Test1();{0}{0}", NewLine
), code
);
1396 public override void ConstructorParametersTest ()
1398 string code
= GenerateConstructorParameters (Options
);
1399 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1400 "public delegate void Test1();{0}{0}", NewLine
), code
);
1404 public override void ConstructorParameterAttributesTest ()
1406 string code
= GenerateConstructorParameterAttributes (Options
);
1407 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1408 "public delegate void Test1();{0}{0}", NewLine
), code
);
1412 public override void BaseConstructorSingleArg ()
1414 string code
= GenerateBaseConstructor (false, Options
);
1415 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1416 "public delegate void Test1();{0}{0}", NewLine
), code
);
1420 public override void BaseConstructorMultipleArgs ()
1422 string code
= GenerateBaseConstructor (true, Options
);
1423 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1424 "public delegate void Test1();{0}{0}", NewLine
), code
);
1428 public override void ChainedConstructorSingleArg ()
1430 string code
= GenerateChainedConstructor (false, Options
);
1431 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1432 "public delegate void Test1();{0}{0}", NewLine
), code
);
1436 public override void ChainedConstructorMultipleArgs ()
1438 string code
= GenerateChainedConstructor (true, Options
);
1439 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1440 "public delegate void Test1();{0}{0}", NewLine
), code
);
1444 public override void TypeConstructorTest ()
1446 string code
= GenerateTypeConstructor (Options
);
1447 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1448 "public delegate void Test1();{0}{0}", NewLine
), code
);
1452 public override void EntryPointMethodTest ()
1454 string code
= GenerateEntryPointMethod (Options
);
1455 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1456 "public delegate void Test1();{0}{0}" +
1458 "public static int Main() {{{0}" +
1459 " Test.InnerType x;{0}" +
1460 "}}{0}", NewLine
), code
);
1464 public override void PartialTypeTest ()
1466 string code
= GeneratePartialType (Options
);
1467 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1468 "public delegate void Test1();{0}"
1472 #endregion Override implementation of CodeGeneratorFromTypeTestBase
1476 public class CodeGeneratorFromTypeTest_Interface
: CodeGeneratorFromTypeTestBase
1478 private CodeTypeDeclaration _typeDeclaration
;
1479 private ICodeGenerator _codeGenerator
;
1481 #region Override implementation of CodeGeneratorTestBase
1483 protected override ICodeGenerator CodeGenerator
1485 get { return _codeGenerator; }
1489 public override void SetUp ()
1492 _typeDeclaration
= new CodeTypeDeclaration ();
1493 _typeDeclaration
.IsInterface
= true;
1495 CodeDomProvider provider
= new CSharpCodeProvider ();
1496 _codeGenerator
= provider
.CreateGenerator ();
1499 #endregion Override implementation of CodeGeneratorTestBase
1501 #region Override implementation of CodeGeneratorFromTypeTestBase
1503 protected override CodeTypeDeclaration TypeDeclaration
1505 get { return _typeDeclaration; }
1509 public override void DefaultTypeTest ()
1511 string code
= GenerateDefaultType (Options
);
1512 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1513 "public interface {{{0}" +
1514 "}}{0}", NewLine
), code
);
1518 public void DefaultTypeTest_C ()
1520 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
1521 options
.BracingStyle
= "C";
1523 string code
= GenerateDefaultType (options
);
1524 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1525 "public interface {0}" +
1527 "}}{0}", NewLine
), code
);
1531 [ExpectedException (typeof (NullReferenceException
))]
1532 public override void NullTypeTest ()
1534 GenerateNullType (Options
);
1538 public override void SimpleTypeTest ()
1540 string code
= GenerateSimpleType (Options
);
1541 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1542 "public interface Test1 {{{0}" +
1543 "}}{0}", NewLine
), code
);
1547 public void SimpleTypeTest_C ()
1549 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
1550 options
.BracingStyle
= "C";
1552 string code
= GenerateSimpleType (options
);
1553 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1554 "public interface Test1{0}" +
1556 "}}{0}", NewLine
), code
);
1560 public override void DerivedTypeTest ()
1562 string code
= GenerateDerivedType (Options
);
1563 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1564 "internal interface Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
1565 "}}{0}", NewLine
), code
);
1569 public override void AttributesAndTypeTest ()
1571 string code
= GenerateAttributesAndType (Options
);
1572 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1575 "public interface Test1 {{{0}" +
1576 "}}{0}", NewLine
), code
);
1580 public override void EventMembersTypeTest1 ()
1582 string code
= GenerateEventMembersType1 (Options
);
1583 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1584 "public interface Test1 {{{0}" +
1588 " private event void ;{0}" +
1589 "}}{0}", NewLine
), code
);
1593 public override void EventMembersTypeTest2 ()
1595 string code
= GenerateEventMembersType2 (Options
);
1596 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1597 "public interface Test1 {{{0}" +
1599 " public event int Click;{0}" +
1600 "}}{0}", NewLine
), code
);
1604 public override void EventImplementationTypes ()
1606 string code
= GenerateEventImplementationTypes (Options
);
1607 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1608 "public interface Test1 {{{0}" +
1610 " internal event int Click;{0}" +
1611 "}}{0}", NewLine
), code
);
1615 public override void EventPrivateImplementationType ()
1617 string code
= GenerateEventPrivateImplementationType (Options
);
1618 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1619 "public interface Test1 {{{0}" +
1621 " event int System.Int32.Click;{0}" +
1622 "}}{0}", NewLine
), code
);
1626 public override void EventImplementationTypeOrder ()
1628 string code
= GenerateEventImplementationTypeOrder (Options
);
1629 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1630 "public interface Test1 {{{0}" +
1632 " event int System.Int32.Click;{0}" +
1633 "}}{0}", NewLine
), code
);
1637 public override void FieldMembersAttributesTest ()
1639 string code
= GenerateFieldMembersAttributes (Options
);
1640 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1641 "public interface Test1 {{{0}" +
1643 "}}{0}", NewLine
), code
);
1647 public override void FieldMembersTypeTest ()
1649 string code
= GenerateFieldMembersType (MemberAttributes
.Public
, Options
);
1650 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1651 "public interface Test1 {{{0}" +
1653 "}}{0}", NewLine
), code
);
1657 public override void FieldNewSlotTest ()
1659 string code
= GenerateFieldMembersType (MemberAttributes
.Assembly
|
1660 MemberAttributes
.New
, Options
);
1661 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1662 "public interface Test1 {{{0}" +
1664 "}}{0}", NewLine
), code
);
1668 public override void PropertyMembersTypeTest1 ()
1670 string code
= GeneratePropertyMembersAttributes (Options
);
1671 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1672 "public interface Test1 {{{0}" +
1678 "}}{0}", NewLine
), code
);
1682 public override void PropertyMembersTypeTest2 ()
1684 string code
= GeneratePropertyMembersType (MemberAttributes
.Public
,
1685 false, false, Options
);
1686 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1687 "public interface Test1 {{{0}" +
1691 "}}{0}", NewLine
), code
);
1695 public override void PropertyMembersTypeGetOnly ()
1697 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
1698 true, false, Options
);
1699 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1700 "public interface Test1 {{{0}" +
1705 "}}{0}", NewLine
), code
);
1709 public override void PropertyMembersTypeSetOnly ()
1711 string code
= GeneratePropertyMembersType (MemberAttributes
.Assembly
,
1712 false, true, Options
);
1713 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1714 "public interface Test1 {{{0}" +
1719 "}}{0}", NewLine
), code
);
1723 public override void PropertyMembersTypeGetSet ()
1725 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
1726 true, true, Options
);
1727 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1728 "public interface Test1 {{{0}" +
1734 "}}{0}", NewLine
), code
);
1738 public void PropertyMembersTypeGetSet_C ()
1740 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
1741 options
.BracingStyle
= "C";
1743 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
1744 true, true, options
);
1745 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1746 "public interface Test1{0}" +
1754 "}}{0}", NewLine
), code
);
1758 public override void PropertyMembersTypeFamilyOrAssembly ()
1760 string code
= GeneratePropertyMembersType (MemberAttributes
.FamilyOrAssembly
,
1761 false, false, Options
);
1762 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1763 "public interface Test1 {{{0}" +
1767 "}}{0}", NewLine
), code
);
1771 public override void PropertyMembersTypeAssembly ()
1773 string code
= GeneratePropertyMembersType (MemberAttributes
.Assembly
,
1774 false, false, Options
);
1775 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1776 "public interface Test1 {{{0}" +
1780 "}}{0}", NewLine
), code
);
1784 public override void PropertyParametersTest ()
1786 string code
= GeneratePropertyParameters (Options
);
1787 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1788 "public interface Test1 {{{0}" +
1792 "}}{0}", NewLine
), code
);
1796 public override void PropertyIndexerTest1 ()
1798 string code
= GeneratePropertyIndexer (MemberAttributes
.Public
,
1799 false, false, true, Options
);
1800 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1801 "public interface Test1 {{{0}" +
1803 " int this[object value1, ref int value2] {{{0}" +
1805 "}}{0}", NewLine
), code
);
1809 public override void PropertyIndexerTest2 ()
1811 string code
= GeneratePropertyIndexer (MemberAttributes
.Public
,
1812 false, false, false, Options
);
1813 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1814 "public interface Test1 {{{0}" +
1818 "}}{0}", NewLine
), code
);
1822 public override void PropertyIndexerGetOnly ()
1824 string code
= GeneratePropertyIndexer (MemberAttributes
.Family
,
1825 true, false, true, Options
);
1826 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1827 "public interface Test1 {{{0}" +
1829 " int this[object value1, ref int value2] {{{0}" +
1832 "}}{0}", NewLine
), code
);
1836 public override void PropertyIndexerSetOnly ()
1838 string code
= GeneratePropertyIndexer (MemberAttributes
.Family
,
1839 false, true, true, Options
);
1840 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1841 "public interface Test1 {{{0}" +
1843 " int this[object value1, ref int value2] {{{0}" +
1846 "}}{0}", NewLine
), code
);
1850 public override void PropertyImplementationTypes ()
1852 string code
= GeneratePropertyImplementationTypes (Options
);
1853 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1854 "public interface Test1 {{{0}" +
1858 "}}{0}", NewLine
), code
);
1862 public override void PropertyOverloadsTest1 ()
1864 string code
= GeneratePropertyOverloads1 (Options
);
1865 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1866 "public interface Test1 {{{0}" +
1870 "}}{0}", NewLine
), code
);
1874 public override void PropertyOverloadsTest2 ()
1876 string code
= GeneratePropertyOverloads2 (Options
);
1877 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1878 "public interface Test1 {{{0}" +
1885 "}}{0}", NewLine
), code
);
1889 public override void PropertyOverloadsTest3 ()
1891 string code
= GeneratePropertyOverloads3 (Options
);
1892 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1893 "public interface Test1 {{{0}" +
1900 "}}{0}", NewLine
), code
);
1904 public override void PropertyPrivateImplementationType ()
1906 string code
= GeneratePropertyPrivateImplementationType (Options
);
1907 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1908 "public interface Test1 {{{0}" +
1910 " int this[object value1] {{{0}" +
1912 "}}{0}", NewLine
), code
);
1916 public override void PropertyImplementationTypeOrder ()
1918 string code
= GeneratePropertyImplementationTypeOrder (Options
);
1919 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1920 "public interface Test1 {{{0}" +
1922 " int this[object value1] {{{0}" +
1924 "}}{0}", NewLine
), code
);
1928 public override void PropertyNewSlotTest ()
1930 string code
= GeneratePropertyMembersType (MemberAttributes
.Private
|
1931 MemberAttributes
.New
, true, true, Options
);
1932 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1933 "public interface Test1 {{{0}" +
1935 " new int Name {{{0}" +
1939 "}}{0}", NewLine
), code
);
1943 public override void MethodMembersTypeTest1 ()
1945 string code
= GenerateMethodMembersType1 (Options
);
1946 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1947 "public interface Test1 {{{0}" +
1952 "}}{0}", NewLine
), code
);
1956 public void MethodMembersTypeTest1_C ()
1958 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
1959 options
.BracingStyle
= "C";
1961 string code
= GenerateMethodMembersType1 (options
);
1962 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1963 "public interface Test1{0}" +
1969 "}}{0}", NewLine
), code
);
1973 public override void MethodMembersTypeTest2 ()
1975 string code
= GenerateMethodMembersType2 (Options
);
1976 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1977 "public interface Test1 {{{0}" +
1979 " int Something(object value1, object value2, out int index, ref int count);{0}" +
1980 "}}{0}", NewLine
), code
);
1984 public override void MethodMembersTypeTest3 ()
1986 string code
= GenerateMethodMembersType3 (Options
);
1987 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1988 "public interface Test1 {{{0}" +
1990 " int Something([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int );{0}" +
1991 "}}{0}", NewLine
), code
);
1995 public override void MethodImplementationTypes ()
1997 string code
= GenerateMethodImplementationTypes (Options
);
1998 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
1999 "public interface Test1 {{{0}" +
2001 " int Execute();{0}" +
2002 "}}{0}", NewLine
), code
);
2006 public override void MethodOverloadsTest1 ()
2008 string code
= GenerateMethodOverloads1 (Options
);
2009 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2010 "public interface Test1 {{{0}" +
2012 " int Execute();{0}" +
2013 "}}{0}", NewLine
), code
);
2017 public override void MethodOverloadsTest2 ()
2019 string code
= GenerateMethodOverloads2 (Options
);
2020 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2021 "public interface Test1 {{{0}" +
2023 " void Execute();{0}" +
2025 " int Execute(object value1);{0}" +
2026 "}}{0}", NewLine
), code
);
2030 public override void MethodOverloadsTest3 ()
2032 string code
= GenerateMethodOverloads3 (Options
);
2033 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2034 "public interface Test1 {{{0}" +
2036 " void Execute();{0}" +
2038 " int System.Int32.Execute(object value1);{0}" +
2039 "}}{0}", NewLine
), code
);
2043 public override void MethodPrivateImplementationType ()
2045 string code
= GenerateMethodPrivateImplementationType (Options
);
2046 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2047 "public interface Test1 {{{0}" +
2049 " int System.Int32.Execute(object value1);{0}" +
2050 "}}{0}", NewLine
), code
);
2054 public override void MethodImplementationTypeOrder ()
2056 string code
= GenerateMethodImplementationTypeOrder (Options
);
2057 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2058 "public interface Test1 {{{0}" +
2060 " int System.Int32.Execute(object value1);{0}" +
2061 "}}{0}", NewLine
), code
);
2065 public override void MethodParamArrayAttribute ()
2067 string code
= GenerateMethodParamArrayAttribute (Options
);
2068 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2069 "public interface Test1 {{{0}" +
2071 " int Something([A()] [B()] params out object value, [C()] ref int );{0}" +
2072 "}}{0}", NewLine
), code
);
2076 public override void MethodReturnTypeAttributes ()
2078 string code
= GenerateMethodReturnTypeAttributes (Options
);
2079 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2080 "public interface Test1 {{{0}" +
2085 " [return: C(A1=false, A2=true)]{0}" +
2086 " [return: D()]{0}" +
2087 " return: params{0}" +
2088 " int Execute();{0}" +
2089 "}}{0}", NewLine
), code
);
2093 public override void MethodNewSlotTest ()
2095 string code
= GenerateMethodNewSlot (Options
);
2096 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2097 "public interface Test1 {{{0}" +
2099 " new int Execute();{0}" +
2100 "}}{0}", NewLine
), code
);
2104 public override void ConstructorAttributesTest ()
2106 string code
= GenerateConstructorAttributes (Options
);
2107 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2108 "public interface Test1 {{{0}" +
2110 "}}{0}", NewLine
), code
);
2114 public void ConstructorAttributesTest_C ()
2116 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
2117 options
.BracingStyle
= "C";
2119 string code
= GenerateConstructorAttributes (options
);
2120 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2121 "public interface Test1{0}" +
2124 "}}{0}", NewLine
), code
);
2128 public override void ConstructorParametersTest ()
2130 string code
= GenerateConstructorParameters (Options
);
2131 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2132 "public interface Test1 {{{0}" +
2134 "}}{0}", NewLine
), code
);
2138 public override void ConstructorParameterAttributesTest ()
2140 string code
= GenerateConstructorParameterAttributes (Options
);
2141 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2142 "public interface Test1 {{{0}" +
2144 "}}{0}", NewLine
), code
, "#1");
2148 public override void BaseConstructorSingleArg ()
2150 string code
= GenerateBaseConstructor (false, Options
);
2151 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2152 "public interface Test1 {{{0}" +
2154 "}}{0}", NewLine
), code
);
2158 public override void BaseConstructorMultipleArgs ()
2160 string code
= GenerateBaseConstructor (true, Options
);
2161 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2162 "public interface Test1 {{{0}" +
2164 "}}{0}", NewLine
), code
);
2168 public override void ChainedConstructorSingleArg ()
2170 string code
= GenerateChainedConstructor (false, Options
);
2171 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2172 "public interface Test1 {{{0}" +
2174 "}}{0}", NewLine
), code
);
2178 public override void ChainedConstructorMultipleArgs ()
2180 string code
= GenerateChainedConstructor (true, Options
);
2181 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2182 "public interface Test1 {{{0}" +
2184 "}}{0}", NewLine
), code
);
2188 public override void TypeConstructorTest ()
2190 string code
= GenerateTypeConstructor (Options
);
2191 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2192 "public interface Test1 {{{0}" +
2194 "}}{0}", NewLine
), code
);
2198 public void TypeConstructorTest_C ()
2200 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
2201 options
.BracingStyle
= "C";
2203 string code
= GenerateTypeConstructor (options
);
2204 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2205 "public interface Test1{0}" +
2208 "}}{0}", NewLine
), code
);
2212 public override void EntryPointMethodTest ()
2214 string code
= GenerateEntryPointMethod (Options
);
2215 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2216 "public interface Test1 {{{0}" +
2219 " public static int Main() {{{0}" +
2220 " Test.InnerType x;{0}" +
2222 "}}{0}", NewLine
), code
);
2226 public override void PartialTypeTest ()
2228 string code
= GeneratePartialType (Options
);
2229 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2230 "public partial interface Test1 {{{0}" +
2231 "}}{0}", NewLine
), code
);
2233 #endregion Override implementation of CodeGeneratorFromTypeTestBase
2237 public class CodeGeneratorFromTypeTest_Struct
: CodeGeneratorFromTypeTestBase
2239 private CodeTypeDeclaration _typeDeclaration
;
2240 private ICodeGenerator _codeGenerator
;
2242 #region Override implementation of CodeGeneratorTestBase
2244 protected override ICodeGenerator CodeGenerator
2246 get { return _codeGenerator; }
2250 public override void SetUp ()
2253 _typeDeclaration
= new CodeTypeDeclaration ();
2254 _typeDeclaration
.IsStruct
= true;
2256 CodeDomProvider provider
= new CSharpCodeProvider ();
2257 _codeGenerator
= provider
.CreateGenerator ();
2260 #endregion Override implementation of CodeGeneratorTestBase
2262 #region Override implementation of CodeGeneratorFromTypeTestBase
2264 protected override CodeTypeDeclaration TypeDeclaration
2266 get { return _typeDeclaration; }
2270 public override void DefaultTypeTest ()
2272 string code
= GenerateDefaultType (Options
);
2273 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2274 "public struct {{{0}" +
2275 "}}{0}", NewLine
), code
);
2279 public void DefaultTypeTest_C ()
2281 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
2282 options
.BracingStyle
= "C";
2284 string code
= GenerateDefaultType (options
);
2285 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2286 "public struct {0}" +
2288 "}}{0}", NewLine
), code
);
2292 [ExpectedException (typeof (NullReferenceException
))]
2293 public override void NullTypeTest ()
2295 GenerateNullType (Options
);
2299 public override void SimpleTypeTest ()
2301 string code
= GenerateSimpleType (Options
);
2302 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2303 "public struct Test1 {{{0}" +
2304 "}}{0}", NewLine
), code
);
2308 public void SimpleTypeTest_C ()
2310 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
2311 options
.BracingStyle
= "C";
2313 string code
= GenerateSimpleType (options
);
2314 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2315 "public struct Test1{0}" +
2317 "}}{0}", NewLine
), code
);
2321 public override void DerivedTypeTest ()
2323 string code
= GenerateDerivedType (Options
);
2324 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2325 "internal struct Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
2326 "}}{0}", NewLine
), code
);
2330 public override void AttributesAndTypeTest ()
2332 string code
= GenerateAttributesAndType (Options
);
2333 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2336 "public struct Test1 {{{0}" +
2337 "}}{0}", NewLine
), code
);
2341 public override void EventMembersTypeTest1 ()
2343 string code
= GenerateEventMembersType1 (Options
);
2344 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2345 "public struct Test1 {{{0}" +
2349 " private event void ;{0}" +
2350 "}}{0}", NewLine
), code
);
2354 public override void EventMembersTypeTest2 ()
2356 string code
= GenerateEventMembersType2 (Options
);
2357 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2358 "public struct Test1 {{{0}" +
2360 " public event int Click;{0}" +
2361 "}}{0}", NewLine
), code
);
2365 public override void EventImplementationTypes ()
2367 string code
= GenerateEventImplementationTypes (Options
);
2368 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2369 "public struct Test1 {{{0}" +
2371 " internal event int Click;{0}" +
2372 "}}{0}", NewLine
), code
);
2376 public override void EventPrivateImplementationType ()
2378 string code
= GenerateEventPrivateImplementationType (Options
);
2379 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2380 "public struct Test1 {{{0}" +
2382 " event int System.Int32.Click;{0}" +
2383 "}}{0}", NewLine
), code
);
2387 public override void EventImplementationTypeOrder ()
2389 string code
= GenerateEventImplementationTypeOrder (Options
);
2390 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2391 "public struct Test1 {{{0}" +
2393 " event int System.Int32.Click;{0}" +
2394 "}}{0}", NewLine
), code
);
2398 public override void FieldMembersAttributesTest ()
2400 string code
= GenerateFieldMembersAttributes (Options
);
2401 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2402 "public struct Test1 {{{0}" +
2406 " private void ;{0}" +
2407 "}}{0}", NewLine
), code
);
2411 public override void FieldMembersTypeTest ()
2413 string code
= GenerateFieldMembersType (MemberAttributes
.Public
, Options
);
2414 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2415 "public struct Test1 {{{0}" +
2417 " public int Name = 2;{0}" +
2418 "}}{0}", NewLine
), code
);
2422 public override void FieldNewSlotTest ()
2424 string code
= GenerateFieldMembersType (MemberAttributes
.Assembly
|
2425 MemberAttributes
.New
, Options
);
2426 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2427 "public struct Test1 {{{0}" +
2429 " internal new int Name = 2;{0}" +
2430 "}}{0}", NewLine
), code
);
2434 public override void PropertyMembersTypeTest1 ()
2436 string code
= GeneratePropertyMembersAttributes (Options
);
2437 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2438 "public struct Test1 {{{0}" +
2442 " private void {{{0}" +
2444 "}}{0}", NewLine
), code
);
2448 public override void PropertyMembersTypeTest2 ()
2450 string code
= GeneratePropertyMembersType (MemberAttributes
.Public
,
2451 false, false, Options
);
2452 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2453 "public struct Test1 {{{0}" +
2455 " public virtual int Name {{{0}" +
2457 "}}{0}", NewLine
), code
);
2461 public override void PropertyMembersTypeGetOnly ()
2463 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
2464 true, false, Options
);
2465 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2466 "public struct Test1 {{{0}" +
2468 " protected virtual int Name {{{0}" +
2472 "}}{0}", NewLine
), code
);
2476 public override void PropertyMembersTypeSetOnly ()
2478 string code
= GeneratePropertyMembersType (MemberAttributes
.Assembly
,
2479 false, true, Options
);
2480 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2481 "public struct Test1 {{{0}" +
2483 " internal virtual int Name {{{0}" +
2487 "}}{0}", NewLine
), code
);
2491 public override void PropertyMembersTypeGetSet ()
2493 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
2494 true, true, Options
);
2495 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2496 "public struct Test1 {{{0}" +
2498 " protected virtual int Name {{{0}" +
2504 "}}{0}", NewLine
), code
);
2508 public void PropertyMembersTypeGetSet_C ()
2510 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
2511 options
.BracingStyle
= "C";
2513 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
2514 true, true, options
);
2515 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2516 "public struct Test1{0}" +
2519 " protected virtual int Name{0}" +
2528 "}}{0}", NewLine
), code
);
2532 public override void PropertyMembersTypeFamilyOrAssembly ()
2534 string code
= GeneratePropertyMembersType (MemberAttributes
.FamilyOrAssembly
,
2535 false, false, Options
);
2536 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2537 "public struct Test1 {{{0}" +
2539 " protected internal int Name {{{0}" +
2541 "}}{0}", NewLine
), code
);
2545 public override void PropertyMembersTypeAssembly ()
2547 string code
= GeneratePropertyMembersType (MemberAttributes
.Assembly
,
2548 false, false, Options
);
2549 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2550 "public struct Test1 {{{0}" +
2552 " internal virtual int Name {{{0}" +
2554 "}}{0}", NewLine
), code
);
2558 public override void PropertyParametersTest ()
2560 string code
= GeneratePropertyParameters (Options
);
2561 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2562 "public struct Test1 {{{0}" +
2564 " public virtual int Name {{{0}" +
2566 "}}{0}", NewLine
), code
);
2570 public override void PropertyIndexerTest1 ()
2572 string code
= GeneratePropertyIndexer (MemberAttributes
.Public
,
2573 false, false, true, Options
);
2574 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2575 "public struct Test1 {{{0}" +
2577 " public virtual int this[object value1, ref int value2] {{{0}" +
2579 "}}{0}", NewLine
), code
);
2583 public override void PropertyIndexerTest2 ()
2585 string code
= GeneratePropertyIndexer (MemberAttributes
.Public
,
2586 false, false, false, Options
);
2587 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2588 "public struct Test1 {{{0}" +
2590 " public virtual int iTem {{{0}" +
2592 "}}{0}", NewLine
), code
);
2596 public override void PropertyIndexerGetOnly ()
2598 string code
= GeneratePropertyIndexer (MemberAttributes
.Family
,
2599 true, false, true, Options
);
2600 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2601 "public struct Test1 {{{0}" +
2603 " protected virtual int this[object value1, ref int value2] {{{0}" +
2607 "}}{0}", NewLine
), code
);
2611 public override void PropertyIndexerSetOnly ()
2613 string code
= GeneratePropertyIndexer (MemberAttributes
.Family
,
2614 false, true, true, Options
);
2615 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2616 "public struct Test1 {{{0}" +
2618 " protected virtual int this[object value1, ref int value2] {{{0}" +
2622 "}}{0}", NewLine
), code
);
2626 public override void PropertyImplementationTypes ()
2628 string code
= GeneratePropertyImplementationTypes (Options
);
2629 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2630 "public struct Test1 {{{0}" +
2632 " public virtual int Name {{{0}" +
2634 "}}{0}", NewLine
), code
);
2638 public override void PropertyOverloadsTest1 ()
2640 string code
= GeneratePropertyOverloads1 (Options
);
2641 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2642 "public struct Test1 {{{0}" +
2644 " protected virtual int Name {{{0}" +
2646 "}}{0}", NewLine
), code
);
2650 public override void PropertyOverloadsTest2 ()
2652 string code
= GeneratePropertyOverloads2 (Options
);
2653 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2654 "public struct Test1 {{{0}" +
2656 " public virtual int Name {{{0}" +
2659 " private int Name {{{0}" +
2661 "}}{0}", NewLine
), code
);
2665 public override void PropertyOverloadsTest3 ()
2667 string code
= GeneratePropertyOverloads3 (Options
);
2668 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2669 "public struct Test1 {{{0}" +
2671 " public virtual int Name {{{0}" +
2674 " int System.Int32.Name {{{0}" +
2676 "}}{0}", NewLine
), code
);
2680 public override void PropertyPrivateImplementationType ()
2682 string code
= GeneratePropertyPrivateImplementationType (Options
);
2683 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2684 "public struct Test1 {{{0}" +
2686 " int System.Int32.this[object value1] {{{0}" +
2688 "}}{0}", NewLine
), code
);
2692 public override void PropertyImplementationTypeOrder ()
2694 string code
= GeneratePropertyImplementationTypeOrder (Options
);
2695 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2696 "public struct Test1 {{{0}" +
2698 " int System.Int32.this[object value1] {{{0}" +
2700 "}}{0}", NewLine
), code
);
2704 public override void PropertyNewSlotTest ()
2706 string code
= GeneratePropertyMembersType (MemberAttributes
.Private
|
2707 MemberAttributes
.New
, true, true, Options
);
2708 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2709 "public struct Test1 {{{0}" +
2711 " private new int Name {{{0}" +
2717 "}}{0}", NewLine
), code
);
2721 public override void MethodMembersTypeTest1 ()
2723 string code
= GenerateMethodMembersType1 (Options
);
2724 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2725 "public struct Test1 {{{0}" +
2729 " private void () {{{0}" +
2731 "}}{0}", NewLine
), code
);
2735 public void MethodMembersTypeTest1_C ()
2737 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
2738 options
.BracingStyle
= "C";
2740 string code
= GenerateMethodMembersType1 (options
);
2741 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2742 "public struct Test1{0}" +
2747 " private void (){0}" +
2750 "}}{0}", NewLine
), code
);
2754 public override void MethodMembersTypeTest2 ()
2756 string code
= GenerateMethodMembersType2 (Options
);
2757 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2758 "public struct Test1 {{{0}" +
2760 " public virtual int Something(object value1, object value2, out int index, ref int count) {{{0}" +
2762 "}}{0}", NewLine
), code
);
2766 public override void MethodMembersTypeTest3 ()
2768 string code
= GenerateMethodMembersType3 (Options
);
2769 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2770 "public struct Test1 {{{0}" +
2772 " public virtual int Something([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int ) {{{0}" +
2774 "}}{0}", NewLine
), code
);
2778 public override void MethodImplementationTypes ()
2780 string code
= GenerateMethodImplementationTypes (Options
);
2781 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2782 "public struct Test1 {{{0}" +
2784 " internal virtual int Execute() {{{0}" +
2786 "}}{0}", NewLine
), code
);
2790 public override void MethodOverloadsTest1 ()
2792 string code
= GenerateMethodOverloads1 (Options
);
2793 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2794 "public struct Test1 {{{0}" +
2796 " internal virtual int Execute() {{{0}" +
2798 "}}{0}", NewLine
), code
);
2802 public override void MethodOverloadsTest2 ()
2804 string code
= GenerateMethodOverloads2 (Options
);
2805 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2806 "public struct Test1 {{{0}" +
2808 " public virtual void Execute() {{{0}" +
2811 " private int Execute(object value1) {{{0}" +
2813 "}}{0}", NewLine
), code
);
2817 public override void MethodOverloadsTest3 ()
2819 string code
= GenerateMethodOverloads3 (Options
);
2820 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2821 "public struct Test1 {{{0}" +
2823 " public virtual void Execute() {{{0}" +
2826 " int System.Int32.Execute(object value1) {{{0}" +
2828 "}}{0}", NewLine
), code
);
2832 public override void MethodPrivateImplementationType ()
2834 string code
= GenerateMethodPrivateImplementationType (Options
);
2835 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2836 "public struct Test1 {{{0}" +
2838 " int System.Int32.Execute(object value1) {{{0}" +
2840 "}}{0}", NewLine
), code
);
2844 public override void MethodImplementationTypeOrder ()
2846 string code
= GenerateMethodImplementationTypeOrder (Options
);
2847 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2848 "public struct Test1 {{{0}" +
2850 " int System.Int32.Execute(object value1) {{{0}" +
2852 "}}{0}", NewLine
), code
);
2856 public override void MethodParamArrayAttribute ()
2858 string code
= GenerateMethodParamArrayAttribute (Options
);
2859 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2860 "public struct Test1 {{{0}" +
2862 " public virtual int Something([A()] [B()] params out object value, [C()] ref int ) {{{0}" +
2864 "}}{0}", NewLine
), code
);
2868 public override void MethodReturnTypeAttributes ()
2870 string code
= GenerateMethodReturnTypeAttributes (Options
);
2871 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2872 "public struct Test1 {{{0}" +
2877 " [return: C(A1=false, A2=true)]{0}" +
2878 " [return: D()]{0}" +
2879 " return: params{0}" +
2880 " public virtual int Execute() {{{0}" +
2882 "}}{0}", NewLine
), code
);
2886 public override void MethodNewSlotTest ()
2888 string code
= GenerateMethodNewSlot (Options
);
2889 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2890 "public struct Test1 {{{0}" +
2892 " public new virtual int Execute() {{{0}" +
2894 "}}{0}", NewLine
), code
);
2898 public override void ConstructorAttributesTest ()
2900 string code
= GenerateConstructorAttributes (Options
);
2901 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2902 "public struct Test1 {{{0}" +
2906 " private Test1() {{{0}" +
2908 "}}{0}", NewLine
), code
);
2912 public void ConstructorAttributesTest_C ()
2914 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
2915 options
.BracingStyle
= "C";
2917 string code
= GenerateConstructorAttributes (options
);
2918 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2919 "public struct Test1{0}" +
2924 " private Test1(){0}" +
2927 "}}{0}", NewLine
), code
);
2931 public override void ConstructorParametersTest ()
2933 string code
= GenerateConstructorParameters (Options
);
2934 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2935 "public struct Test1 {{{0}" +
2937 " public Test1(object value1, object value2, out int index, ref int count) {{{0}" +
2939 "}}{0}", NewLine
), code
);
2943 public override void ConstructorParameterAttributesTest ()
2945 string code
= GenerateConstructorParameterAttributes (Options
);
2946 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2947 "public struct Test1 {{{0}" +
2949 " private Test1([A()] [B()] object value, [C(A1=false, A2=true)] [D()] out int index) {{{0}" +
2951 "}}{0}", NewLine
), code
);
2955 public override void BaseConstructorSingleArg ()
2957 string code
= GenerateBaseConstructor (false, Options
);
2958 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2959 "public struct Test1 {{{0}" +
2961 " protected Test1(object value1, out int value2) : {0}" +
2962 " base(value1) {{{0}" +
2964 "}}{0}", NewLine
), code
);
2968 public override void BaseConstructorMultipleArgs ()
2970 string code
= GenerateBaseConstructor (true, Options
);
2971 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2972 "public struct Test1 {{{0}" +
2974 " protected Test1(object value1, out int value2) : {0}" +
2975 " base(value1, value2) {{{0}" +
2977 "}}{0}", NewLine
), code
);
2981 public override void ChainedConstructorSingleArg ()
2983 string code
= GenerateChainedConstructor (false, Options
);
2984 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2985 "public struct Test1 {{{0}" +
2987 " public Test1(object value1, out int value2) : {0}" +
2988 " base(value3) : {0}" +
2989 " this(value1) {{{0}" +
2991 "}}{0}", NewLine
), code
);
2995 public override void ChainedConstructorMultipleArgs ()
2997 string code
= GenerateChainedConstructor (true, Options
);
2998 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
2999 "public struct Test1 {{{0}" +
3001 " public Test1(object value1, out int value2) : {0}" +
3002 " base(value3) : {0}" +
3003 " this(value1, value2) {{{0}" +
3005 "}}{0}", NewLine
), code
);
3009 public override void TypeConstructorTest ()
3011 string code
= GenerateTypeConstructor (Options
);
3012 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3013 "public struct Test1 {{{0}" +
3017 " static Test1() {{{0}" +
3019 "}}{0}", NewLine
), code
, "#1");
3023 public void TypeConstructorTest_C ()
3025 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
3026 options
.BracingStyle
= "C";
3028 string code
= GenerateTypeConstructor (options
);
3029 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3030 "public struct Test1{0}" +
3035 " static Test1(){0}" +
3038 "}}{0}", NewLine
), code
, "#2");
3042 public override void EntryPointMethodTest ()
3044 string code
= GenerateEntryPointMethod (Options
);
3045 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3046 "public struct Test1 {{{0}" +
3049 " public static int Main() {{{0}" +
3050 " Test.InnerType x;{0}" +
3052 "}}{0}", NewLine
), code
);
3056 public override void PartialTypeTest ()
3058 string code
= GeneratePartialType (Options
);
3059 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3060 "public partial struct Test1 {{{0}" +
3061 "}}{0}", NewLine
), code
);
3063 #endregion Override implementation of CodeGeneratorFromTypeTestBase
3067 public class CodeGeneratorFromTypeTest_Enum
: CodeGeneratorFromTypeTestBase
3069 private CodeTypeDeclaration _typeDeclaration
;
3070 private ICodeGenerator _codeGenerator
;
3072 #region Override implementation of CodeGeneratorTestBase
3074 protected override ICodeGenerator CodeGenerator
3076 get { return _codeGenerator; }
3080 public override void SetUp ()
3083 _typeDeclaration
= new CodeTypeDeclaration ();
3084 _typeDeclaration
.IsEnum
= true;
3086 CodeDomProvider provider
= new CSharpCodeProvider ();
3087 _codeGenerator
= provider
.CreateGenerator ();
3090 #endregion Override implementation of CodeGeneratorTestBase
3092 #region Override implementation of CodeGeneratorFromTypeTestBase
3094 protected override CodeTypeDeclaration TypeDeclaration
3096 get { return _typeDeclaration; }
3100 public override void DefaultTypeTest ()
3102 string code
= GenerateDefaultType (Options
);
3103 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3104 "public enum {{{0}" +
3105 "}}{0}", NewLine
), code
);
3109 public void DefaultTypeTest_C ()
3111 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
3112 options
.BracingStyle
= "C";
3114 string code
= GenerateDefaultType (options
);
3115 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3118 "}}{0}", NewLine
), code
);
3122 [ExpectedException (typeof (NullReferenceException
))]
3123 public override void NullTypeTest ()
3125 GenerateNullType (Options
);
3129 public override void SimpleTypeTest ()
3131 string code
= GenerateSimpleType (Options
);
3132 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3133 "public enum Test1 {{{0}" +
3134 "}}{0}", NewLine
), code
);
3138 public void SimpleTypeTest_C ()
3140 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
3141 options
.BracingStyle
= "C";
3143 string code
= GenerateSimpleType (options
);
3144 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3145 "public enum Test1{0}" +
3147 "}}{0}", NewLine
), code
);
3151 public override void DerivedTypeTest ()
3153 string code
= GenerateDerivedType (Options
);
3154 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3155 "internal enum Test1 : int, System.Security.Principal.IIdentity, string, System.Security.IPermission {{{0}" +
3156 "}}{0}", NewLine
), code
);
3160 public override void AttributesAndTypeTest ()
3162 string code
= GenerateAttributesAndType (Options
);
3163 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3166 "public enum Test1 {{{0}" +
3167 "}}{0}", NewLine
), code
);
3171 public override void EventMembersTypeTest1 ()
3173 string code
= GenerateEventMembersType1 (Options
);
3174 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3175 "public enum Test1 {{{0}" +
3177 "}}{0}", NewLine
), code
);
3181 public override void EventMembersTypeTest2 ()
3183 string code
= GenerateEventMembersType2 (Options
);
3184 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3185 "public enum Test1 {{{0}" +
3187 "}}{0}", NewLine
), code
);
3191 public override void EventImplementationTypes ()
3193 string code
= GenerateEventImplementationTypes (Options
);
3194 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3195 "public enum Test1 {{{0}" +
3197 "}}{0}", NewLine
), code
);
3201 public override void EventPrivateImplementationType ()
3203 string code
= GenerateEventPrivateImplementationType (Options
);
3204 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3205 "public enum Test1 {{{0}" +
3207 "}}{0}", NewLine
), code
);
3211 public override void EventImplementationTypeOrder ()
3213 string code
= GenerateEventImplementationTypeOrder (Options
);
3214 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3215 "public enum Test1 {{{0}" +
3217 "}}{0}", NewLine
), code
);
3221 public override void FieldMembersAttributesTest ()
3223 string code
= GenerateFieldMembersAttributes (Options
);
3224 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3225 "public enum Test1 {{{0}" +
3230 "}}{0}", NewLine
), code
);
3234 public override void FieldMembersTypeTest ()
3236 string code
= GenerateFieldMembersType (MemberAttributes
.Public
, Options
);
3237 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3238 "public enum Test1 {{{0}" +
3241 "}}{0}", NewLine
), code
);
3245 public override void FieldNewSlotTest ()
3247 string code
= GenerateFieldMembersType (MemberAttributes
.Assembly
|
3248 MemberAttributes
.New
, Options
);
3249 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3250 "public enum Test1 {{{0}" +
3253 "}}{0}", NewLine
), code
);
3257 public override void PropertyMembersTypeTest1 ()
3259 string code
= GeneratePropertyMembersAttributes (Options
);
3260 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3261 "public enum Test1 {{{0}" +
3263 "}}{0}", NewLine
), code
);
3267 public override void PropertyMembersTypeTest2 ()
3269 string code
= GeneratePropertyMembersType (MemberAttributes
.Public
,
3270 false, false, Options
);
3271 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3272 "public enum Test1 {{{0}" +
3274 "}}{0}", NewLine
), code
);
3278 public override void PropertyMembersTypeGetOnly ()
3280 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
3281 true, false, Options
);
3282 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3283 "public enum Test1 {{{0}" +
3285 "}}{0}", NewLine
), code
);
3289 public override void PropertyMembersTypeSetOnly ()
3291 string code
= GeneratePropertyMembersType (MemberAttributes
.Assembly
,
3292 false, true, Options
);
3293 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3294 "public enum Test1 {{{0}" +
3296 "}}{0}", NewLine
), code
);
3300 public override void PropertyMembersTypeGetSet ()
3302 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
3303 true, true, Options
);
3304 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3305 "public enum Test1 {{{0}" +
3307 "}}{0}", NewLine
), code
);
3311 public void PropertyMembersTypeGetSet_C ()
3313 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
3314 options
.BracingStyle
= "C";
3316 string code
= GeneratePropertyMembersType (MemberAttributes
.Family
,
3317 true, true, options
);
3318 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3319 "public enum Test1{0}" +
3322 "}}{0}", NewLine
), code
);
3326 public override void PropertyMembersTypeFamilyOrAssembly ()
3328 string code
= GeneratePropertyMembersType (MemberAttributes
.FamilyOrAssembly
,
3329 false, false, Options
);
3330 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3331 "public enum Test1 {{{0}" +
3333 "}}{0}", NewLine
), code
);
3337 public override void PropertyMembersTypeAssembly ()
3339 string code
= GeneratePropertyMembersType (MemberAttributes
.Assembly
,
3340 false, false, Options
);
3341 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3342 "public enum Test1 {{{0}" +
3344 "}}{0}", NewLine
), code
);
3348 public override void PropertyParametersTest ()
3350 string code
= GeneratePropertyParameters (Options
);
3351 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3352 "public enum Test1 {{{0}" +
3354 "}}{0}", NewLine
), code
);
3358 public override void PropertyIndexerTest1 ()
3360 string code
= GeneratePropertyIndexer (MemberAttributes
.Public
,
3361 false, false, true, Options
);
3362 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3363 "public enum Test1 {{{0}" +
3365 "}}{0}", NewLine
), code
);
3369 public override void PropertyIndexerTest2 ()
3371 string code
= GeneratePropertyIndexer (MemberAttributes
.Public
,
3372 false, false, false, Options
);
3373 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3374 "public enum Test1 {{{0}" +
3376 "}}{0}", NewLine
), code
);
3380 public override void PropertyIndexerGetOnly ()
3382 string code
= GeneratePropertyIndexer (MemberAttributes
.Family
,
3383 true, false, true, Options
);
3384 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3385 "public enum Test1 {{{0}" +
3387 "}}{0}", NewLine
), code
);
3391 public override void PropertyIndexerSetOnly ()
3393 string code
= GeneratePropertyIndexer (MemberAttributes
.Family
,
3394 false, true, true, Options
);
3395 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3396 "public enum Test1 {{{0}" +
3398 "}}{0}", NewLine
), code
);
3402 public override void PropertyImplementationTypes ()
3404 string code
= GeneratePropertyImplementationTypes (Options
);
3405 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3406 "public enum Test1 {{{0}" +
3408 "}}{0}", NewLine
), code
);
3412 public override void PropertyOverloadsTest1 ()
3414 string code
= GeneratePropertyOverloads1 (Options
);
3415 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3416 "public enum Test1 {{{0}" +
3418 "}}{0}", NewLine
), code
);
3422 public override void PropertyOverloadsTest2 ()
3424 string code
= GeneratePropertyOverloads2 (Options
);
3425 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3426 "public enum Test1 {{{0}" +
3429 "}}{0}", NewLine
), code
);
3433 public override void PropertyOverloadsTest3 ()
3435 string code
= GeneratePropertyOverloads3 (Options
);
3436 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3437 "public enum Test1 {{{0}" +
3440 "}}{0}", NewLine
), code
);
3444 public override void PropertyPrivateImplementationType ()
3446 string code
= GeneratePropertyPrivateImplementationType (Options
);
3447 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3448 "public enum Test1 {{{0}" +
3450 "}}{0}", NewLine
), code
);
3454 public override void PropertyImplementationTypeOrder ()
3456 string code
= GeneratePropertyImplementationTypeOrder (Options
);
3457 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3458 "public enum Test1 {{{0}" +
3460 "}}{0}", NewLine
), code
);
3464 public override void PropertyNewSlotTest ()
3466 string code
= GeneratePropertyMembersType (MemberAttributes
.Private
|
3467 MemberAttributes
.New
, true, true, Options
);
3468 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3469 "public enum Test1 {{{0}" +
3471 "}}{0}", NewLine
), code
);
3475 public override void MethodMembersTypeTest1 ()
3477 string code
= GenerateMethodMembersType1 (Options
);
3478 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3479 "public enum Test1 {{{0}" +
3481 "}}{0}", NewLine
), code
);
3485 public override void MethodMembersTypeTest2 ()
3487 string code
= GenerateMethodMembersType2 (Options
);
3488 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3489 "public enum Test1 {{{0}" +
3491 "}}{0}", NewLine
), code
);
3495 public override void MethodMembersTypeTest3 ()
3497 string code
= GenerateMethodMembersType3 (Options
);
3498 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3499 "public enum Test1 {{{0}" +
3501 "}}{0}", NewLine
), code
);
3505 public override void MethodImplementationTypes ()
3507 string code
= GenerateMethodImplementationTypes (Options
);
3508 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3509 "public enum Test1 {{{0}" +
3511 "}}{0}", NewLine
), code
);
3515 public override void MethodOverloadsTest1 ()
3517 string code
= GenerateMethodOverloads1 (Options
);
3518 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3519 "public enum Test1 {{{0}" +
3521 "}}{0}", NewLine
), code
);
3525 public override void MethodOverloadsTest2 ()
3527 string code
= GenerateMethodOverloads2 (Options
);
3528 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3529 "public enum Test1 {{{0}" +
3532 "}}{0}", NewLine
), code
);
3536 public override void MethodOverloadsTest3 ()
3538 string code
= GenerateMethodOverloads3 (Options
);
3539 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3540 "public enum Test1 {{{0}" +
3543 "}}{0}", NewLine
), code
);
3547 public override void MethodPrivateImplementationType ()
3549 string code
= GenerateMethodPrivateImplementationType (Options
);
3550 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3551 "public enum Test1 {{{0}" +
3553 "}}{0}", NewLine
), code
);
3557 public override void MethodImplementationTypeOrder ()
3559 string code
= GenerateMethodImplementationTypeOrder (Options
);
3560 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3561 "public enum Test1 {{{0}" +
3563 "}}{0}", NewLine
), code
);
3567 public override void MethodNewSlotTest ()
3569 string code
= GenerateMethodNewSlot (Options
);
3570 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3571 "public enum Test1 {{{0}" +
3573 "}}{0}", NewLine
), code
);
3577 public override void MethodParamArrayAttribute ()
3579 string code
= GenerateMethodParamArrayAttribute (Options
);
3580 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3581 "public enum Test1 {{{0}" +
3583 "}}{0}", NewLine
), code
);
3587 public override void MethodReturnTypeAttributes ()
3589 string code
= GenerateMethodReturnTypeAttributes (Options
);
3590 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3591 "public enum Test1 {{{0}" +
3593 "}}{0}", NewLine
), code
);
3597 public override void ConstructorAttributesTest ()
3599 string code
= GenerateConstructorAttributes (Options
);
3600 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3601 "public enum Test1 {{{0}" +
3603 "}}{0}", NewLine
), code
);
3607 public void ConstructorAttributesTest_C ()
3609 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
3610 options
.BracingStyle
= "C";
3612 string code
= GenerateConstructorAttributes (options
);
3613 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3614 "public enum Test1{0}" +
3617 "}}{0}", NewLine
), code
);
3621 public override void ConstructorParametersTest ()
3623 string code
= GenerateConstructorParameters (Options
);
3624 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3625 "public enum Test1 {{{0}" +
3627 "}}{0}", NewLine
), code
);
3631 public override void ConstructorParameterAttributesTest ()
3633 string code
= GenerateConstructorParameterAttributes (Options
);
3634 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3635 "public enum Test1 {{{0}" +
3637 "}}{0}", NewLine
), code
);
3641 public override void BaseConstructorSingleArg ()
3643 string code
= GenerateBaseConstructor (false, Options
);
3644 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3645 "public enum Test1 {{{0}" +
3647 "}}{0}", NewLine
), code
);
3651 public override void BaseConstructorMultipleArgs ()
3653 string code
= GenerateBaseConstructor (true, Options
);
3654 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3655 "public enum Test1 {{{0}" +
3657 "}}{0}", NewLine
), code
);
3661 public override void ChainedConstructorSingleArg ()
3663 string code
= GenerateChainedConstructor (false, Options
);
3664 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3665 "public enum Test1 {{{0}" +
3667 "}}{0}", NewLine
), code
);
3671 public override void ChainedConstructorMultipleArgs ()
3673 string code
= GenerateChainedConstructor (true, Options
);
3674 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3675 "public enum Test1 {{{0}" +
3677 "}}{0}", NewLine
), code
);
3681 public override void TypeConstructorTest ()
3683 string code
= GenerateTypeConstructor (Options
);
3684 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3685 "public enum Test1 {{{0}" +
3687 "}}{0}", NewLine
), code
);
3691 public void TypeConstructorTest_C ()
3693 CodeGeneratorOptions options
= new CodeGeneratorOptions ();
3694 options
.BracingStyle
= "C";
3696 string code
= GenerateTypeConstructor (options
);
3697 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3698 "public enum Test1{0}" +
3701 "}}{0}", NewLine
), code
);
3705 public override void EntryPointMethodTest ()
3707 string code
= GenerateEntryPointMethod (Options
);
3708 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3709 "public enum Test1 {{{0}" +
3712 " public static int Main() {{{0}" +
3713 " Test.InnerType x;{0}" +
3715 "}}{0}", NewLine
), code
);
3719 public override void PartialTypeTest ()
3721 string code
= GeneratePartialType (Options
);
3722 Assert
.AreEqual (string.Format (CultureInfo
.InvariantCulture
,
3723 "public enum Test1 {{{0}" +
3724 "}}{0}", NewLine
), code
);
3727 #endregion Override implementation of CodeGeneratorFromTypeTestBase