} else { apps.Resources = append(apps.Resources, AppModel{Entity: EntityModel{Name: "app4", State: "STARTED"}}) *retVal = []string{marshal(apps)} } return nil } }) It("follows and curl the next url", func() { args := []string{ts.Port(), "list-apps"} session, err := gexec.Start(exec.Command(validPluginPath, args...), GinkgoWriter, GinkgoWriter) session.Wait() Expect(err).NotTo(HaveOccurred()) Expect(rpcHandlers.CallCoreCommandCallCount()).To(Equal(2)) params, _ := rpcHandlers.CallCoreCommandArgsForCall(0) Expect(params[1]).To(Equal("v2/apps")) params, _ = rpcHandlers.CallCoreCommandArgsForCall(1) Expect(params[1]).To(Equal("v2/apps?page=2")) }) It("traverses through all pages and list all the apps", func() { args := []string{ts.Port(), "list-apps"} session, err := gexec.Start(exec.Command(validPluginPath, args...), GinkgoWriter, GinkgoWriter) session.Wait() Expect(err).NotTo(HaveOccurred()) Expect(session).To(gbytes.Say("app1")) Expect(session).To(gbytes.Say("app2")) Expect(session).To(gbytes.Say("app3")) Expect(session).To(gbytes.Say("app4"))