diff --git a/bluemix/configuration/core_config/bx_config.go b/bluemix/configuration/core_config/bx_config.go index 2e39d39..907740f 100644 --- a/bluemix/configuration/core_config/bx_config.go +++ b/bluemix/configuration/core_config/bx_config.go @@ -770,7 +770,7 @@ func (c *bxConfig) ClearPaginationURLs() { }) } -func (c *bxConfig) AddPaginationURL(index int, url string) error { +func (c *bxConfig) AddPaginationURL(index int, url string) { urls := c.PaginationURLs() urls = append(urls, models.PaginationURL{ @@ -781,7 +781,6 @@ func (c *bxConfig) AddPaginationURL(index int, url string) error { // sort by last index for easier retrieval sort.Sort(models.ByLastIndex(urls)) c.SetPaginationURLs(urls) - return nil } func (c *bxConfig) PaginationURLs() (paginationURLs []models.PaginationURL) { diff --git a/bluemix/configuration/core_config/bx_config_test.go b/bluemix/configuration/core_config/bx_config_test.go index 3f45115..7a65474 100644 --- a/bluemix/configuration/core_config/bx_config_test.go +++ b/bluemix/configuration/core_config/bx_config_test.go @@ -476,7 +476,6 @@ func TestPaginationURLs(t *testing.T) { paginationURLs := config.PaginationURLs() assert.Empty(t, paginationURLs) - // update session expected := []models.PaginationURL{ { NextURL: "https://api.example.com?token=dd3784000d9744acb2a23ad121a7bb4b", @@ -494,6 +493,40 @@ func TestPaginationURLs(t *testing.T) { } +func TestAddPaginationURL(t *testing.T) { + config := prepareConfigForCLI(`{}`, t) + assert := assert.New(t) + unsortedUrls := []models.PaginationURL{ + { + NextURL: "/v2/example.com/stuff?limit=200", + LastIndex: 200, + }, + { + NextURL: "/v2/example.com/stuff?limit=100", + LastIndex: 50, + }, + { + NextURL: "/v2/example.com/stuff?limit=100", + LastIndex: 100, + }, + } + + for _, p := range unsortedUrls { + config.AddPaginationURL(p.LastIndex, p.NextURL) + } + + // expect url to be sorted in ascending order by LastIndex + sortedUrls := config.PaginationURLs() + + assert.Equal(3, len(sortedUrls)) + assert.Equal(sortedUrls[0].LastIndex, unsortedUrls[1].LastIndex) + assert.Equal(sortedUrls[0].NextURL, unsortedUrls[1].NextURL) + assert.Equal(sortedUrls[1].LastIndex, unsortedUrls[2].LastIndex) + assert.Equal(sortedUrls[1].NextURL, unsortedUrls[2].NextURL) + assert.Equal(sortedUrls[2].LastIndex, unsortedUrls[0].LastIndex) + assert.Equal(sortedUrls[2].NextURL, unsortedUrls[0].NextURL) +} + func checkUsageStats(enabled bool, timeStampExist bool, config core_config.Repository, t *testing.T) { assert.Equal(t, config.UsageStatsEnabled(), enabled) assert.Equal(t, config.UsageStatsEnabledLastUpdate().IsZero(), !timeStampExist) diff --git a/bluemix/configuration/core_config/repository.go b/bluemix/configuration/core_config/repository.go index f65252e..8c035e6 100644 --- a/bluemix/configuration/core_config/repository.go +++ b/bluemix/configuration/core_config/repository.go @@ -128,7 +128,7 @@ type Repository interface { SetPaginationURLs(paginationURLs []models.PaginationURL) ClearPaginationURLs() - AddPaginationURL(lastIndex int, nextURL string) error + AddPaginationURL(lastIndex int, nextURL string) PaginationURLs() []models.PaginationURL } @@ -377,8 +377,8 @@ func (c repository) PaginationURLs() []models.PaginationURL { return c.bxConfig.PaginationURLs() } -func (c repository) AddPaginationURL(index int, url string) error { - return c.bxConfig.AddPaginationURL(index, url) +func (c repository) AddPaginationURL(index int, url string) { + c.bxConfig.AddPaginationURL(index, url) } func (c repository) SetPaginationURLs(paginationURLs []models.PaginationURL) { diff --git a/common/rest/request_test.go b/common/rest/request_test.go index 726ff81..c147ec8 100644 --- a/common/rest/request_test.go +++ b/common/rest/request_test.go @@ -179,33 +179,3 @@ func TestCachedPaginationNextURL(t *testing.T) { }) } } - -func TestAddPaginationURL(t *testing.T) { - config := testhelpers.NewFakeCoreConfig() - assert := assert.New(t) - unsortedUrls := []models.PaginationURL{ - { - NextURL: "/v2/example.com/stuff?limit=200", - LastIndex: 200, - }, - { - NextURL: "/v2/example.com/stuff?limit=100", - LastIndex: 100, - }, - } - - var err error - for _, p := range unsortedUrls { - err = config.AddPaginationURL(p.LastIndex, p.NextURL) - assert.Nil(err) - } - - // expect url to be sorted in ascending order by LastIndex - sortedUrls := config.PaginationURLs() - - assert.Equal(2, len(sortedUrls)) - assert.Equal(sortedUrls[0].LastIndex, unsortedUrls[1].LastIndex) - assert.Equal(sortedUrls[0].NextURL, unsortedUrls[1].NextURL) - assert.Equal(sortedUrls[1].LastIndex, unsortedUrls[0].LastIndex) - assert.Equal(sortedUrls[1].NextURL, unsortedUrls[0].NextURL) -}