16534: Add example API.
[arvados.git] / lib / controller / example / controller_test.go
diff --git a/lib/controller/example/controller_test.go b/lib/controller/example/controller_test.go
new file mode 100644 (file)
index 0000000..be0f4da
--- /dev/null
@@ -0,0 +1,58 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+package example
+
+import (
+       "context"
+       "testing"
+
+       "git.arvados.org/arvados.git/lib/config"
+       "git.arvados.org/arvados.git/sdk/go/arvados"
+       "git.arvados.org/arvados.git/sdk/go/arvadostest"
+       "git.arvados.org/arvados.git/sdk/go/ctxlog"
+       check "gopkg.in/check.v1"
+)
+
+// Gocheck boilerplate
+func Test(t *testing.T) {
+       check.TestingT(t)
+}
+
+var _ = check.Suite(&ExampleSuite{})
+
+type ExampleSuite struct {
+       ctrl     *Controller
+       ctx      context.Context
+       rollback func()
+}
+
+func (s *ExampleSuite) SetUpTest(c *check.C) {
+       cfg, err := config.NewLoader(nil, ctxlog.TestLogger(c)).Load()
+       c.Assert(err, check.IsNil)
+       cluster, err := cfg.GetCluster("")
+       c.Assert(err, check.IsNil)
+       s.ctx, s.rollback = arvadostest.TransactionContext(c, arvadostest.DB(c, cluster))
+       s.ctrl = New(cluster)
+}
+
+func (s *ExampleSuite) TearDownTest(c *check.C) {
+       if s.rollback != nil {
+               s.rollback()
+               s.rollback = nil
+       }
+}
+
+func (s *ExampleSuite) TestCount(c *check.C) {
+       resp, err := s.ctrl.ExampleCount(s.ctx, arvados.ExampleCountOptions{})
+       c.Check(err, check.IsNil)
+       c.Check(resp.Count, check.Equals, 29)
+}
+
+func (s *ExampleSuite) TestGet(c *check.C) {
+       resp, err := s.ctrl.ExampleGet(s.ctx, arvados.GetOptions{UUID: "alice"})
+       c.Check(err, check.IsNil)
+       c.Check(resp.UUID, check.Equals, "alice")
+       c.Check(resp.HairStyle, check.Equals, "bob")
+}