github.com/evdatsion/aphelion-dpos-bft@v0.32.1/rpc/core/pipe_test.go (about)

     1  package core
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestPaginationPage(t *testing.T) {
    11  
    12  	cases := []struct {
    13  		totalCount int
    14  		perPage    int
    15  		page       int
    16  		newPage    int
    17  	}{
    18  		{0, 0, 1, 1},
    19  
    20  		{0, 10, 0, 1},
    21  		{0, 10, 1, 1},
    22  		{0, 10, 2, 1},
    23  
    24  		{5, 10, -1, 1},
    25  		{5, 10, 0, 1},
    26  		{5, 10, 1, 1},
    27  		{5, 10, 2, 1},
    28  		{5, 10, 2, 1},
    29  
    30  		{5, 5, 1, 1},
    31  		{5, 5, 2, 1},
    32  		{5, 5, 3, 1},
    33  
    34  		{5, 3, 2, 2},
    35  		{5, 3, 3, 2},
    36  
    37  		{5, 2, 2, 2},
    38  		{5, 2, 3, 3},
    39  		{5, 2, 4, 3},
    40  	}
    41  
    42  	for _, c := range cases {
    43  		p := validatePage(c.page, c.perPage, c.totalCount)
    44  		assert.Equal(t, c.newPage, p, fmt.Sprintf("%v", c))
    45  	}
    46  
    47  }
    48  
    49  func TestPaginationPerPage(t *testing.T) {
    50  	cases := []struct {
    51  		totalCount int
    52  		perPage    int
    53  		newPerPage int
    54  	}{
    55  		{5, 0, defaultPerPage},
    56  		{5, 1, 1},
    57  		{5, 2, 2},
    58  		{5, defaultPerPage, defaultPerPage},
    59  		{5, maxPerPage - 1, maxPerPage - 1},
    60  		{5, maxPerPage, maxPerPage},
    61  		{5, maxPerPage + 1, maxPerPage},
    62  	}
    63  
    64  	for _, c := range cases {
    65  		p := validatePerPage(c.perPage)
    66  		assert.Equal(t, c.newPerPage, p, fmt.Sprintf("%v", c))
    67  	}
    68  }