e67323c43dc807995ff61e477610834b95baa75c
[arvados.git] / lib / controller / example / controller_test.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 package example
6
7 import (
8         "context"
9         "testing"
10
11         "git.arvados.org/arvados.git/lib/config"
12         "git.arvados.org/arvados.git/sdk/go/arvados"
13         "git.arvados.org/arvados.git/sdk/go/arvadostest"
14         "git.arvados.org/arvados.git/sdk/go/ctxlog"
15         check "gopkg.in/check.v1"
16 )
17
18 // Gocheck boilerplate
19 func Test(t *testing.T) {
20         check.TestingT(t)
21 }
22
23 var _ = check.Suite(&ExampleSuite{})
24
25 type ExampleSuite struct {
26         ctrl     *Controller
27         ctx      context.Context
28         stub     *arvadostest.APIStub
29         rollback func()
30 }
31
32 func (s *ExampleSuite) SetUpTest(c *check.C) {
33         cfg, err := config.NewLoader(nil, ctxlog.TestLogger(c)).Load()
34         c.Assert(err, check.IsNil)
35         cluster, err := cfg.GetCluster("")
36         c.Assert(err, check.IsNil)
37         s.ctx, s.rollback = arvadostest.TransactionContext(c, arvadostest.DB(c, cluster))
38         s.stub = &arvadostest.APIStub{}
39         s.ctrl = New(cluster, s.stub)
40 }
41
42 func (s *ExampleSuite) TearDownTest(c *check.C) {
43         if s.rollback != nil {
44                 s.rollback()
45                 s.rollback = nil
46         }
47 }
48
49 func (s *ExampleSuite) TestCount(c *check.C) {
50         resp, err := s.ctrl.ExampleCount(s.ctx, arvados.ExampleCountOptions{})
51         c.Check(err, check.IsNil)
52         c.Check(resp.Count, check.Equals, 29)
53         c.Check(s.stub.Calls(s.stub.UserList), check.HasLen, 1)
54 }
55
56 func (s *ExampleSuite) TestGet(c *check.C) {
57         resp, err := s.ctrl.ExampleGet(s.ctx, arvados.GetOptions{UUID: "alice"})
58         c.Check(err, check.IsNil)
59         c.Check(resp.UUID, check.Equals, "alice")
60         c.Check(resp.HairStyle, check.Equals, "bob")
61         c.Check(s.stub.Calls(s.stub.UserList), check.HasLen, 0)
62 }