public void CalculateEdgeRange_IfBeforeIsOutOfRange_SilentlyUsesTotalCountAsBoundary(int edgeCount, int afterOffset) { var range = RelayPagination.CalculateEdgeRange(edgeCount, before: OffsetToCursor(afterOffset)); Assert.Equal(edgeCount - 1, range.EndOffset); }
public void CalculateEdgeRange_IfBeforeIsProvided_ReturnsAllEdgesBeforeArgument() { var range = RelayPagination.CalculateEdgeRange(10, before: OffsetToCursor(5)); Assert.Equal(0, range.StartOffset); Assert.Equal(4, range.EndOffset); }
public void CalculateEdgeRange_IfAfterIsProvided_ReturnsAllEdgesAfterArgument() { var range = RelayPagination.CalculateEdgeRange(10, after: OffsetToCursor(5)); Assert.Equal(6, range.StartOffset); Assert.Equal(9, range.EndOffset); }
public void CalculateEdgeRange_IfFirstIsNegative_ThrowsException() { var ex = Assert.Throws <ArgumentOutOfRangeException>(() => RelayPagination.CalculateEdgeRange(10, first: -1)); Assert.Equal("first", ex.ParamName); }
public void CalculateEdgeRange_IfNoPaginationArgumentsAreProvided_ReturnsFullRange() { var range = RelayPagination.CalculateEdgeRange(10); Assert.Equal(0, range.StartOffset); Assert.Equal(9, range.EndOffset); }
public void CalculateEdgeRange_IfAfterIsAtBeginning_ReturnsAllButTheFirstEdge() { var range = RelayPagination.CalculateEdgeRange(10, after: OffsetToCursor(0)); Assert.Equal(1, range.StartOffset); Assert.Equal(9, range.EndOffset); Assert.Equal(9, range.Count); }
public void CalculateEdgeRange_IfFirstAndLastAreProvide_AppliesFirstThenLast() { var range = RelayPagination.CalculateEdgeRange(20, first: 10, last: 5); Assert.Equal(5, range.Count); Assert.Equal(5, range.StartOffset); Assert.Equal(9, range.EndOffset); }
public void CalculateEdgeRange_IfLastIsProvided_LimitsRangeLength() { var range = RelayPagination.CalculateEdgeRange(20, last: 10); Assert.Equal(10, range.Count); Assert.Equal(10, range.StartOffset); Assert.Equal(19, range.EndOffset); }
public void CalculateEdgeRange_IfBeforeIsAtTheEnd_ReturnsAllButTheLastEdge() { var range = RelayPagination.CalculateEdgeRange(10, before: OffsetToCursor(9)); Assert.Equal(0, range.StartOffset); Assert.Equal(8, range.EndOffset); Assert.Equal(9, range.Count); }
public void CalculateEdgeRange_IfSelectedRangeHasOneElement_ReturnsRangeOfSingleEdge() { var range = RelayPagination.CalculateEdgeRange(10, after: OffsetToCursor(4), before: OffsetToCursor(6)); Assert.Equal(5, range.StartOffset); Assert.Equal(5, range.EndOffset); Assert.Equal(1, range.Count); Assert.False(range.IsEmpty); }
public void CalculateEdgeRange_IfSelectedRangeIsEmpty_ReturnsEmptyRange() { var range = RelayPagination.CalculateEdgeRange(10, after: OffsetToCursor(4), before: OffsetToCursor(5)); Assert.Equal(5, range.StartOffset); Assert.Equal(4, range.EndOffset); Assert.Equal(0, range.Count); Assert.True(range.IsEmpty); }
public void CalculateEdgeRange_IfBeforeIsAtBeginning_ReturnsEmptyRange() { var range = RelayPagination.CalculateEdgeRange(10, before: OffsetToCursor(0)); Assert.Equal(0, range.StartOffset); Assert.Equal(-1, range.EndOffset); Assert.Equal(0, range.Count); Assert.True(range.IsEmpty); }
public void CalculateEdgeRange_IfAfterIsAtTheEnd_ReturnsEmptyResult() { var range = RelayPagination.CalculateEdgeRange(10, after: OffsetToCursor(9)); Assert.Equal(10, range.StartOffset); Assert.Equal(9, range.EndOffset); Assert.Equal(0, range.Count); Assert.True(range.IsEmpty); }
public void CalculateEdgeRange_IfAllParametersAreProvided_CalculatesCorrectPagination( int count, int?afterOffset, int?beforeOffset, int?first, int?last, int expectedStart, int expectedEnd) { var range = RelayPagination.CalculateEdgeRange(count, first: first, last: last, after: afterOffset == null ? null : OffsetToCursor(afterOffset.Value), before: beforeOffset == null ? null : OffsetToCursor(beforeOffset.Value)); Assert.Equal(expectedStart, range.StartOffset); Assert.Equal(expectedEnd, range.EndOffset); }
public void CalculateEdgeRange_IfCountIsEmpty_ReturnsEmptyRange() { var range = RelayPagination.CalculateEdgeRange(0); Assert.Equal(-1, range.EndOffset); }
public void CalculateEdgeRange_IfAfterIsOutOfRange_SilentlyUses0AsBoundary(int edgeCount, int afterOffset) { var range = RelayPagination.CalculateEdgeRange(edgeCount, after: OffsetToCursor(afterOffset)); Assert.Equal(0, range.StartOffset); }