1// +build !consulent
2
3package config
4
5import (
6	"os"
7	"testing"
8
9	"github.com/hashicorp/consul/sdk/testutil"
10)
11
12func TestSegments(t *testing.T) {
13	dataDir := testutil.TempDir(t, "consul")
14	defer os.RemoveAll(dataDir)
15
16	tests := []configTest{
17		{
18			desc: "segment name not in OSS",
19			args: []string{
20				`-data-dir=` + dataDir,
21			},
22			json: []string{`{ "server": true, "segment": "a" }`},
23			hcl:  []string{` server = true segment = "a" `},
24			err:  `Network segments are not supported in this version of Consul`,
25			warns: []string{
26				enterpriseConfigKeyError{key: "segment"}.Error(),
27			},
28		},
29		{
30			desc: "segment port must be set",
31			args: []string{
32				`-data-dir=` + dataDir,
33			},
34			json: []string{`{ "segments":[{ "name":"x" }] }`},
35			hcl:  []string{`segments = [{ name = "x" }]`},
36			err:  `Port for segment "x" cannot be <= 0`,
37			warns: []string{
38				enterpriseConfigKeyError{key: "segments"}.Error(),
39			},
40		},
41		{
42			desc: "segments not in OSS",
43			args: []string{
44				`-data-dir=` + dataDir,
45			},
46			json: []string{`{ "segments":[{ "name":"x", "port": 123 }] }`},
47			hcl:  []string{`segments = [{ name = "x" port = 123 }]`},
48			err:  `Network segments are not supported in this version of Consul`,
49			warns: []string{
50				enterpriseConfigKeyError{key: "segments"}.Error(),
51			},
52		},
53	}
54
55	testConfig(t, tests, dataDir)
56}
57