2 // Microsoft.VisualBasic.* Test Cases
5 // Gert Driesen (drieseng@users.sourceforge.net)
12 using System.CodeDom.Compiler;
13 using System.Globalization;
15 using Microsoft.VisualBasic;
17 using NUnit.Framework;
19 using MonoTests.System.CodeDom.Compiler;
21 namespace MonoTests.Microsoft.VisualBasic
24 public class CodeGeneratorFromTypeTest_Class : CodeGeneratorFromTypeTestBase
26 private CodeTypeDeclaration _typeDeclaration;
27 private ICodeGenerator _codeGenerator;
29 protected override ICodeGenerator CodeGenerator
31 get { return _codeGenerator; }
34 protected override CodeTypeDeclaration TypeDeclaration
36 get { return _typeDeclaration; }
40 public override void SetUp ()
43 _typeDeclaration = new CodeTypeDeclaration ();
45 CodeDomProvider provider = new VBCodeProvider ();
46 _codeGenerator = provider.CreateGenerator ();
50 public override void DefaultTypeTest ()
52 string code = GenerateDefaultType ();
53 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
55 "End Class{0}", Writer.NewLine), code);
59 [ExpectedException (typeof (NullReferenceException))]
60 public override void NullTypeTest ()
66 public override void SimpleTypeTest ()
68 string code = GenerateSimpleType ();
69 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
70 "Public Class Test1{0}" +
71 "End Class{0}", Writer.NewLine), code);
75 public override void DerivedTypeTest ()
77 string code = GenerateDerivedType ();
78 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
80 "Friend MustInherit Class Test1{0}" +
82 "MustInherit Class Test1{0}" +
84 " Inherits Integer{0}" +
85 " Implements System.Security.Principal.IIdentity, String, System.Security.IPermission{0}" +
86 "End Class{0}", Writer.NewLine), code);
90 public override void AttributesAndTypeTest ()
92 string code = GenerateAttributesAndType ();
93 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
96 "Public Class Test1{0}" +
97 "End Class{0}", Writer.NewLine), code);
101 public override void EventMembersTypeTest1 ()
103 string code = GenerateEventMembersType1 ();
104 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
105 "Public Class Test1{0}" +
109 " Private Event As System.Void{0}" +
110 "End Class{0}", Writer.NewLine), code);
114 public override void EventMembersTypeTest2 ()
116 string code = GenerateEventMembersType2 ();
117 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
118 "Public Class Test1{0}" +
120 " Public Event Click As Integer{0}" +
121 "End Class{0}", Writer.NewLine), code);
125 public override void EventImplementationTypes ()
127 string code = GenerateEventImplementationTypes ();
128 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
129 "Public Class Test1{0}" +
132 " Friend Event Click As Integer Implements IPolicy.Click , IWhatever.Click{0}" +
134 " Friend Event Click As Integer{0}" +
136 "End Class{0}", Writer.NewLine), code);
140 /// Ensure no access modifiers are output if PrivateImplementationType
144 public override void EventPrivateImplementationType ()
146 string code = GenerateEventPrivateImplementationType ();
147 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
148 "Public Class Test1{0}" +
151 " Protected Event System_Int32_Click As Integer Implements Integer.Click{0}" +
153 " Protected Event Click As Integer{0}" +
155 "End Class{0}", Writer.NewLine), code);
159 /// If both ImplementationTypes and PrivateImplementationType are set,
160 /// then only ImplementationTypes are output.
163 public override void EventImplementationTypeOrder ()
165 string code = GenerateEventImplementationTypeOrder ();
166 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
167 "Public Class Test1{0}" +
170 " Public Event System_Int32_Click As Integer Implements IPolicy.Click{0}" +
172 " Public Event Click As Integer{0}" +
174 "End Class{0}", Writer.NewLine), code);
178 public override void FieldMembersTypeTest1 ()
180 string code = GenerateFieldMembersType1 ();
181 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
182 "Public Class Test1{0}" +
186 " Private As System.Void{0}" +
187 "End Class{0}", Writer.NewLine), code);
191 public override void FieldMembersTypeTest2 ()
193 string code = GenerateFieldMembersType2 ();
194 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
195 "Public Class Test1{0}" +
197 " Public Name As Integer = 2{0}" +
198 "End Class{0}", Writer.NewLine), code);
202 public override void PropertyMembersTypeTest1 ()
204 string code = GeneratePropertyMembersAttributes ();
205 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
206 "Public Class Test1{0}" +
211 " Private Property () As System.Void{0}" +
213 " Private Property As System.Void{0}" +
216 "End Class{0}", Writer.NewLine), code);
220 public override void PropertyMembersTypeTest2 ()
222 string code = GeneratePropertyMembersType (MemberAttributes.Public,
224 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
225 "Public Class Test1{0}" +
228 " Public Overridable Property Name() As Integer{0}" +
230 " Public Overridable Property Name As Integer{0}" +
233 "End Class{0}", Writer.NewLine), code);
237 public override void PropertyMembersTypeGetOnly ()
239 string code = GeneratePropertyMembersType (MemberAttributes.Family,
241 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
242 "Public Class Test1{0}" +
245 " Protected Overridable ReadOnly Property Name() As Integer{0}" +
247 " Protected Overridable ReadOnly Property Name As Integer{0}" +
252 "End Class{0}", Writer.NewLine), code);
256 public override void PropertyMembersTypeSetOnly ()
258 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
260 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
261 "Public Class Test1{0}" +
264 " Friend Overridable WriteOnly Property Name() As Integer{0}" +
266 " Friend WriteOnly Property Name As Integer{0}" +
271 "End Class{0}", Writer.NewLine), code);
275 public override void PropertyMembersTypeGetSet ()
277 string code = GeneratePropertyMembersType (MemberAttributes.Family,
279 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
280 "Public Class Test1{0}" +
283 " Protected Overridable Property Name() As Integer{0}" +
285 " Protected Overridable Property Name As Integer{0}" +
292 "End Class{0}", Writer.NewLine), code);
296 // A bug in MS.NET 1.x causes MemberAttributes.FamilyOrAssembly to be
297 // generated as Protected
298 [Category ("NotDotNet")]
301 public override void PropertyMembersTypeFamilyOrAssembly ()
303 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
305 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
306 "Public Class Test1{0}" +
309 " Protected Friend Property Name() As Integer{0}" +
311 " Protected Friend Property Name As Integer{0}" +
314 "End Class{0}", Writer.NewLine), code);
318 // A bug in MS.NET 1.x causes MemberAttributes.Assembly to be generated
320 [Category ("NotDotNet")]
323 public override void PropertyMembersTypeAssembly ()
325 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
327 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
328 "Public Class Test1{0}" +
331 " Friend Overridable Property Name() As Integer{0}" +
333 " Friend Property Name As Integer{0}" +
336 "End Class{0}", Writer.NewLine), code);
340 /// Apparently VB.NET CodeDOM also allows properties that aren't indexers
341 /// to have parameters.
344 public override void PropertyParametersTest ()
346 string code = GeneratePropertyParameters ();
347 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
348 "Public Class Test1{0}" +
350 " Public Overridable Property Name(ByVal value1 As Object, ByRef value2 As Integer) As Integer{0}" +
352 "End Class{0}", Writer.NewLine), code);
356 public override void PropertyIndexerTest1 ()
358 string code = GeneratePropertyIndexer (MemberAttributes.Public,
360 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
361 "Public Class Test1{0}" +
363 " Public Overridable Default Property iTem(ByVal value1 As Object, ByRef value2 As Integer) As Integer{0}" +
365 "End Class{0}", Writer.NewLine), code);
369 /// Ensures Default keyword is only output if property is named "Item"
370 /// (case-insensitive comparison) AND parameters are defined.
373 public override void PropertyIndexerTest2 ()
375 string code = GeneratePropertyIndexer (MemberAttributes.Public,
376 false, false, false);
377 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
378 "Public Class Test1{0}" +
381 " Public Overridable Property iTem() As Integer{0}" +
383 " Public Overridable Property iTem As Integer{0}" +
386 "End Class{0}", Writer.NewLine), code);
390 /// Ensures Default keyword is output after ReadOnly modifier.
393 public override void PropertyIndexerGetOnly ()
395 string code = GeneratePropertyIndexer (MemberAttributes.Family,
397 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
398 "Public Class Test1{0}" +
400 " Protected Overridable Default ReadOnly Property iTem(ByVal value1 As Object, ByRef value2 As Integer) As Integer{0}" +
404 "End Class{0}", Writer.NewLine), code);
408 /// Ensures Default keyword is output after WriteOnly modifier.
411 public override void PropertyIndexerSetOnly ()
413 string code = GeneratePropertyIndexer (MemberAttributes.Family,
415 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
416 "Public Class Test1{0}" +
418 " Protected Overridable Default WriteOnly Property iTem(ByVal value1 As Object, ByRef value2 As Integer) As Integer{0}" +
422 "End Class{0}", Writer.NewLine), code);
426 public override void PropertyImplementationTypes ()
428 string code = GeneratePropertyImplementationTypes ();
429 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
430 "Public Class Test1{0}" +
433 " Public Overridable Property Name() As Integer Implements IPolicy.Name , IWhatever.Name{0}" +
435 " Public Overridable Property Name As Integer Implements IPolicy.Name , IWhatever.Name{0}" +
438 "End Class{0}", Writer.NewLine), code);
442 /// Ensure that Overloads keyword is output for a property which has
443 /// explicitly been marked as Overloaded.
446 public override void PropertyOverloadsTest1 ()
448 string code = GeneratePropertyOverloads1 ();
449 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
450 "Public Class Test1{0}" +
453 " Public Overloads Overridable Property Name() As Integer{0}" +
455 " Public Overloads Overridable Property Name As Integer{0}" +
458 "End Class{0}", Writer.NewLine), code);
462 /// Ensure that Overloads keyword is output if multiple properties with
463 /// the same name are defined.
466 public override void PropertyOverloadsTest2 ()
468 string code = GeneratePropertyOverloads2 ();
469 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
470 "Public Class Test1{0}" +
473 " Public Overloads Overridable Property Name() As Integer{0}" +
475 " Public Overloads Overridable Property Name As Integer{0}" +
479 " Private Overloads Property Name(ByVal value1 As Object) As Integer{0}" +
481 "End Class{0}", Writer.NewLine), code);
485 /// Ensure that a property with a PrivateImplementationType and with
486 /// the same name does not qualify as an overload.
489 public override void PropertyOverloadsTest3 ()
491 string code = GeneratePropertyOverloads3 ();
492 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
493 "Public Class Test1{0}" +
496 " Public Overridable Property Name() As Integer{0}" +
498 " Public Overridable Property Name As Integer{0}" +
502 " Property System_Int32_Name(ByVal value1 As Object) As Integer Implements Integer.Name{0}" +
504 "End Class{0}", Writer.NewLine), code);
508 /// Ensure no access modifiers are output if PrivateImplementationType
509 /// is set. Default keyword is also not output in this case.
512 public override void PropertyPrivateImplementationType ()
514 string code = GeneratePropertyPrivateImplementationType ();
515 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
516 "Public Class Test1{0}" +
518 " Overridable Property System_Int32_Item(ByVal value1 As Object) As Integer Implements Integer.Item{0}" +
520 "End Class{0}", Writer.NewLine), code);
524 /// If both ImplementationTypes and PrivateImplementationType are set,
525 /// then only ImplementationTypes are output.
528 public override void PropertyImplementationTypeOrder ()
530 string code = GeneratePropertyImplementationTypeOrder ();
531 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
532 "Public Class Test1{0}" +
534 " Overridable Property System_Int32_Item(ByVal value1 As Object) As Integer Implements IPolicy.Item{0}" +
536 "End Class{0}", Writer.NewLine), code);
540 public override void MethodMembersTypeTest1 ()
542 string code = GenerateMethodMembersType1 ();
543 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
544 "Public Class Test1{0}" +
548 " Private Sub (){0}" +
550 "End Class{0}", Writer.NewLine), code);
554 public override void MethodMembersTypeTest2 ()
556 string code = GenerateMethodMembersType2 ();
557 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
558 "Public Class Test1{0}" +
560 " Public Overridable Function Something(ByVal value1 As Object, ByVal value2 As Object, ByRef index As Integer, ByRef count As Integer) As Integer{0}" +
562 "End Class{0}", Writer.NewLine), code);
566 public override void MethodMembersTypeTest3 ()
568 string code = GenerateMethodMembersType3 ();
569 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
570 "Public Class Test1{0}" +
572 " Public Overridable Function Something(<A(), B()> ByVal value As Object, <C(A1:=false, A2:=true), D()> ByRef index As Integer) As Integer{0}" +
574 "End Class{0}", Writer.NewLine), code);
578 public override void MethodImplementationTypes ()
580 string code = GenerateMethodImplementationTypes ();
581 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
582 "Public Class Test1{0}" +
585 " Friend Overridable Function Execute() As Integer Implements IPolicy.Execute , IWhatever.Execute{0}" +
587 " Friend Function Execute() As Integer Implements IPolicy.Execute , IWhatever.Execute{0}" +
590 "End Class{0}", Writer.NewLine), code);
594 /// Ensure that Overloads keyword is output for a method which has
595 /// explicitly been marked as Overloaded.
598 public override void MethodOverloadsTest1 ()
600 string code = GenerateMethodOverloads1 ();
601 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
602 "Public Class Test1{0}" +
604 " Public Overloads Overridable Function Execute() As Integer{0}" +
606 "End Class{0}", Writer.NewLine), code);
610 /// Ensure that Overloads keyword is output if multiple methods with
611 /// the same name are defined.
614 public override void MethodOverloadsTest2 ()
616 string code = GenerateMethodOverloads2 ();
617 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
618 "Public Class Test1{0}" +
620 " Public Overloads Overridable Sub Execute(){0}" +
623 " Private Overloads Function Execute(ByVal value1 As Object) As Integer{0}" +
625 "End Class{0}", Writer.NewLine), code);
629 /// Ensure that a method with a PrivateImplementationType and with
630 /// the same name does not qualify as an overload.
633 public override void MethodOverloadsTest3 ()
635 string code = GenerateMethodOverloads3 ();
636 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
637 "Public Class Test1{0}" +
639 " Public Overridable Sub Execute(){0}" +
642 " Function System_Int32_Execute(ByVal value1 As Object) As Integer Implements Integer.Execute{0}" +
644 "End Class{0}", Writer.NewLine), code);
648 /// Ensure no access modifiers are output if PrivateImplementationType
652 public override void MethodPrivateImplementationType ()
654 string code = GenerateMethodPrivateImplementationType ();
655 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
656 "Public Class Test1{0}" +
658 " Overridable Function System_Int32_Execute(ByVal value1 As Object) As Integer Implements Integer.Execute{0}" +
660 "End Class{0}", Writer.NewLine), code);
664 /// If both ImplementationTypes and PrivateImplementationType are set,
665 /// then only ImplementationTypes are output.
668 public override void MethodImplementationTypeOrder ()
670 string code = GenerateMethodImplementationTypeOrder ();
671 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
672 "Public Class Test1{0}" +
674 " Overridable Function System_Int32_Execute(ByVal value1 As Object) As Integer Implements IPolicy.Execute{0}" +
676 "End Class{0}", Writer.NewLine), code);
680 public override void MethodReturnTypeAttributes ()
682 string code = GenerateMethodReturnTypeAttributes ();
683 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
684 "Public Class Test1{0}" +
688 " Public Overridable Function Execute() As <C(A1:=false, A2:=true), D()> Integer{0}" +
690 "End Class{0}", Writer.NewLine), code);
694 public override void ConstructorAttributesTest ()
696 string code = GenerateConstructorAttributes ();
697 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
698 "Public Class Test1{0}" +
702 " Private Sub New(){0}" +
705 "End Class{0}", Writer.NewLine), code);
709 public override void ConstructorParametersTest ()
711 string code = GenerateConstructorParameters ();
712 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
713 "Public Class Test1{0}" +
715 " Public Sub New(ByVal value1 As Object, ByVal value2 As Object, ByRef index As Integer, ByRef count As Integer){0}" +
718 "End Class{0}", Writer.NewLine), code);
722 public override void ConstructorParameterAttributesTest ()
724 string code = GenerateConstructorParameterAttributes ();
725 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
726 "Public Class Test1{0}" +
728 " Public Sub New(<A(), B()> ByVal value As Object, <C(A1:=false, A2:=true), D()> ByRef index As Integer){0}" +
731 "End Class{0}", Writer.NewLine), code);
735 public override void BaseConstructorSingleArg ()
737 string code = GenerateBaseConstructor (false);
738 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
739 "Public Class Test1{0}" +
741 " Public Sub New(ByVal value1 As Object, ByRef value2 As Integer){0}" +
742 " MyBase.New(value1){0}" +
744 "End Class{0}", Writer.NewLine), code);
748 public override void BaseConstructorMultipleArgs ()
750 string code = GenerateBaseConstructor (true);
751 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
752 "Public Class Test1{0}" +
754 " Public Sub New(ByVal value1 As Object, ByRef value2 As Integer){0}" +
755 " MyBase.New(value1, value2){0}" +
757 "End Class{0}", Writer.NewLine), code);
761 public override void ChainedConstructorSingleArg ()
763 string code = GenerateChainedConstructor (false);
764 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
765 "Public Class Test1{0}" +
767 " Public Sub New(ByVal value1 As Object, ByRef value2 As Integer){0}" +
768 " Me.New(value1){0}" +
770 "End Class{0}", Writer.NewLine), code);
774 public override void ChainedConstructorMultipleArgs ()
776 string code = GenerateChainedConstructor (true);
777 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
778 "Public Class Test1{0}" +
780 " Public Sub New(ByVal value1 As Object, ByRef value2 As Integer){0}" +
781 " Me.New(value1, value2){0}" +
783 "End Class{0}", Writer.NewLine), code);
787 public override void TypeConstructorTest ()
789 string code = GenerateTypeConstructor ();
790 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
791 "Public Class Test1{0}" +
797 " Shared Sub New(){0}" +
799 "End Class{0}", Writer.NewLine), code);
804 public class CodeGeneratorFromTypeTest_Delegate : CodeGeneratorFromTypeTestBase
806 private CodeTypeDeclaration _typeDeclaration;
807 private ICodeGenerator _codeGenerator;
809 protected override ICodeGenerator CodeGenerator
811 get { return _codeGenerator; }
814 protected override CodeTypeDeclaration TypeDeclaration
816 get { return _typeDeclaration; }
820 public override void SetUp ()
823 _typeDeclaration = new CodeTypeDelegate ();
825 CodeDomProvider provider = new VBCodeProvider ();
826 _codeGenerator = provider.CreateGenerator ();
830 public override void DefaultTypeTest ()
832 string code = GenerateDefaultType ();
833 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
834 "Public Delegate Sub (){0}", Writer.NewLine), code);
838 [ExpectedException (typeof (NullReferenceException))]
839 public override void NullTypeTest ()
845 public override void SimpleTypeTest ()
847 string code = GenerateSimpleType ();
848 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
849 "Public Delegate Sub Test1(){0}", Writer.NewLine), code);
853 public override void DerivedTypeTest ()
855 string code = GenerateDerivedType ();
856 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
857 "Delegate Sub Test1(){0}", Writer.NewLine), code);
861 public override void AttributesAndTypeTest ()
863 CodeTypeDelegate delegateDecl = new CodeTypeDelegate ();
864 delegateDecl.ReturnType = new CodeTypeReference (typeof (int));
866 _typeDeclaration = delegateDecl;
868 string code = GenerateAttributesAndType ();
869 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
872 "Public Delegate Function Test1() As Integer{0}", Writer.NewLine), code);
876 public override void EventMembersTypeTest1 ()
878 string code = GenerateEventMembersType1 ();
879 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
880 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
884 public override void EventMembersTypeTest2 ()
886 string code = GenerateEventMembersType2 ();
887 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
888 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
892 public override void EventImplementationTypes ()
894 string code = GenerateEventImplementationTypes ();
895 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
896 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
900 /// Ensure no access modifiers are output if PrivateImplementationType
904 public override void EventPrivateImplementationType ()
906 string code = GenerateEventPrivateImplementationType ();
907 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
908 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
912 /// If both ImplementationTypes and PrivateImplementationType are set,
913 /// then only ImplementationTypes are output.
916 public override void EventImplementationTypeOrder ()
918 string code = GenerateEventImplementationTypeOrder ();
919 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
920 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
924 public override void FieldMembersTypeTest1 ()
926 string code = GenerateFieldMembersType1 ();
927 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
928 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
932 public override void FieldMembersTypeTest2 ()
934 string code = GenerateFieldMembersType2 ();
935 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
936 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
940 public override void PropertyMembersTypeTest1 ()
942 string code = GeneratePropertyMembersAttributes ();
943 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
944 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
948 public override void PropertyMembersTypeTest2 ()
950 string code = GeneratePropertyMembersType (MemberAttributes.Public,
952 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
953 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
957 public override void PropertyMembersTypeGetOnly ()
959 string code = GeneratePropertyMembersType (MemberAttributes.Family,
961 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
962 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
966 public override void PropertyMembersTypeSetOnly ()
968 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
970 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
971 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
975 public override void PropertyMembersTypeGetSet ()
977 string code = GeneratePropertyMembersType (MemberAttributes.Family,
979 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
980 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
984 public override void PropertyMembersTypeFamilyOrAssembly ()
986 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
988 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
989 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
993 public override void PropertyMembersTypeAssembly ()
995 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
997 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
998 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1002 public override void PropertyParametersTest ()
1004 string code = GeneratePropertyParameters ();
1005 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1006 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1010 public override void PropertyIndexerTest1 ()
1012 string code = GeneratePropertyIndexer (MemberAttributes.Public,
1013 false, false, true);
1014 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1015 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1019 public override void PropertyIndexerTest2 ()
1021 string code = GeneratePropertyIndexer (MemberAttributes.Public,
1022 false, false, false);
1023 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1024 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1028 public override void PropertyIndexerGetOnly ()
1030 string code = GeneratePropertyIndexer (MemberAttributes.Family,
1032 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1033 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1037 public override void PropertyIndexerSetOnly ()
1039 string code = GeneratePropertyIndexer (MemberAttributes.Family,
1041 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1042 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1046 public override void PropertyImplementationTypes ()
1048 string code = GeneratePropertyImplementationTypes ();
1049 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1050 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1054 public override void PropertyOverloadsTest1 ()
1056 string code = GeneratePropertyOverloads1 ();
1057 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1058 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1062 public override void PropertyOverloadsTest2 ()
1064 string code = GeneratePropertyOverloads2 ();
1065 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1066 "Public Delegate Sub Test1(){0}{0}{0}", Writer.NewLine), code);
1070 public override void PropertyOverloadsTest3 ()
1072 string code = GeneratePropertyOverloads3 ();
1073 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1074 "Public Delegate Sub Test1(){0}{0}{0}", Writer.NewLine), code);
1078 public override void PropertyPrivateImplementationType ()
1080 string code = GeneratePropertyPrivateImplementationType ();
1081 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1082 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1086 public override void PropertyImplementationTypeOrder ()
1088 string code = GeneratePropertyImplementationTypeOrder ();
1089 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1090 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1094 public override void MethodMembersTypeTest1 ()
1096 string code = GenerateMethodMembersType1 ();
1097 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1098 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1102 public override void MethodMembersTypeTest2 ()
1104 string code = GenerateMethodMembersType2 ();
1105 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1106 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1110 public override void MethodMembersTypeTest3 ()
1112 string code = GenerateMethodMembersType3 ();
1113 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1114 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1118 public override void MethodImplementationTypes ()
1120 string code = GenerateMethodImplementationTypes ();
1121 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1122 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1126 public override void MethodOverloadsTest1 ()
1128 string code = GenerateMethodOverloads1 ();
1129 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1130 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1134 public override void MethodOverloadsTest2 ()
1136 string code = GenerateMethodOverloads2 ();
1137 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1138 "Public Delegate Sub Test1(){0}{0}{0}", Writer.NewLine), code);
1142 public override void MethodOverloadsTest3 ()
1144 string code = GenerateMethodOverloads3 ();
1145 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1146 "Public Delegate Sub Test1(){0}{0}{0}", Writer.NewLine), code);
1150 public override void MethodPrivateImplementationType ()
1152 string code = GenerateMethodPrivateImplementationType ();
1153 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1154 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1158 public override void MethodImplementationTypeOrder ()
1160 string code = GenerateMethodImplementationTypeOrder ();
1161 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1162 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1166 public override void MethodReturnTypeAttributes ()
1168 string code = GenerateMethodReturnTypeAttributes ();
1169 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1170 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1174 public override void ConstructorAttributesTest ()
1176 string code = GenerateConstructorAttributes ();
1177 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1178 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1182 public override void ConstructorParametersTest ()
1184 string code = GenerateConstructorParameters ();
1185 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1186 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1190 public override void ConstructorParameterAttributesTest ()
1192 string code = GenerateConstructorParameterAttributes ();
1193 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1194 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1198 public override void BaseConstructorSingleArg ()
1200 string code = GenerateBaseConstructor (false);
1201 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1202 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1206 public override void BaseConstructorMultipleArgs ()
1208 string code = GenerateBaseConstructor (true);
1209 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1210 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1214 public override void ChainedConstructorSingleArg ()
1216 string code = GenerateChainedConstructor (false);
1217 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1218 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1222 public override void ChainedConstructorMultipleArgs ()
1224 string code = GenerateChainedConstructor (true);
1225 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1226 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1230 public override void TypeConstructorTest ()
1232 string code = GenerateTypeConstructor ();
1233 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1234 "Public Delegate Sub Test1(){0}{0}", Writer.NewLine), code);
1239 public class CodeGeneratorFromTypeTest_Interface : CodeGeneratorFromTypeTestBase
1241 private CodeTypeDeclaration _typeDeclaration;
1242 private ICodeGenerator _codeGenerator;
1244 protected override ICodeGenerator CodeGenerator
1246 get { return _codeGenerator; }
1249 protected override CodeTypeDeclaration TypeDeclaration
1251 get { return _typeDeclaration; }
1255 public override void SetUp ()
1258 _typeDeclaration = new CodeTypeDeclaration ();
1259 _typeDeclaration.IsInterface = true;
1261 CodeDomProvider provider = new VBCodeProvider ();
1262 _codeGenerator = provider.CreateGenerator ();
1266 public override void DefaultTypeTest ()
1268 string code = GenerateDefaultType ();
1269 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1270 "Public Interface {0}" +
1271 "End Interface{0}", Writer.NewLine), code);
1275 [ExpectedException (typeof (NullReferenceException))]
1276 public override void NullTypeTest ()
1278 GenerateNullType ();
1282 public override void SimpleTypeTest ()
1284 string code = GenerateSimpleType ();
1285 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1286 "Public Interface Test1{0}" +
1287 "End Interface{0}", Writer.NewLine), code);
1291 public override void DerivedTypeTest ()
1293 string code = GenerateDerivedType ();
1294 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1296 "Friend Interface Test1{0}" +
1298 "Interface Test1{0}" +
1300 " Inherits Integer, System.Security.Principal.IIdentity, String, System.Security.IPermission{0}" +
1301 "End Interface{0}", Writer.NewLine), code);
1305 public override void AttributesAndTypeTest ()
1307 string code = GenerateAttributesAndType ();
1308 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1311 "Public Interface Test1{0}" +
1312 "End Interface{0}", Writer.NewLine), code);
1316 public override void EventMembersTypeTest1 ()
1318 string code = GenerateEventMembersType1 ();
1319 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1320 "Public Interface Test1{0}" +
1324 " Private Event As System.Void{0}" +
1325 "End Interface{0}", Writer.NewLine), code);
1329 public override void EventMembersTypeTest2 ()
1331 string code = GenerateEventMembersType2 ();
1332 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1333 "Public Interface Test1{0}" +
1335 " Public Event Click As Integer{0}" +
1336 "End Interface{0}", Writer.NewLine), code);
1340 public override void EventImplementationTypes ()
1342 string code = GenerateEventImplementationTypes ();
1343 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1344 "Public Interface Test1{0}" +
1347 " Friend Event Click As Integer Implements IPolicy.Click , IWhatever.Click{0}" +
1349 " Friend Event Click As Integer{0}" +
1351 "End Interface{0}", Writer.NewLine), code);
1355 public override void EventPrivateImplementationType ()
1357 string code = GenerateEventPrivateImplementationType ();
1358 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1359 "Public Interface Test1{0}" +
1362 " Protected Event System_Int32_Click As Integer Implements Integer.Click{0}" +
1364 " Protected Event Click As Integer{0}" +
1366 "End Interface{0}", Writer.NewLine), code);
1370 public override void EventImplementationTypeOrder ()
1372 string code = GenerateEventImplementationTypeOrder ();
1373 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1374 "Public Interface Test1{0}" +
1377 " Public Event System_Int32_Click As Integer Implements IPolicy.Click{0}" +
1379 " Public Event Click As Integer{0}" +
1381 "End Interface{0}", Writer.NewLine), code);
1385 public override void FieldMembersTypeTest1 ()
1387 string code = GenerateFieldMembersType1 ();
1388 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1389 "Public Interface Test1{0}" +
1391 "End Interface{0}", Writer.NewLine), code);
1395 public override void FieldMembersTypeTest2 ()
1397 string code = GenerateFieldMembersType2 ();
1398 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1399 "Public Interface Test1{0}" +
1401 "End Interface{0}", Writer.NewLine), code);
1405 public override void PropertyMembersTypeTest1 ()
1407 string code = GeneratePropertyMembersAttributes ();
1408 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1409 "Public Interface Test1{0}" +
1414 " Property () As System.Void{0}" +
1416 " Property As System.Void{0}" +
1418 "End Interface{0}", Writer.NewLine), code);
1422 public override void PropertyMembersTypeTest2 ()
1424 string code = GeneratePropertyMembersType (MemberAttributes.Public,
1426 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1427 "Public Interface Test1{0}" +
1430 " Property Name() As Integer{0}" +
1432 " Property Name As Integer{0}" +
1434 "End Interface{0}", Writer.NewLine), code);
1438 public override void PropertyMembersTypeGetOnly ()
1440 string code = GeneratePropertyMembersType (MemberAttributes.Family,
1442 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1443 "Public Interface Test1{0}" +
1446 " ReadOnly Property Name() As Integer{0}" +
1448 " ReadOnly Property Name As Integer{0}" +
1450 "End Interface{0}", Writer.NewLine), code);
1454 public override void PropertyMembersTypeSetOnly ()
1456 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
1458 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1459 "Public Interface Test1{0}" +
1462 " WriteOnly Property Name() As Integer{0}" +
1464 " WriteOnly Property Name As Integer{0}" +
1466 "End Interface{0}", Writer.NewLine), code);
1470 public override void PropertyMembersTypeGetSet ()
1472 string code = GeneratePropertyMembersType (MemberAttributes.Family,
1474 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1475 "Public Interface Test1{0}" +
1478 " Property Name() As Integer{0}" +
1480 " Property Name As Integer{0}" +
1482 "End Interface{0}", Writer.NewLine), code);
1486 public override void PropertyMembersTypeFamilyOrAssembly ()
1488 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
1490 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1491 "Public Interface Test1{0}" +
1494 " Property Name() As Integer{0}" +
1496 " Property Name As Integer{0}" +
1498 "End Interface{0}", Writer.NewLine), code);
1502 public override void PropertyMembersTypeAssembly ()
1504 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
1506 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1507 "Public Interface Test1{0}" +
1510 " Property Name() As Integer{0}" +
1512 " Property Name As Integer{0}" +
1514 "End Interface{0}", Writer.NewLine), code);
1518 public override void PropertyParametersTest ()
1520 string code = GeneratePropertyParameters ();
1521 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1522 "Public Interface Test1{0}" +
1524 " Property Name(ByVal value1 As Object, ByRef value2 As Integer) As Integer{0}" +
1525 "End Interface{0}", Writer.NewLine), code);
1529 public override void PropertyIndexerTest1 ()
1531 string code = GeneratePropertyIndexer (MemberAttributes.Public,
1532 false, false, true);
1533 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1534 "Public Interface Test1{0}" +
1536 " Default Property iTem(ByVal value1 As Object, ByRef value2 As Integer) As Integer{0}" +
1537 "End Interface{0}", Writer.NewLine), code);
1541 public override void PropertyIndexerTest2 ()
1543 string code = GeneratePropertyIndexer (MemberAttributes.Public,
1544 false, false, false);
1545 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1546 "Public Interface Test1{0}" +
1549 " Property iTem() As Integer{0}" +
1551 " Property iTem As Integer{0}" +
1553 "End Interface{0}", Writer.NewLine), code);
1557 public override void PropertyIndexerGetOnly ()
1559 string code = GeneratePropertyIndexer (MemberAttributes.Family,
1561 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1562 "Public Interface Test1{0}" +
1564 " Default ReadOnly Property iTem(ByVal value1 As Object, ByRef value2 As Integer) As Integer{0}" +
1565 "End Interface{0}", Writer.NewLine), code);
1569 public override void PropertyIndexerSetOnly ()
1571 string code = GeneratePropertyIndexer (MemberAttributes.Family,
1573 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1574 "Public Interface Test1{0}" +
1576 " Default WriteOnly Property iTem(ByVal value1 As Object, ByRef value2 As Integer) As Integer{0}" +
1577 "End Interface{0}", Writer.NewLine), code);
1581 public override void PropertyImplementationTypes ()
1583 string code = GeneratePropertyImplementationTypes ();
1584 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1585 "Public Interface Test1{0}" +
1588 " Property Name() As Integer Implements IPolicy.Name , IWhatever.Name{0}" +
1590 " Property Name As Integer Implements IPolicy.Name , IWhatever.Name{0}" +
1592 "End Interface{0}", Writer.NewLine), code);
1596 public override void PropertyOverloadsTest1 ()
1598 string code = GeneratePropertyOverloads1 ();
1599 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1600 "Public Interface Test1{0}" +
1603 " Property Name() As Integer{0}" +
1605 " Property Name As Integer{0}" +
1607 "End Interface{0}", Writer.NewLine), code);
1611 public override void PropertyOverloadsTest2 ()
1613 string code = GeneratePropertyOverloads2 ();
1614 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1615 "Public Interface Test1{0}" +
1618 " Property Name() As Integer{0}" +
1620 " Property Name As Integer{0}" +
1623 " Property Name(ByVal value1 As Object) As Integer{0}" +
1624 "End Interface{0}", Writer.NewLine), code);
1628 public override void PropertyOverloadsTest3 ()
1630 string code = GeneratePropertyOverloads3 ();
1631 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1632 "Public Interface Test1{0}" +
1635 " Property Name() As Integer{0}" +
1637 " Property Name As Integer{0}" +
1640 " Property System_Int32_Name(ByVal value1 As Object) As Integer Implements Integer.Name{0}" +
1641 "End Interface{0}", Writer.NewLine), code);
1645 public override void PropertyPrivateImplementationType ()
1647 string code = GeneratePropertyPrivateImplementationType ();
1648 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1649 "Public Interface Test1{0}" +
1651 " Property System_Int32_Item(ByVal value1 As Object) As Integer Implements Integer.Item{0}" +
1652 "End Interface{0}", Writer.NewLine), code);
1656 public override void PropertyImplementationTypeOrder ()
1658 string code = GeneratePropertyImplementationTypeOrder ();
1659 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1660 "Public Interface Test1{0}" +
1662 " Property System_Int32_Item(ByVal value1 As Object) As Integer Implements IPolicy.Item{0}" +
1663 "End Interface{0}", Writer.NewLine), code);
1667 public override void MethodMembersTypeTest1 ()
1669 string code = GenerateMethodMembersType1 ();
1670 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1671 "Public Interface Test1{0}" +
1676 "End Interface{0}", Writer.NewLine), code);
1680 public override void MethodMembersTypeTest2 ()
1682 string code = GenerateMethodMembersType2 ();
1683 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1684 "Public Interface Test1{0}" +
1686 " Function Something(ByVal value1 As Object, ByVal value2 As Object, ByRef index As Integer, ByRef count As Integer) As Integer{0}" +
1687 "End Interface{0}", Writer.NewLine), code);
1691 public override void MethodMembersTypeTest3 ()
1693 string code = GenerateMethodMembersType3 ();
1694 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1695 "Public Interface Test1{0}" +
1697 " Function Something(<A(), B()> ByVal value As Object, <C(A1:=false, A2:=true), D()> ByRef index As Integer) As Integer{0}" +
1698 "End Interface{0}", Writer.NewLine), code);
1702 public override void MethodImplementationTypes ()
1704 string code = GenerateMethodImplementationTypes ();
1705 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1706 "Public Interface Test1{0}" +
1708 " Function Execute() As Integer Implements IPolicy.Execute , IWhatever.Execute{0}" +
1709 "End Interface{0}", Writer.NewLine), code);
1713 public override void MethodOverloadsTest1 ()
1715 string code = GenerateMethodOverloads1 ();
1716 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1717 "Public Interface Test1{0}" +
1719 " Function Execute() As Integer{0}" +
1720 "End Interface{0}", Writer.NewLine), code);
1724 public override void MethodOverloadsTest2 ()
1726 string code = GenerateMethodOverloads2 ();
1727 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1728 "Public Interface Test1{0}" +
1730 " Sub Execute(){0}" +
1732 " Function Execute(ByVal value1 As Object) As Integer{0}" +
1733 "End Interface{0}", Writer.NewLine), code);
1737 public override void MethodOverloadsTest3 ()
1739 string code = GenerateMethodOverloads3 ();
1740 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1741 "Public Interface Test1{0}" +
1743 " Sub Execute(){0}" +
1745 " Function System_Int32_Execute(ByVal value1 As Object) As Integer Implements Integer.Execute{0}" +
1746 "End Interface{0}", Writer.NewLine), code);
1750 public override void MethodPrivateImplementationType ()
1752 string code = GenerateMethodPrivateImplementationType ();
1753 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1754 "Public Interface Test1{0}" +
1756 " Function System_Int32_Execute(ByVal value1 As Object) As Integer Implements Integer.Execute{0}" +
1757 "End Interface{0}", Writer.NewLine), code);
1761 public override void MethodImplementationTypeOrder ()
1763 string code = GenerateMethodImplementationTypeOrder ();
1764 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1765 "Public Interface Test1{0}" +
1767 " Function System_Int32_Execute(ByVal value1 As Object) As Integer Implements IPolicy.Execute{0}" +
1768 "End Interface{0}", Writer.NewLine), code);
1772 public override void MethodReturnTypeAttributes ()
1774 string code = GenerateMethodReturnTypeAttributes ();
1775 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1776 "Public Interface Test1{0}" +
1780 " Function Execute() As <C(A1:=false, A2:=true), D()> Integer{0}" +
1781 "End Interface{0}", Writer.NewLine), code);
1785 public override void ConstructorAttributesTest ()
1787 string code = GenerateConstructorAttributes ();
1788 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1789 "Public Interface Test1{0}" +
1791 "End Interface{0}", Writer.NewLine), code);
1795 public override void ConstructorParametersTest ()
1797 string code = GenerateConstructorParameters ();
1798 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1799 "Public Interface Test1{0}" +
1801 "End Interface{0}", Writer.NewLine), code);
1805 public override void ConstructorParameterAttributesTest ()
1807 string code = GenerateConstructorParameterAttributes ();
1808 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1809 "Public Interface Test1{0}" +
1811 "End Interface{0}", Writer.NewLine), code);
1815 public override void BaseConstructorSingleArg ()
1817 string code = GenerateBaseConstructor (false);
1818 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1819 "Public Interface Test1{0}" +
1821 "End Interface{0}", Writer.NewLine), code);
1825 public override void BaseConstructorMultipleArgs ()
1827 string code = GenerateBaseConstructor (true);
1828 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1829 "Public Interface Test1{0}" +
1831 "End Interface{0}", Writer.NewLine), code);
1835 public override void ChainedConstructorSingleArg ()
1837 string code = GenerateChainedConstructor (false);
1838 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1839 "Public Interface Test1{0}" +
1841 "End Interface{0}", Writer.NewLine), code);
1845 public override void ChainedConstructorMultipleArgs ()
1847 string code = GenerateChainedConstructor (true);
1848 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1849 "Public Interface Test1{0}" +
1851 "End Interface{0}", Writer.NewLine), code);
1855 public override void TypeConstructorTest ()
1857 string code = GenerateTypeConstructor ();
1858 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1859 "Public Interface Test1{0}" +
1861 "End Interface{0}", Writer.NewLine), code);
1866 public class CodeGeneratorFromTypeTest_Struct : CodeGeneratorFromTypeTestBase
1868 private CodeTypeDeclaration _typeDeclaration;
1869 private ICodeGenerator _codeGenerator;
1871 protected override ICodeGenerator CodeGenerator
1873 get { return _codeGenerator; }
1876 protected override CodeTypeDeclaration TypeDeclaration
1878 get { return _typeDeclaration; }
1882 public override void SetUp ()
1885 _typeDeclaration = new CodeTypeDeclaration ();
1886 _typeDeclaration.IsStruct = true;
1888 CodeDomProvider provider = new VBCodeProvider ();
1889 _codeGenerator = provider.CreateGenerator ();
1893 public override void DefaultTypeTest ()
1895 string code = GenerateDefaultType ();
1896 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1897 "Public Structure {0}" +
1898 "End Structure{0}", Writer.NewLine), code);
1902 [ExpectedException (typeof (NullReferenceException))]
1903 public override void NullTypeTest ()
1905 GenerateNullType ();
1909 public override void SimpleTypeTest ()
1911 string code = GenerateSimpleType ();
1912 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1913 "Public Structure Test1{0}" +
1914 "End Structure{0}", Writer.NewLine), code);
1918 public override void DerivedTypeTest ()
1920 string code = GenerateDerivedType ();
1921 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1923 "Friend Structure Test1{0}" +
1925 "Structure Test1{0}" +
1927 " Implements Integer, System.Security.Principal.IIdentity, String, System.Security.IPermission{0}" +
1928 "End Structure{0}", Writer.NewLine), code);
1932 public override void AttributesAndTypeTest ()
1934 string code = GenerateAttributesAndType ();
1935 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1938 "Public Structure Test1{0}" +
1939 "End Structure{0}", Writer.NewLine), code);
1943 public override void EventMembersTypeTest1 ()
1945 string code = GenerateEventMembersType1 ();
1946 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1947 "Public Structure Test1{0}" +
1951 " Private Event As System.Void{0}" +
1952 "End Structure{0}", Writer.NewLine), code);
1956 public override void EventMembersTypeTest2 ()
1958 string code = GenerateEventMembersType2 ();
1959 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1960 "Public Structure Test1{0}" +
1962 " Public Event Click As Integer{0}" +
1963 "End Structure{0}", Writer.NewLine), code);
1967 public override void EventImplementationTypes ()
1969 string code = GenerateEventImplementationTypes ();
1970 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1971 "Public Structure Test1{0}" +
1974 " Friend Event Click As Integer Implements IPolicy.Click , IWhatever.Click{0}" +
1976 " Friend Event Click As Integer{0}" +
1978 "End Structure{0}", Writer.NewLine), code);
1982 public override void EventPrivateImplementationType ()
1984 string code = GenerateEventPrivateImplementationType ();
1985 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
1986 "Public Structure Test1{0}" +
1989 " Protected Event System_Int32_Click As Integer Implements Integer.Click{0}" +
1991 " Protected Event Click As Integer{0}" +
1993 "End Structure{0}", Writer.NewLine), code);
1997 public override void EventImplementationTypeOrder ()
1999 string code = GenerateEventImplementationTypeOrder ();
2000 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2001 "Public Structure Test1{0}" +
2004 " Public Event System_Int32_Click As Integer Implements IPolicy.Click{0}" +
2006 " Public Event Click As Integer{0}" +
2008 "End Structure{0}", Writer.NewLine), code);
2012 public override void FieldMembersTypeTest1 ()
2014 string code = GenerateFieldMembersType1 ();
2015 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2016 "Public Structure Test1{0}" +
2020 " Private As System.Void{0}" +
2021 "End Structure{0}", Writer.NewLine), code);
2025 public override void FieldMembersTypeTest2 ()
2027 string code = GenerateFieldMembersType2 ();
2028 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2029 "Public Structure Test1{0}" +
2031 " Public Name As Integer = 2{0}" +
2032 "End Structure{0}", Writer.NewLine), code);
2036 public override void PropertyMembersTypeTest1 ()
2038 string code = GeneratePropertyMembersAttributes ();
2039 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2040 "Public Structure Test1{0}" +
2045 " Private Property () As System.Void{0}" +
2047 " Private Property As System.Void{0}" +
2049 " End Property{0}" +
2050 "End Structure{0}", Writer.NewLine), code);
2054 public override void PropertyMembersTypeTest2 ()
2056 string code = GeneratePropertyMembersType (MemberAttributes.Public,
2058 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2059 "Public Structure Test1{0}" +
2062 " Public Overridable Property Name() As Integer{0}" +
2064 " Public Overridable Property Name As Integer{0}" +
2066 " End Property{0}" +
2067 "End Structure{0}", Writer.NewLine), code);
2071 public override void PropertyMembersTypeGetOnly ()
2073 string code = GeneratePropertyMembersType (MemberAttributes.Family,
2075 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2076 "Public Structure Test1{0}" +
2079 " Protected Overridable ReadOnly Property Name() As Integer{0}" +
2081 " Protected Overridable ReadOnly Property Name As Integer{0}" +
2085 " End Property{0}" +
2086 "End Structure{0}", Writer.NewLine), code);
2090 public override void PropertyMembersTypeSetOnly ()
2092 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
2094 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2095 "Public Structure Test1{0}" +
2098 " Friend Overridable WriteOnly Property Name() As Integer{0}" +
2100 " Friend WriteOnly Property Name As Integer{0}" +
2104 " End Property{0}" +
2105 "End Structure{0}", Writer.NewLine), code);
2109 public override void PropertyMembersTypeGetSet ()
2111 string code = GeneratePropertyMembersType (MemberAttributes.Family,
2113 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2114 "Public Structure Test1{0}" +
2117 " Protected Overridable Property Name() As Integer{0}" +
2119 " Protected Overridable Property Name As Integer{0}" +
2125 " End Property{0}" +
2126 "End Structure{0}", Writer.NewLine), code);
2130 // A bug in MS.NET 1.x causes MemberAttributes.FamilyOrAssembly to be
2131 // generated as Protected
2132 [Category ("NotDotNet")]
2135 public override void PropertyMembersTypeFamilyOrAssembly ()
2137 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
2139 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2140 "Public Structure Test1{0}" +
2143 " Protected Friend Property Name() As Integer{0}" +
2145 " Protected Friend Property Name As Integer{0}" +
2147 " End Property{0}" +
2148 "End Structure{0}", Writer.NewLine), code);
2152 public override void PropertyMembersTypeAssembly ()
2154 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
2156 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2157 "Public Structure Test1{0}" +
2160 " Friend Overridable Property Name() As Integer{0}" +
2162 " Friend Property Name As Integer{0}" +
2164 " End Property{0}" +
2165 "End Structure{0}", Writer.NewLine), code);
2169 public override void PropertyParametersTest ()
2171 string code = GeneratePropertyParameters ();
2172 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2173 "Public Structure Test1{0}" +
2175 " Public Overridable Property Name(ByVal value1 As Object, ByRef value2 As Integer) As Integer{0}" +
2176 " End Property{0}" +
2177 "End Structure{0}", Writer.NewLine), code);
2181 public override void PropertyIndexerTest1 ()
2183 string code = GeneratePropertyIndexer (MemberAttributes.Public,
2184 false, false, true);
2185 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2186 "Public Structure Test1{0}" +
2188 " Public Overridable Default Property iTem(ByVal value1 As Object, ByRef value2 As Integer) As Integer{0}" +
2189 " End Property{0}" +
2190 "End Structure{0}", Writer.NewLine), code);
2194 public override void PropertyIndexerTest2 ()
2196 string code = GeneratePropertyIndexer (MemberAttributes.Public,
2197 false, false, false);
2198 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2199 "Public Structure Test1{0}" +
2202 " Public Overridable Property iTem() As Integer{0}" +
2204 " Public Overridable Property iTem As Integer{0}" +
2206 " End Property{0}" +
2207 "End Structure{0}", Writer.NewLine), code);
2211 public override void PropertyIndexerGetOnly ()
2213 string code = GeneratePropertyIndexer (MemberAttributes.Family,
2215 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2216 "Public Structure Test1{0}" +
2218 " Protected Overridable Default ReadOnly Property iTem(ByVal value1 As Object, ByRef value2 As Integer) As Integer{0}" +
2221 " End Property{0}" +
2222 "End Structure{0}", Writer.NewLine), code);
2226 public override void PropertyIndexerSetOnly ()
2228 string code = GeneratePropertyIndexer (MemberAttributes.Family,
2230 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2231 "Public Structure Test1{0}" +
2233 " Protected Overridable Default WriteOnly Property iTem(ByVal value1 As Object, ByRef value2 As Integer) As Integer{0}" +
2236 " End Property{0}" +
2237 "End Structure{0}", Writer.NewLine), code);
2241 public override void PropertyImplementationTypes ()
2243 string code = GeneratePropertyImplementationTypes ();
2244 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2245 "Public Structure Test1{0}" +
2248 " Public Overridable Property Name() As Integer Implements IPolicy.Name , IWhatever.Name{0}" +
2250 " Public Overridable Property Name As Integer Implements IPolicy.Name , IWhatever.Name{0}" +
2252 " End Property{0}" +
2253 "End Structure{0}", Writer.NewLine), code);
2257 public override void PropertyOverloadsTest1 ()
2259 string code = GeneratePropertyOverloads1 ();
2260 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2261 "Public Structure Test1{0}" +
2264 " Public Overloads Overridable Property Name() As Integer{0}" +
2266 " Public Overloads Overridable Property Name As Integer{0}" +
2268 " End Property{0}" +
2269 "End Structure{0}", Writer.NewLine), code);
2273 public override void PropertyOverloadsTest2 ()
2275 string code = GeneratePropertyOverloads2 ();
2276 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2277 "Public Structure Test1{0}" +
2280 " Public Overloads Overridable Property Name() As Integer{0}" +
2282 " Public Overloads Overridable Property Name As Integer{0}" +
2284 " End Property{0}" +
2286 " Private Overloads Property Name(ByVal value1 As Object) As Integer{0}" +
2287 " End Property{0}" +
2288 "End Structure{0}", Writer.NewLine), code);
2292 public override void PropertyOverloadsTest3 ()
2294 string code = GeneratePropertyOverloads3 ();
2295 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2296 "Public Structure Test1{0}" +
2299 " Public Overridable Property Name() As Integer{0}" +
2301 " Public Overridable Property Name As Integer{0}" +
2303 " End Property{0}" +
2305 " Property System_Int32_Name(ByVal value1 As Object) As Integer Implements Integer.Name{0}" +
2306 " End Property{0}" +
2307 "End Structure{0}", Writer.NewLine), code);
2311 public override void PropertyPrivateImplementationType ()
2313 string code = GeneratePropertyPrivateImplementationType ();
2314 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2315 "Public Structure Test1{0}" +
2317 " Overridable Property System_Int32_Item(ByVal value1 As Object) As Integer Implements Integer.Item{0}" +
2318 " End Property{0}" +
2319 "End Structure{0}", Writer.NewLine), code);
2323 public override void PropertyImplementationTypeOrder ()
2325 string code = GeneratePropertyImplementationTypeOrder ();
2326 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2327 "Public Structure Test1{0}" +
2329 " Overridable Property System_Int32_Item(ByVal value1 As Object) As Integer Implements IPolicy.Item{0}" +
2330 " End Property{0}" +
2331 "End Structure{0}", Writer.NewLine), code);
2335 public override void MethodMembersTypeTest1 ()
2337 string code = GenerateMethodMembersType1 ();
2338 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2339 "Public Structure Test1{0}" +
2343 " Private Sub (){0}" +
2345 "End Structure{0}", Writer.NewLine), code);
2349 public override void MethodMembersTypeTest2 ()
2351 string code = GenerateMethodMembersType2 ();
2352 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2353 "Public Structure Test1{0}" +
2355 " Public Overridable Function Something(ByVal value1 As Object, ByVal value2 As Object, ByRef index As Integer, ByRef count As Integer) As Integer{0}" +
2356 " End Function{0}" +
2357 "End Structure{0}", Writer.NewLine), code);
2361 public override void MethodMembersTypeTest3 ()
2363 string code = GenerateMethodMembersType3 ();
2364 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2365 "Public Structure Test1{0}" +
2367 " Public Overridable Function Something(<A(), B()> ByVal value As Object, <C(A1:=false, A2:=true), D()> ByRef index As Integer) As Integer{0}" +
2368 " End Function{0}" +
2369 "End Structure{0}", Writer.NewLine), code);
2373 public override void MethodImplementationTypes ()
2375 string code = GenerateMethodImplementationTypes ();
2376 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2377 "Public Structure Test1{0}" +
2380 " Friend Overridable Function Execute() As Integer Implements IPolicy.Execute , IWhatever.Execute{0}" +
2382 " Friend Function Execute() As Integer Implements IPolicy.Execute , IWhatever.Execute{0}" +
2384 " End Function{0}" +
2385 "End Structure{0}", Writer.NewLine), code);
2389 public override void MethodOverloadsTest1 ()
2391 string code = GenerateMethodOverloads1 ();
2392 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2393 "Public Structure Test1{0}" +
2395 " Public Overloads Overridable Function Execute() As Integer{0}" +
2396 " End Function{0}" +
2397 "End Structure{0}", Writer.NewLine), code);
2401 public override void MethodOverloadsTest2 ()
2403 string code = GenerateMethodOverloads2 ();
2404 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2405 "Public Structure Test1{0}" +
2407 " Public Overloads Overridable Sub Execute(){0}" +
2410 " Private Overloads Function Execute(ByVal value1 As Object) As Integer{0}" +
2411 " End Function{0}" +
2412 "End Structure{0}", Writer.NewLine), code);
2416 public override void MethodOverloadsTest3 ()
2418 string code = GenerateMethodOverloads3 ();
2419 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2420 "Public Structure Test1{0}" +
2422 " Public Overridable Sub Execute(){0}" +
2425 " Function System_Int32_Execute(ByVal value1 As Object) As Integer Implements Integer.Execute{0}" +
2426 " End Function{0}" +
2427 "End Structure{0}", Writer.NewLine), code);
2431 public override void MethodPrivateImplementationType ()
2433 string code = GenerateMethodPrivateImplementationType ();
2434 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2435 "Public Structure Test1{0}" +
2437 " Overridable Function System_Int32_Execute(ByVal value1 As Object) As Integer Implements Integer.Execute{0}" +
2438 " End Function{0}" +
2439 "End Structure{0}", Writer.NewLine), code);
2443 public override void MethodImplementationTypeOrder ()
2445 string code = GenerateMethodImplementationTypeOrder ();
2446 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2447 "Public Structure Test1{0}" +
2449 " Overridable Function System_Int32_Execute(ByVal value1 As Object) As Integer Implements IPolicy.Execute{0}" +
2450 " End Function{0}" +
2451 "End Structure{0}", Writer.NewLine), code);
2455 public override void MethodReturnTypeAttributes ()
2457 string code = GenerateMethodReturnTypeAttributes ();
2458 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2459 "Public Structure Test1{0}" +
2463 " Public Overridable Function Execute() As <C(A1:=false, A2:=true), D()> Integer{0}" +
2464 " End Function{0}" +
2465 "End Structure{0}", Writer.NewLine), code);
2469 public override void ConstructorAttributesTest ()
2471 string code = GenerateConstructorAttributes ();
2472 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2473 "Public Structure Test1{0}" +
2477 " Private Sub New(){0}" +
2482 "End Structure{0}", Writer.NewLine), code);
2486 public override void ConstructorParametersTest ()
2488 string code = GenerateConstructorParameters ();
2489 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2490 "Public Structure Test1{0}" +
2492 " Public Sub New(ByVal value1 As Object, ByVal value2 As Object, ByRef index As Integer, ByRef count As Integer){0}" +
2497 "End Structure{0}", Writer.NewLine), code);
2501 public override void ConstructorParameterAttributesTest ()
2503 string code = GenerateConstructorParameterAttributes ();
2504 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2505 "Public Structure Test1{0}" +
2507 " Public Sub New(<A(), B()> ByVal value As Object, <C(A1:=false, A2:=true), D()> ByRef index As Integer){0}" +
2512 "End Structure{0}", Writer.NewLine), code);
2516 public override void BaseConstructorSingleArg ()
2518 string code = GenerateBaseConstructor (false);
2519 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2520 "Public Structure Test1{0}" +
2522 " Public Sub New(ByVal value1 As Object, ByRef value2 As Integer){0}" +
2523 " MyBase.New(value1){0}" +
2525 "End Structure{0}", Writer.NewLine), code);
2529 public override void BaseConstructorMultipleArgs ()
2531 string code = GenerateBaseConstructor (true);
2532 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2533 "Public Structure Test1{0}" +
2535 " Public Sub New(ByVal value1 As Object, ByRef value2 As Integer){0}" +
2536 " MyBase.New(value1, value2){0}" +
2538 "End Structure{0}", Writer.NewLine), code);
2542 public override void ChainedConstructorSingleArg ()
2544 string code = GenerateChainedConstructor (false);
2545 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2546 "Public Structure Test1{0}" +
2548 " Public Sub New(ByVal value1 As Object, ByRef value2 As Integer){0}" +
2549 " Me.New(value1){0}" +
2551 "End Structure{0}", Writer.NewLine), code);
2555 public override void ChainedConstructorMultipleArgs ()
2557 string code = GenerateChainedConstructor (true);
2558 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2559 "Public Structure Test1{0}" +
2561 " Public Sub New(ByVal value1 As Object, ByRef value2 As Integer){0}" +
2562 " Me.New(value1, value2){0}" +
2564 "End Structure{0}", Writer.NewLine), code);
2568 public override void TypeConstructorTest ()
2570 string code = GenerateTypeConstructor ();
2571 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2572 "Public Structure Test1{0}" +
2578 " Shared Sub New(){0}" +
2580 "End Structure{0}", Writer.NewLine), code);
2585 public class CodeGeneratorFromTypeTest_Enum : CodeGeneratorFromTypeTestBase
2587 private CodeTypeDeclaration _typeDeclaration;
2588 private ICodeGenerator _codeGenerator;
2590 protected override ICodeGenerator CodeGenerator
2592 get { return _codeGenerator; }
2595 protected override CodeTypeDeclaration TypeDeclaration
2597 get { return _typeDeclaration; }
2601 public override void SetUp ()
2604 _typeDeclaration = new CodeTypeDeclaration ();
2605 _typeDeclaration.IsEnum = true;
2607 CodeDomProvider provider = new VBCodeProvider ();
2608 _codeGenerator = provider.CreateGenerator ();
2612 public override void DefaultTypeTest ()
2614 string code = GenerateDefaultType ();
2615 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2617 "End Enum{0}", Writer.NewLine), code);
2621 [ExpectedException (typeof (NullReferenceException))]
2622 public override void NullTypeTest ()
2624 GenerateNullType ();
2628 public override void SimpleTypeTest ()
2630 string code = GenerateSimpleType ();
2631 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2632 "Public Enum Test1{0}" +
2633 "End Enum{0}", Writer.NewLine), code);
2637 public override void DerivedTypeTest ()
2639 string code = GenerateDerivedType ();
2640 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2642 "Friend Enum Test1 As Integer{0}" +
2644 "Enum Test1 As Integer{0}" +
2646 "End Enum{0}", Writer.NewLine), code);
2650 public override void AttributesAndTypeTest ()
2652 string code = GenerateAttributesAndType ();
2653 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2656 "Public Enum Test1{0}" +
2657 "End Enum{0}", Writer.NewLine), code);
2661 public override void EventMembersTypeTest1 ()
2663 string code = GenerateEventMembersType1 ();
2664 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2665 "Public Enum Test1{0}" +
2667 "End Enum{0}", Writer.NewLine), code);
2671 public override void EventMembersTypeTest2 ()
2673 string code = GenerateEventMembersType2 ();
2674 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2675 "Public Enum Test1{0}" +
2677 "End Enum{0}", Writer.NewLine), code);
2681 public override void EventImplementationTypes ()
2683 string code = GenerateEventImplementationTypes ();
2684 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2685 "Public Enum Test1{0}" +
2687 "End Enum{0}", Writer.NewLine), code);
2691 public override void EventPrivateImplementationType ()
2693 string code = GenerateEventPrivateImplementationType ();
2694 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2695 "Public Enum Test1{0}" +
2697 "End Enum{0}", Writer.NewLine), code);
2701 public override void EventImplementationTypeOrder ()
2703 string code = GenerateEventImplementationTypeOrder ();
2704 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2705 "Public Enum Test1{0}" +
2707 "End Enum{0}", Writer.NewLine), code);
2711 public override void FieldMembersTypeTest1 ()
2713 string code = GenerateFieldMembersType1 ();
2714 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2715 "Public Enum Test1{0}" +
2720 "End Enum{0}", Writer.NewLine), code);
2724 public override void FieldMembersTypeTest2 ()
2726 string code = GenerateFieldMembersType2 ();
2727 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2728 "Public Enum Test1{0}" +
2731 "End Enum{0}", Writer.NewLine), code);
2735 public override void PropertyMembersTypeTest1 ()
2737 string code = GeneratePropertyMembersAttributes ();
2738 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2739 "Public Enum Test1{0}" +
2741 "End Enum{0}", Writer.NewLine), code);
2745 public override void PropertyMembersTypeTest2 ()
2747 string code = GeneratePropertyMembersType (MemberAttributes.Public,
2749 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2750 "Public Enum Test1{0}" +
2752 "End Enum{0}", Writer.NewLine), code);
2756 public override void PropertyMembersTypeGetOnly ()
2758 string code = GeneratePropertyMembersType (MemberAttributes.Family,
2760 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2761 "Public Enum Test1{0}" +
2763 "End Enum{0}", Writer.NewLine), code);
2767 public override void PropertyMembersTypeSetOnly ()
2769 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
2771 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2772 "Public Enum Test1{0}" +
2774 "End Enum{0}", Writer.NewLine), code);
2778 public override void PropertyMembersTypeGetSet ()
2780 string code = GeneratePropertyMembersType (MemberAttributes.Family,
2782 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2783 "Public Enum Test1{0}" +
2785 "End Enum{0}", Writer.NewLine), code);
2789 public override void PropertyMembersTypeFamilyOrAssembly ()
2791 string code = GeneratePropertyMembersType (MemberAttributes.FamilyOrAssembly,
2793 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2794 "Public Enum Test1{0}" +
2796 "End Enum{0}", Writer.NewLine), code);
2800 public override void PropertyMembersTypeAssembly ()
2802 string code = GeneratePropertyMembersType (MemberAttributes.Assembly,
2804 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2805 "Public Enum Test1{0}" +
2807 "End Enum{0}", Writer.NewLine), code);
2811 public override void PropertyParametersTest ()
2813 string code = GeneratePropertyParameters ();
2814 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2815 "Public Enum Test1{0}" +
2817 "End Enum{0}", Writer.NewLine), code);
2821 public override void PropertyIndexerTest1 ()
2823 string code = GeneratePropertyIndexer (MemberAttributes.Public,
2824 false, false, true);
2825 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2826 "Public Enum Test1{0}" +
2828 "End Enum{0}", Writer.NewLine), code);
2832 public override void PropertyIndexerTest2 ()
2834 string code = GeneratePropertyIndexer (MemberAttributes.Public,
2835 false, false, false);
2836 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2837 "Public Enum Test1{0}" +
2839 "End Enum{0}", Writer.NewLine), code);
2843 public override void PropertyIndexerGetOnly ()
2845 string code = GeneratePropertyIndexer (MemberAttributes.Family,
2847 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2848 "Public Enum Test1{0}" +
2850 "End Enum{0}", Writer.NewLine), code);
2854 public override void PropertyIndexerSetOnly ()
2856 string code = GeneratePropertyIndexer (MemberAttributes.Family,
2858 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2859 "Public Enum Test1{0}" +
2861 "End Enum{0}", Writer.NewLine), code);
2865 public override void PropertyImplementationTypes ()
2867 string code = GeneratePropertyImplementationTypes ();
2868 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2869 "Public Enum Test1{0}" +
2871 "End Enum{0}", Writer.NewLine), code);
2875 public override void PropertyOverloadsTest1 ()
2877 string code = GeneratePropertyOverloads1 ();
2878 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2879 "Public Enum Test1{0}" +
2881 "End Enum{0}", Writer.NewLine), code);
2885 public override void PropertyOverloadsTest2 ()
2887 string code = GeneratePropertyOverloads2 ();
2888 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2889 "Public Enum Test1{0}" +
2892 "End Enum{0}", Writer.NewLine), code);
2896 public override void PropertyOverloadsTest3 ()
2898 string code = GeneratePropertyOverloads3 ();
2899 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2900 "Public Enum Test1{0}" +
2903 "End Enum{0}", Writer.NewLine), code);
2907 public override void PropertyPrivateImplementationType ()
2909 string code = GeneratePropertyPrivateImplementationType ();
2910 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2911 "Public Enum Test1{0}" +
2913 "End Enum{0}", Writer.NewLine), code);
2917 public override void PropertyImplementationTypeOrder ()
2919 string code = GeneratePropertyImplementationTypeOrder ();
2920 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2921 "Public Enum Test1{0}" +
2923 "End Enum{0}", Writer.NewLine), code);
2927 public override void MethodMembersTypeTest1 ()
2929 string code = GenerateMethodMembersType1 ();
2930 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2931 "Public Enum Test1{0}" +
2933 "End Enum{0}", Writer.NewLine), code);
2937 public override void MethodMembersTypeTest2 ()
2939 string code = GenerateMethodMembersType2 ();
2940 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2941 "Public Enum Test1{0}" +
2943 "End Enum{0}", Writer.NewLine), code);
2947 public override void MethodMembersTypeTest3 ()
2949 string code = GenerateMethodMembersType3 ();
2950 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2951 "Public Enum Test1{0}" +
2953 "End Enum{0}", Writer.NewLine), code);
2957 public override void MethodImplementationTypes ()
2959 string code = GenerateMethodImplementationTypes ();
2960 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2961 "Public Enum Test1{0}" +
2963 "End Enum{0}", Writer.NewLine), code);
2967 public override void MethodOverloadsTest1 ()
2969 string code = GenerateMethodOverloads1 ();
2970 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2971 "Public Enum Test1{0}" +
2973 "End Enum{0}", Writer.NewLine), code);
2977 public override void MethodOverloadsTest2 ()
2979 string code = GenerateMethodOverloads2 ();
2980 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2981 "Public Enum Test1{0}" +
2984 "End Enum{0}", Writer.NewLine), code);
2988 public override void MethodOverloadsTest3 ()
2990 string code = GenerateMethodOverloads3 ();
2991 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
2992 "Public Enum Test1{0}" +
2995 "End Enum{0}", Writer.NewLine), code);
2999 public override void MethodPrivateImplementationType ()
3001 string code = GenerateMethodPrivateImplementationType ();
3002 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3003 "Public Enum Test1{0}" +
3005 "End Enum{0}", Writer.NewLine), code);
3009 public override void MethodImplementationTypeOrder ()
3011 string code = GenerateMethodImplementationTypeOrder ();
3012 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3013 "Public Enum Test1{0}" +
3015 "End Enum{0}", Writer.NewLine), code);
3019 public override void MethodReturnTypeAttributes ()
3021 string code = GenerateMethodReturnTypeAttributes ();
3022 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3023 "Public Enum Test1{0}" +
3025 "End Enum{0}", Writer.NewLine), code);
3029 public override void ConstructorAttributesTest ()
3031 string code = GenerateConstructorAttributes ();
3032 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3033 "Public Enum Test1{0}" +
3035 "End Enum{0}", Writer.NewLine), code);
3039 public override void ConstructorParametersTest ()
3041 string code = GenerateConstructorParameters ();
3042 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3043 "Public Enum Test1{0}" +
3045 "End Enum{0}", Writer.NewLine), code);
3049 public override void ConstructorParameterAttributesTest ()
3051 string code = GenerateConstructorParameterAttributes ();
3052 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3053 "Public Enum Test1{0}" +
3055 "End Enum{0}", Writer.NewLine), code);
3059 public override void BaseConstructorSingleArg ()
3061 string code = GenerateBaseConstructor (false);
3062 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3063 "Public Enum Test1{0}" +
3065 "End Enum{0}", Writer.NewLine), code);
3069 public override void BaseConstructorMultipleArgs ()
3071 string code = GenerateBaseConstructor (true);
3072 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3073 "Public Enum Test1{0}" +
3075 "End Enum{0}", Writer.NewLine), code);
3079 public override void ChainedConstructorSingleArg ()
3081 string code = GenerateChainedConstructor (false);
3082 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3083 "Public Enum Test1{0}" +
3085 "End Enum{0}", Writer.NewLine), code);
3089 public override void ChainedConstructorMultipleArgs ()
3091 string code = GenerateChainedConstructor (true);
3092 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3093 "Public Enum Test1{0}" +
3095 "End Enum{0}", Writer.NewLine), code);
3099 public override void TypeConstructorTest ()
3101 string code = GenerateTypeConstructor ();
3102 Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
3103 "Public Enum Test1{0}" +
3105 "End Enum{0}", Writer.NewLine), code);