Merge branch '15107-google-login'
[arvados.git] / lib / controller / federation / list_test.go
index b28609c2d5e961ea2c38188c9f13e91f941bc87f..c9b981fc15fed27d5fb75131894a2cff6cd77a41 100644 (file)
@@ -59,14 +59,14 @@ func (s *FederationSuite) SetUpTest(c *check.C) {
        s.fed = New(s.cluster)
 }
 
-func (s *FederationSuite) addDirectRemote(c *check.C, id string, backend arvados.API) {
+func (s *FederationSuite) addDirectRemote(c *check.C, id string, backend backend) {
        s.cluster.RemoteClusters[id] = arvados.RemoteCluster{
                Host: "in-process.local",
        }
        s.fed.remotes[id] = backend
 }
 
-func (s *FederationSuite) addHTTPRemote(c *check.C, id string, backend arvados.API) {
+func (s *FederationSuite) addHTTPRemote(c *check.C, id string, backend backend) {
        srv := httpserver.Server{Addr: ":"}
        srv.Handler = router.New(backend)
        c.Check(srv.Start(), check.IsNil)
@@ -117,6 +117,9 @@ func (cl *collectionLister) CollectionList(ctx context.Context, options arvados.
                if cl.MaxPageSize > 0 && len(resp.Items) >= cl.MaxPageSize {
                        break
                }
+               if options.Limit >= 0 && len(resp.Items) >= options.Limit {
+                       break
+               }
                if cl.matchFilters(c, options.Filters) {
                        resp.Items = append(resp.Items, c)
                }
@@ -173,6 +176,15 @@ type listTrial struct {
        expectStatus int
 }
 
+func (s *CollectionListSuite) TestCollectionListNoUUIDFilters(c *check.C) {
+       s.test(c, listTrial{
+               count:       "none",
+               limit:       1,
+               expectUUIDs: []string{s.uuids[0][0]},
+               expectCalls: []int{1, 0, 0},
+       })
+}
+
 func (s *CollectionListSuite) TestCollectionListOneLocal(c *check.C) {
        s.test(c, listTrial{
                count:       "none",
@@ -433,6 +445,6 @@ func (s *CollectionListSuite) test(c *check.C, trial listTrial) {
                        continue
                }
                opts := calls[0].Options.(arvados.ListOptions)
-               c.Check(opts.Limit, check.Equals, -1)
+               c.Check(opts.Limit, check.Equals, trial.limit)
        }
 }