/// <summary> /// Creates a well formed <see cref="PagedEnumerableNavigation"/> object that can be used without throwing exceptions. /// </summary> /// <returns>A well formed <see cref="PagedEnumerableNavigation"/> object.</returns> internal static PagedEnumerableNavigation WellFormed() { PagedEnumerableNavigation navigation; navigation = PagedEnumerableNavigationBuilder.Create() .WithFirstPageNumber(0) .WithCurrentPageNumber(1) .WithLastPageNumber(1) .Build(); return(navigation); }
public void Given_a_positive_input_When_WithCurrentPageNumber_is_called_Then_CurrentPageNumber_should_equal_input() { // Arrange. int input = 1; var builder = PagedEnumerableNavigationBuilder.Create(); // Act. builder = builder.WithCurrentPageNumber(input); // Assert. builder.CurrentPageNumber.Should().Be(input); }
public void Given_no_inputs_When_Create_is_called_Then_defaults_are_set() { // Arrange. PagedEnumerableNavigationBuilder builder; // Act. builder = PagedEnumerableNavigationBuilder.Create(); // Assert. builder.FirstPageNumber.Should().Be(0); builder.CurrentPageNumber.Should().Be(0); builder.LastPageNumber.Should().Be(0); }
public void Given_a_null_builder_When_Create_is_called_Then_an_ArgumentNullException_should_be_thrown() { // Arrange. PagedEnumerableNavigationBuilder builder = null; // Act. Action testCode = () => PagedEnumerableNavigation.Create(builder); // Assert. testCode.Should() .Throw <ArgumentNullException>() .WithMessage("*cannot be null*builder*"); }
public void Given_a_negative_input_When_WithLastPageNumber_is_called_Then_an_ArgumentOutOfRangeException_should_be_thrown() { // Arrange. int input = -1; var builder = PagedEnumerableNavigationBuilder.Create(); // Act. Action testCode = () => builder.WithLastPageNumber(input); // Assert. testCode .Should() .Throw <ArgumentOutOfRangeException>() .WithMessage("*lastPageNumber cannot be negative*"); }
public void Given_CurrentPageNumber_is_equal_to_FirstPageNumber_Then_HasPreviousPage_should_be_false() { // Arrange. int firstPageNumber = 0; int currentPageNumber = 0; int lastPageNumber = 0; var navigation = PagedEnumerableNavigationBuilder .Create() .WithFirstPageNumber(firstPageNumber) .WithCurrentPageNumber(currentPageNumber) .WithLastPageNumber(lastPageNumber) .Build(); // Assert. navigation.HasPreviousPage.Should().BeFalse(); }
public void Given_a_builder_with_CurrentPageNumber_greater_than_LastPageNumber_When_Create_is_called_Then_an_ArgumentOutOfRangeException_should_be_thrown() { // Arrange. var builder = PagedEnumerableNavigationBuilder .Create() .WithFirstPageNumber(0) .WithCurrentPageNumber(2) .WithLastPageNumber(1); // Act. Action testCode = () => PagedEnumerableNavigation.Create(builder); // Assert. testCode.Should() .Throw <ArgumentOutOfRangeException>() .WithMessage("*CurrentPageNumber* must be less than *LastPageNumber*"); }
public void Given_CurrentPageNumber_is_less_than_LastPageNumber_Then_HasNextPage_should_be_true() { // Arrange. int firstPageNumber = 0; int currentPageNumber = 1; int lastPageNumber = 2; var navigation = PagedEnumerableNavigationBuilder .Create() .WithFirstPageNumber(firstPageNumber) .WithCurrentPageNumber(currentPageNumber) .WithLastPageNumber(lastPageNumber) .Build(); // Assert. navigation.HasNextPage.Should().BeTrue(); }
public void Given_CurrentPageNumber_is_equal_to_LastPageNumber_Then_NextPageNumber_should_be_null() { // Arrange. int firstPageNumber = 0; int currentPageNumber = 0; int lastPageNumber = 0; var navigation = PagedEnumerableNavigationBuilder .Create() .WithFirstPageNumber(firstPageNumber) .WithCurrentPageNumber(currentPageNumber) .WithLastPageNumber(lastPageNumber) .Build(); // Assert. navigation.NextPageNumber.Should().BeNull(); }
public void Given_CurrentPageNumber_is_less_than_LastPageNumber_Then_NextPageNumber_should_be_CurrentPageNumber_plus_one() { // Arrange. int firstPageNumber = 0; int currentPageNumber = 1; int lastPageNumber = 2; int currentPageNumberPlusOne = currentPageNumber + 1; var navigation = PagedEnumerableNavigationBuilder .Create() .WithFirstPageNumber(firstPageNumber) .WithCurrentPageNumber(currentPageNumber) .WithLastPageNumber(lastPageNumber) .Build(); // Assert. navigation.NextPageNumber.Should().Be(currentPageNumberPlusOne); }
public void Given_CurrentPageNumber_is_greater_than_FirstPageNumber_Then_PreviousPageNumber_should_be_CurrentPageNumber_minus_one() { // Arrange. int firstPageNumber = 0; int currentPageNumber = 1; int lastPageNumber = 1; int currentPageNumberMinusOne = currentPageNumber - 1; var navigation = PagedEnumerableNavigationBuilder .Create() .WithFirstPageNumber(firstPageNumber) .WithCurrentPageNumber(currentPageNumber) .WithLastPageNumber(lastPageNumber) .Build(); // Assert. navigation.PreviousPageNumber.Should().Be(currentPageNumberMinusOne); }
public void Given_valid_inputs_When_Build_is_called_Then_a_matching_PagedEnumerableNavigation_object_should_be_created() { // Arrange. int firstPageNumber = 0; int currentPageNumber = 1; int lastPageNumber = 2; PagedEnumerableNavigation navigation; // Act. navigation = PagedEnumerableNavigationBuilder .Create() .WithFirstPageNumber(firstPageNumber) .WithCurrentPageNumber(currentPageNumber) .WithLastPageNumber(lastPageNumber) .Build(); // Assert. navigation.FirstPageNumber.Should().Be(firstPageNumber); navigation.CurrentPageNumber.Should().Be(currentPageNumber); navigation.LastPageNumber.Should().Be(lastPageNumber); }
public void Given_valid_input_When_WithNavigation_is_called_Then_Navigation_will_be_set() { // Arrange. PagedEnumerableNavigation validInput; validInput = PagedEnumerableNavigationBuilder.Create() .WithCurrentPageNumber(1) .WithLastPageNumber(10) .Build(); PagedEnumerableMetadataBuilder builder = PagedEnumerableMetadataBuilder.Create(); PagedEnumerableMetadata metadata; // Act. metadata = builder.WithNavigation(validInput) .Build(); // Assert. metadata.Navigation.Should() .BeEquivalentTo(validInput); }