...

Source file src/go.einride.tech/aip/pagination/request_test.go

Documentation: go.einride.tech/aip/pagination

     1  package pagination
     2  
     3  import (
     4  	"testing"
     5  
     6  	freightv1 "go.einride.tech/aip/proto/gen/einride/example/freight/v1"
     7  	"google.golang.org/genproto/googleapis/example/library/v1"
     8  	"gotest.tools/v3/assert"
     9  )
    10  
    11  func TestCalculateRequestChecksum(t *testing.T) {
    12  	t.Parallel()
    13  	for _, tt := range []struct {
    14  		name     string
    15  		request1 Request
    16  		request2 Request
    17  		equal    bool
    18  	}{
    19  		{
    20  			name: "same request",
    21  			request1: &library.ListBooksRequest{
    22  				Parent:    "shelves/1",
    23  				PageSize:  100,
    24  				PageToken: "token",
    25  			},
    26  			request2: &library.ListBooksRequest{
    27  				Parent:    "shelves/1",
    28  				PageSize:  100,
    29  				PageToken: "token",
    30  			},
    31  			equal: true,
    32  		},
    33  		{
    34  			name: "different parents",
    35  			request1: &library.ListBooksRequest{
    36  				Parent:    "shelves/1",
    37  				PageSize:  100,
    38  				PageToken: "token",
    39  			},
    40  			request2: &library.ListBooksRequest{
    41  				Parent:    "shelves/2",
    42  				PageSize:  100,
    43  				PageToken: "token",
    44  			},
    45  			equal: false,
    46  		},
    47  		{
    48  			name: "different page sizes",
    49  			request1: &library.ListBooksRequest{
    50  				Parent:    "shelves/1",
    51  				PageSize:  100,
    52  				PageToken: "token",
    53  			},
    54  			request2: &library.ListBooksRequest{
    55  				Parent:    "shelves/1",
    56  				PageSize:  200,
    57  				PageToken: "token",
    58  			},
    59  			equal: true,
    60  		},
    61  		{
    62  			name: "different page tokens",
    63  			request1: &library.ListBooksRequest{
    64  				Parent:    "shelves/1",
    65  				PageSize:  100,
    66  				PageToken: "token",
    67  			},
    68  			request2: &library.ListBooksRequest{
    69  				Parent:    "shelves/1",
    70  				PageSize:  100,
    71  				PageToken: "token2",
    72  			},
    73  			equal: true,
    74  		},
    75  		{
    76  			name: "different skips",
    77  			request1: &freightv1.ListSitesRequest{
    78  				Parent:   "shippers/1",
    79  				PageSize: 100,
    80  				Skip:     0,
    81  			},
    82  			request2: &freightv1.ListSitesRequest{
    83  				Parent:   "shippers/1",
    84  				PageSize: 100,
    85  				Skip:     30,
    86  			},
    87  			equal: true,
    88  		},
    89  	} {
    90  		tt := tt
    91  		t.Run(tt.name, func(t *testing.T) {
    92  			t.Parallel()
    93  			checksum1, err := calculateRequestChecksum(tt.request1)
    94  			assert.NilError(t, err)
    95  			checksum2, err := calculateRequestChecksum(tt.request2)
    96  			assert.NilError(t, err)
    97  			if tt.equal {
    98  				assert.Assert(t, checksum1 == checksum2)
    99  			} else {
   100  				assert.Assert(t, checksum1 != checksum2)
   101  			}
   102  		})
   103  	}
   104  }
   105  

View as plain text