Skip to content

Commit 9a64454

Browse files
committed
ElementAtAsync code coverage.
1 parent c210b3f commit 9a64454

File tree

1 file changed

+35
-7
lines changed
  • Ix.NET/Source/System.Linq.Async.Tests/System/Linq/Operators

1 file changed

+35
-7
lines changed

Ix.NET/Source/System.Linq.Async.Tests/System/Linq/Operators/ElementAt.cs

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace Tests
1313
public class ElementAt : AsyncEnumerableTests
1414
{
1515
[Fact]
16-
public async Task ElementAt_Null()
16+
public async Task ElementAtAsync_Null()
1717
{
1818
await Assert.ThrowsAsync<ArgumentNullException>(() => AsyncEnumerable.ElementAtAsync<int>(default, 0).AsTask());
1919
await Assert.ThrowsAsync<ArgumentOutOfRangeException>(() => AsyncEnumerable.ElementAtAsync(Return42, -1).AsTask());
@@ -23,42 +23,70 @@ public async Task ElementAt_Null()
2323
}
2424

2525
[Fact]
26-
public async Task ElementAt1Async()
26+
public async Task ElementAtAsync_Empty_Index0()
2727
{
2828
var res = AsyncEnumerable.Empty<int>().ElementAtAsync(0);
2929
await AssertThrowsAsync<ArgumentOutOfRangeException>(res.AsTask());
3030
}
3131

3232
[Fact]
33-
public async Task ElementAt2Async()
33+
public async Task ElementAtAsync_Single_Index0()
3434
{
3535
var res = Return42.ElementAtAsync(0);
3636
Assert.Equal(42, await res);
3737
}
3838

3939
[Fact]
40-
public async Task ElementAt3Async()
40+
public async Task ElementAtAsync_Single_Index1()
4141
{
4242
var res = Return42.ElementAtAsync(1);
4343
await AssertThrowsAsync<ArgumentOutOfRangeException>(res.AsTask());
4444
}
4545

4646
[Fact]
47-
public async Task ElementAt4Async()
47+
public async Task ElementAtAsync_Many_IList_InRange()
4848
{
4949
var res = new[] { 1, 42, 3 }.ToAsyncEnumerable().ElementAtAsync(1);
5050
Assert.Equal(42, await res);
5151
}
5252

5353
[Fact]
54-
public async Task ElementAt5Async()
54+
public async Task ElementAtAsync_Many_IList_OutOfRange()
5555
{
5656
var res = new[] { 1, 42, 3 }.ToAsyncEnumerable().ElementAtAsync(7);
5757
await AssertThrowsAsync<ArgumentOutOfRangeException>(res.AsTask());
5858
}
5959

6060
[Fact]
61-
public async Task ElementAt6Async()
61+
public async Task ElementAtAsync_Many_IPartition_InRange()
62+
{
63+
var res = new[] { -1, 1, 42, 3 }.ToAsyncEnumerable().Skip(1).ElementAtAsync(1);
64+
Assert.Equal(42, await res);
65+
}
66+
67+
[Fact]
68+
public async Task ElementAtAsync_Many_IPartition_OutOfRange()
69+
{
70+
var res = new[] { -1, 1, 42, 3 }.ToAsyncEnumerable().Skip(1).ElementAtAsync(7);
71+
await AssertThrowsAsync<ArgumentOutOfRangeException>(res.AsTask());
72+
}
73+
74+
[Fact]
75+
public async Task ElementAtAsync_Many_InRange()
76+
{
77+
var res = new[] { 1, 42, 3 }.ToAsyncEnumerable().Select(x => x).ElementAtAsync(1);
78+
Assert.Equal(42, await res);
79+
}
80+
81+
[Fact]
82+
public async Task ElementAtAsync_Many_OutOfRange()
83+
{
84+
var res = new[] { 1, 42, 3 }.ToAsyncEnumerable().Select(x => x).ElementAtAsync(7);
85+
await AssertThrowsAsync<ArgumentOutOfRangeException>(res.AsTask());
86+
}
87+
88+
[Fact]
89+
public async Task ElementAtAsync_Throws_Source()
6290
{
6391
var ex = new Exception("Bang!");
6492
var res = Throw<int>(ex).ElementAtAsync(15);

0 commit comments

Comments
 (0)