public void Where() { var dbSmall = new FakeDbReader <int>(1, 2, 3, 4); Assert.Equal(new [] { 1, 2 }, dbSmall.Where(x => x <= 2).ToImmutableArray()); Assert.Equal(new int[0], dbSmall.Where(x => x > 10).ToImmutableArray()); Assert.Equal(new int[0], dbSmall.Where(x => x <= 2).Where(x => x > 2).ToImmutableArray()); var dbLarge = new FakeDbReader <int>(Enumerable.Range(1, 10_000)); Assert.Equal(new [] { 1, 2 }, dbLarge.Where(x => x <= 2).ToImmutableArray()); Assert.Equal(dbLarge.Count - 2, dbLarge.Where(x => x > 2).ToImmutableArray().Length); }
public void FirstOrDefault() { var dbEmpty = new FakeDbReader <int>(); Assert.Null(dbEmpty.FirstOrDefault()); Assert.Null(dbEmpty.ReverseView.FirstOrDefault()); var dbSmall = new FakeDbReader <int>(1, 2, 3, 4); Assert.Equal(1, dbSmall.FirstOrDefault()); Assert.Equal(4, dbSmall.ReverseView.FirstOrDefault()); Assert.Null(dbSmall.Where(x => false).FirstOrDefault()); Assert.Null(dbSmall.ReverseView.Where(x => false).FirstOrDefault()); var dbLarge = new FakeDbReader <int>(Enumerable.Range(1, 10_000)); Assert.Equal(1, dbLarge.FirstOrDefault()); Assert.Equal(10_000, dbLarge.ReverseView.FirstOrDefault()); Assert.Null(dbLarge.Where(x => false).FirstOrDefault()); Assert.Null(dbLarge.ReverseView.Where(x => false).FirstOrDefault()); }