Skip to content

Commit 3b21a94

Browse files
committed
Adding test for issue icsharpcode#1157 for assignment operators of parameterized properties
1 parent abea701 commit 3b21a94

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

Tests/CSharp/MemberTests/PropertyMemberTests.cs

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,92 @@ public int this[double index]
479479
}");
480480
}
481481

482+
[Fact]
483+
public async Task TestParameterizedPropertyAssignmentOperatorsAsync()
484+
{
485+
await TestConversionVisualBasicToCSharpAsync(@"
486+
Public Class TestClass
487+
Private _items As Integer() = New Integer() {1}
488+
Public Property Item(index As Integer) As Integer
489+
Get
490+
Return _items(index)
491+
End Get
492+
Set(value As Integer)
493+
_items(index) = value
494+
End Set
495+
End Property
496+
497+
Private _strItems As String() = New String() {""Hello""}
498+
Public Property StrItem(index As Integer) As String
499+
Get
500+
Return _strItems(index)
501+
End Get
502+
Set(value As String)
503+
_strItems(index) = value
504+
End Set
505+
End Property
506+
507+
Public Sub AllAssignmentOperators()
508+
Item(0) += 2
509+
Item(0) *= 2
510+
Item(0) ^= 2
511+
Item(0) /= 2
512+
Item(0) -= 2
513+
Item(0) \= 2
514+
Item(0) <<= 2
515+
Item(0) >>= 2
516+
StrItem(0) &= "" World""
517+
518+
Item(0) = Item(0) + 2
519+
Item(0) = Item(0) * 2
520+
Item(0) = Item(0) ^ 2
521+
Item(0) = Item(0) / 2
522+
Item(0) = Item(0) - 2
523+
Item(0) = Item(0) \ 2
524+
Item(0) = Item(0) << 2
525+
Item(0) = Item(0) >> 2
526+
StrItem(0) = StrItem(0) & "" World""
527+
End Sub
528+
End Class", @"
529+
using System;
530+
531+
public partial class TestClass
532+
{
533+
private int[] _items = new int[] { 1 };
534+
public int get_Item(int index)
535+
{
536+
return _items[index];
537+
}
538+
public void set_Item(int index, int value)
539+
{
540+
_items[index] = value;
541+
}
542+
543+
private string[] _strItems = new string[] { ""Hello"" };
544+
public string get_StrItem(int index)
545+
{
546+
return _strItems[index];
547+
}
548+
public void set_StrItem(int index, string value)
549+
{
550+
_strItems[index] = value;
551+
}
552+
553+
public void AllAssignmentOperators()
554+
{
555+
set_Item(0, get_Item(0) + 2);
556+
set_Item(0, get_Item(0) * 2);
557+
set_Item(0, (int)Math.Round(Math.Pow(get_Item(0), 2d)));
558+
set_Item(0, (int)Math.Round(get_Item(0) / 2d));
559+
set_Item(0, get_Item(0) - 2);
560+
set_Item(0, get_Item(0) / 2);
561+
set_Item(0, get_Item(0) << 2);
562+
set_Item(0, get_Item(0) >> 2);
563+
set_StrItem(0, get_StrItem(0) + "" World"");
564+
}
565+
}");
566+
}
567+
482568
[Fact]
483569
public async Task TestWriteOnlyPropertiesAsync()
484570
{

0 commit comments

Comments
 (0)