15003: Add 'arvados-server dump-config' command.
[arvados.git] / lib / config / cmd_test.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 package config
6
7 import (
8         "bytes"
9
10         check "gopkg.in/check.v1"
11 )
12
13 var _ = check.Suite(&CommandSuite{})
14
15 type CommandSuite struct{}
16
17 func (s *CommandSuite) TestBadArg(c *check.C) {
18         var stderr bytes.Buffer
19         code := DumpCommand.RunCommand("arvados dump-config", []string{"-badarg"}, bytes.NewBuffer(nil), bytes.NewBuffer(nil), &stderr)
20         c.Check(code, check.Equals, 2)
21         c.Check(stderr.String(), check.Matches, `(?ms)usage: .*`)
22 }
23
24 func (s *CommandSuite) TestEmptyInput(c *check.C) {
25         var stdout, stderr bytes.Buffer
26         code := DumpCommand.RunCommand("arvados dump-config", nil, &bytes.Buffer{}, &stdout, &stderr)
27         c.Check(code, check.Equals, 1)
28         c.Check(stderr.String(), check.Matches, `config does not define any clusters\n`)
29 }
30
31 func (s *CommandSuite) TestUnknownKey(c *check.C) {
32         var stdout, stderr bytes.Buffer
33         in := `
34 Clusters:
35  z1234:
36   UnknownKey: foobar
37   ManagementToken: secret
38 `
39         code := DumpCommand.RunCommand("arvados dump-config", nil, bytes.NewBufferString(in), &stdout, &stderr)
40         c.Check(code, check.Equals, 0)
41         c.Check(stdout.String(), check.Matches, `(?ms)Clusters:\n  z1234:\n.*`)
42         c.Check(stdout.String(), check.Matches, `(?ms).*\n *ManagementToken: secret\n.*`)
43         c.Check(stdout.String(), check.Not(check.Matches), `(?ms).*UnknownKey.*`)
44 }