Skip to content

Commit fda0685

Browse files
Extract operator member tests to own class
1 parent 6a59b3e commit fda0685

File tree

2 files changed

+213
-203
lines changed

2 files changed

+213
-203
lines changed

Tests/CSharp/MemberTests/MemberTests.cs

Lines changed: 0 additions & 203 deletions
Original file line numberDiff line numberDiff line change
@@ -691,209 +691,6 @@ public void CreateVirtualInstance(object o)
691691
}");
692692
}
693693

694-
[Fact]
695-
public async Task TestNarrowingWideningConversionOperatorAsync()
696-
{
697-
await TestConversionVisualBasicToCSharpAsync(@"Public Class MyInt
698-
Public Shared Narrowing Operator CType(i As Integer) As MyInt
699-
Return New MyInt()
700-
End Operator
701-
Public Shared Widening Operator CType(myInt As MyInt) As Integer
702-
Return 1
703-
End Operator
704-
End Class"
705-
, @"
706-
public partial class MyInt
707-
{
708-
public static explicit operator MyInt(int i)
709-
{
710-
return new MyInt();
711-
}
712-
713-
public static implicit operator int(MyInt myInt)
714-
{
715-
return 1;
716-
}
717-
}");
718-
}
719-
720-
[Fact]
721-
public async Task OperatorOverloadsAsync()
722-
{
723-
// Note a couple map to the same thing in C# so occasionally the result won't compile. The user can manually decide what to do in such scenarios.
724-
await TestConversionVisualBasicToCSharpAsync(@"Public Class AcmeClass
725-
Public Shared Operator +(i As Integer, ac As AcmeClass) As AcmeClass
726-
Return ac
727-
End Operator
728-
Public Shared Operator &(s As String, ac As AcmeClass) As AcmeClass
729-
Return ac
730-
End Operator
731-
Public Shared Operator -(i As Integer, ac As AcmeClass) As AcmeClass
732-
Return ac
733-
End Operator
734-
Public Shared Operator Not(ac As AcmeClass) As AcmeClass
735-
Return ac
736-
End Operator
737-
Public Shared Operator *(i As Integer, ac As AcmeClass) As AcmeClass
738-
Return ac
739-
End Operator
740-
Public Shared Operator /(i As Integer, ac As AcmeClass) As AcmeClass
741-
Return ac
742-
End Operator
743-
Public Shared Operator \(i As Integer, ac As AcmeClass) As AcmeClass
744-
Return ac
745-
End Operator
746-
Public Shared Operator Mod(s As String, ac As AcmeClass) As AcmeClass
747-
Return ac
748-
End Operator
749-
Public Shared Operator <<(ac As AcmeClass, i As Integer) As AcmeClass
750-
Return ac
751-
End Operator
752-
Public Shared Operator >>(ac As AcmeClass, i As Integer) As AcmeClass
753-
Return ac
754-
End Operator
755-
Public Shared Operator =(s As String, ac As AcmeClass) As AcmeClass
756-
Return ac
757-
End Operator
758-
Public Shared Operator <>(s As String, ac As AcmeClass) As AcmeClass
759-
Return ac
760-
End Operator
761-
Public Shared Operator <(s As String, ac As AcmeClass) As AcmeClass
762-
Return ac
763-
End Operator
764-
Public Shared Operator >(s As String, ac As AcmeClass) As AcmeClass
765-
Return ac
766-
End Operator
767-
Public Shared Operator <=(s As String, ac As AcmeClass) As AcmeClass
768-
Return ac
769-
End Operator
770-
Public Shared Operator >=(s As String, ac As AcmeClass) As AcmeClass
771-
Return ac
772-
End Operator
773-
Public Shared Operator And(s As String, ac As AcmeClass) As AcmeClass
774-
Return ac
775-
End Operator
776-
Public Shared Operator Or(s As String, ac As AcmeClass) As AcmeClass
777-
Return ac
778-
End Operator
779-
End Class", @"
780-
public partial class AcmeClass
781-
{
782-
public static AcmeClass operator +(int i, AcmeClass ac)
783-
{
784-
return ac;
785-
}
786-
787-
public static AcmeClass operator +(string s, AcmeClass ac)
788-
{
789-
return ac;
790-
}
791-
792-
public static AcmeClass operator -(int i, AcmeClass ac)
793-
{
794-
return ac;
795-
}
796-
797-
public static AcmeClass operator !(AcmeClass ac)
798-
{
799-
return ac;
800-
}
801-
802-
public static AcmeClass operator *(int i, AcmeClass ac)
803-
{
804-
return ac;
805-
}
806-
807-
public static AcmeClass operator /(int i, AcmeClass ac)
808-
{
809-
return ac;
810-
}
811-
812-
public static AcmeClass operator /(int i, AcmeClass ac)
813-
{
814-
return ac;
815-
}
816-
817-
public static AcmeClass operator %(string s, AcmeClass ac)
818-
{
819-
return ac;
820-
}
821-
822-
public static AcmeClass operator <<(AcmeClass ac, int i)
823-
{
824-
return ac;
825-
}
826-
827-
public static AcmeClass operator >>(AcmeClass ac, int i)
828-
{
829-
return ac;
830-
}
831-
832-
public static AcmeClass operator ==(string s, AcmeClass ac)
833-
{
834-
return ac;
835-
}
836-
837-
public static AcmeClass operator !=(string s, AcmeClass ac)
838-
{
839-
return ac;
840-
}
841-
842-
public static AcmeClass operator <(string s, AcmeClass ac)
843-
{
844-
return ac;
845-
}
846-
847-
public static AcmeClass operator >(string s, AcmeClass ac)
848-
{
849-
return ac;
850-
}
851-
852-
public static AcmeClass operator <=(string s, AcmeClass ac)
853-
{
854-
return ac;
855-
}
856-
857-
public static AcmeClass operator >=(string s, AcmeClass ac)
858-
{
859-
return ac;
860-
}
861-
862-
public static AcmeClass operator &(string s, AcmeClass ac)
863-
{
864-
return ac;
865-
}
866-
867-
public static AcmeClass operator |(string s, AcmeClass ac)
868-
{
869-
return ac;
870-
}
871-
}
872-
1 target compilation errors:
873-
CS0111: Type 'AcmeClass' already defines a member called 'op_Division' with the same parameter types");
874-
}
875-
876-
[Fact]// The stack trace displayed will change from time to time. Feel free to update this characterization test appropriately.
877-
public async Task OperatorOverloadsWithNoCSharpEquivalentShowErrorInlineCharacterizationAsync()
878-
{
879-
// No valid conversion to C# - to implement this you'd need to create a new method, and convert all callers to use it.
880-
var convertedCode = await ConvertAsync<VBToCSConversion>(@"Public Class AcmeClass
881-
Public Shared Operator ^(i As Integer, ac As AcmeClass) As AcmeClass
882-
Return ac
883-
End Operator
884-
Public Shared Operator Like(s As String, ac As AcmeClass) As AcmeClass
885-
Return ac
886-
End Operator
887-
End Class");
888-
889-
Assert.Contains("Cannot convert", convertedCode);
890-
Assert.Contains("#error", convertedCode);
891-
Assert.Contains("_failedMemberConversionMarker1", convertedCode);
892-
Assert.Contains("Public Shared Operator ^(i As Integer,", convertedCode);
893-
Assert.Contains("_failedMemberConversionMarker2", convertedCode);
894-
Assert.Contains("Public Shared Operator Like(s As String,", convertedCode);
895-
}
896-
897694
[Fact]
898695
public async Task ClassWithGloballyQualifiedAttributeAsync()
899696
{

0 commit comments

Comments
 (0)