2021-10-22 22:40:03 +02:00
|
|
|
package http
|
2018-07-13 16:20:05 +02:00
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
2021-03-22 16:50:08 +01:00
|
|
|
|
|
|
|
"github.com/alice-lg/alice-lg/pkg/api"
|
2018-07-13 16:20:05 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestApiRoutesPagination(t *testing.T) {
|
|
|
|
routes := api.Routes{
|
2023-01-18 15:42:48 +01:00
|
|
|
&api.Route{Network: "r01"},
|
|
|
|
&api.Route{Network: "r02"},
|
|
|
|
&api.Route{Network: "r03"},
|
|
|
|
&api.Route{Network: "r04"},
|
|
|
|
&api.Route{Network: "r05"},
|
|
|
|
&api.Route{Network: "r06"},
|
|
|
|
&api.Route{Network: "r07"},
|
|
|
|
&api.Route{Network: "r08"},
|
|
|
|
&api.Route{Network: "r09"},
|
|
|
|
&api.Route{Network: "r10"},
|
2018-07-13 16:20:05 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
paginated, pagination := apiPaginateRoutes(routes, 0, 8)
|
|
|
|
|
|
|
|
if pagination.TotalPages != 2 {
|
|
|
|
t.Error("Expected total pages to be 2, got:", pagination.TotalPages)
|
|
|
|
}
|
|
|
|
|
|
|
|
if pagination.TotalResults != 10 {
|
|
|
|
t.Error("Expected total results to be 10, got:", pagination.TotalResults)
|
|
|
|
}
|
|
|
|
|
|
|
|
if pagination.Page != 0 {
|
|
|
|
t.Error("Exptected current page to be 0, got:", pagination.Page)
|
|
|
|
}
|
|
|
|
|
|
|
|
// Check paginated slicing
|
|
|
|
r := paginated[0]
|
2023-01-18 15:42:48 +01:00
|
|
|
if r.Network != "r01" {
|
|
|
|
t.Error("First route on page 0 should be r01, got:", r.Network)
|
2018-07-13 16:20:05 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
r = paginated[len(paginated)-1]
|
2023-01-18 15:42:48 +01:00
|
|
|
if r.Network != "r08" {
|
|
|
|
t.Error("Last route should be r08, but got:", r.Network)
|
2018-07-13 16:20:05 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// Second page
|
|
|
|
paginated, _ = apiPaginateRoutes(routes, 1, 8)
|
|
|
|
if len(paginated) != 2 {
|
|
|
|
t.Error("There should be 2 routes left on page 1, got:", len(paginated))
|
|
|
|
}
|
|
|
|
|
|
|
|
r = paginated[0]
|
2023-01-18 15:42:48 +01:00
|
|
|
if r.Network != "r09" {
|
|
|
|
t.Error("First route on page 1 should be r09, got:", r.Network)
|
2018-07-13 16:20:05 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
r = paginated[len(paginated)-1]
|
2023-01-18 15:42:48 +01:00
|
|
|
if r.Network != "r10" {
|
|
|
|
t.Error("Last route should be r10, but got:", r.Network)
|
2018-07-13 16:20:05 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// Access out of bound page
|
|
|
|
paginated, _ = apiPaginateRoutes(routes, 1000, 8)
|
|
|
|
if len(paginated) > 0 {
|
|
|
|
t.Error("There should be nothing on this page")
|
|
|
|
}
|
|
|
|
}
|