master
go 172 lines 4.22 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package config
4
5 import (
6 "testing"
7
8 "github.com/stretchr/testify/assert"
9 )
10
11 func TestUnboundConfig_Empty(t *testing.T) {
12 assert.True(t, UnboundConfig{}.Empty())
13 assert.False(t, UnboundConfig{enable: "yes"}.Empty())
14 }
15
16 func TestUnboundConfig_Cumulative(t *testing.T) {
17 tests := []struct {
18 input string
19 wantValue bool
20 wantOK bool
21 }{
22 {input: "yes", wantValue: true, wantOK: true},
23 {input: "no", wantValue: false, wantOK: true},
24 {input: "", wantValue: false, wantOK: false},
25 {input: "some value", wantValue: false, wantOK: true},
26 }
27
28 for _, test := range tests {
29 t.Run(test.input, func(t *testing.T) {
30 cfg := UnboundConfig{cumulative: test.input}
31
32 v, ok := cfg.Cumulative()
33 assert.Equal(t, test.wantValue, v)
34 assert.Equal(t, test.wantOK, ok)
35 })
36 }
37 }
38
39 func TestUnboundConfig_ControlEnabled(t *testing.T) {
40 tests := []struct {
41 input string
42 wantValue bool
43 wantOK bool
44 }{
45 {input: "yes", wantValue: true, wantOK: true},
46 {input: "no", wantValue: false, wantOK: true},
47 {input: "", wantValue: false, wantOK: false},
48 {input: "some value", wantValue: false, wantOK: true},
49 }
50
51 for _, test := range tests {
52 t.Run(test.input, func(t *testing.T) {
53 cfg := UnboundConfig{enable: test.input}
54
55 v, ok := cfg.ControlEnabled()
56 assert.Equal(t, test.wantValue, v)
57 assert.Equal(t, test.wantOK, ok)
58 })
59 }
60 }
61
62 func TestUnboundConfig_ControlInterface(t *testing.T) {
63 tests := []struct {
64 input string
65 wantValue string
66 wantOK bool
67 }{
68 {input: "127.0.0.1", wantValue: "127.0.0.1", wantOK: true},
69 {input: "/var/run/unbound.sock", wantValue: "/var/run/unbound.sock", wantOK: true},
70 {input: "", wantValue: "", wantOK: false},
71 {input: "some value", wantValue: "some value", wantOK: true},
72 }
73
74 for _, test := range tests {
75 t.Run(test.input, func(t *testing.T) {
76 cfg := UnboundConfig{iface: test.input}
77
78 v, ok := cfg.ControlInterface()
79 assert.Equal(t, test.wantValue, v)
80 assert.Equal(t, test.wantOK, ok)
81 })
82 }
83 }
84
85 func TestUnboundConfig_ControlPort(t *testing.T) {
86 tests := []struct {
87 input string
88 wantValue string
89 wantOK bool
90 }{
91 {input: "8953", wantValue: "8953", wantOK: true},
92 {input: "", wantValue: "", wantOK: false},
93 {input: "some value", wantValue: "some value", wantOK: true},
94 }
95
96 for _, test := range tests {
97 t.Run(test.input, func(t *testing.T) {
98 cfg := UnboundConfig{port: test.input}
99
100 v, ok := cfg.ControlPort()
101 assert.Equal(t, test.wantValue, v)
102 assert.Equal(t, test.wantOK, ok)
103 })
104 }
105 }
106
107 func TestUnboundConfig_ControlUseCert(t *testing.T) {
108 tests := []struct {
109 input string
110 wantValue bool
111 wantOK bool
112 }{
113 {input: "yes", wantValue: true, wantOK: true},
114 {input: "no", wantValue: false, wantOK: true},
115 {input: "", wantValue: false, wantOK: false},
116 {input: "some value", wantValue: false, wantOK: true},
117 }
118
119 for _, test := range tests {
120 t.Run(test.input, func(t *testing.T) {
121 cfg := UnboundConfig{useCert: test.input}
122
123 v, ok := cfg.ControlUseCert()
124 assert.Equal(t, test.wantValue, v)
125 assert.Equal(t, test.wantOK, ok)
126 })
127 }
128 }
129
130 func TestUnboundConfig_ControlKeyFile(t *testing.T) {
131 tests := []struct {
132 input string
133 wantValue string
134 wantOK bool
135 }{
136 {input: "/etc/unbound/unbound_control.key", wantValue: "/etc/unbound/unbound_control.key", wantOK: true},
137 {input: "", wantValue: "", wantOK: false},
138 {input: "some value", wantValue: "some value", wantOK: true},
139 }
140
141 for _, test := range tests {
142 t.Run(test.input, func(t *testing.T) {
143 cfg := UnboundConfig{keyFile: test.input}
144
145 v, ok := cfg.ControlKeyFile()
146 assert.Equal(t, test.wantValue, v)
147 assert.Equal(t, test.wantOK, ok)
148 })
149 }
150 }
151
152 func TestUnboundConfig_ControlCertFile(t *testing.T) {
153 tests := []struct {
154 input string
155 wantValue string
156 wantOK bool
157 }{
158 {input: "/etc/unbound/unbound_control.pem", wantValue: "/etc/unbound/unbound_control.pem", wantOK: true},
159 {input: "", wantValue: "", wantOK: false},
160 {input: "some value", wantValue: "some value", wantOK: true},
161 }
162
163 for _, test := range tests {
164 t.Run(test.input, func(t *testing.T) {
165 cfg := UnboundConfig{certFile: test.input}
166
167 v, ok := cfg.ControlCertFile()
168 assert.Equal(t, test.wantValue, v)
169 assert.Equal(t, test.wantOK, ok)
170 })
171 }
172 }