MCPcopy Index your code
hub / github.com/passteque/gluetun / Test_Settings_Validate

Function Test_Settings_Validate

internal/httpserver/settings_test.go:184–274  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

182}
183
184func Test_Settings_Validate(t *testing.T) {
185 t.Parallel()
186
187 someHandler := http.NewServeMux()
188 someLogger := &testLogger{}
189
190 testCases := map[string]struct {
191 settings Settings
192 errWrapped error
193 errMessage string
194 }{
195 "bad_address": {
196 settings: Settings{
197 Address: "address:notanint",
198 },
199 errWrapped: validate.ErrPortNotAnInteger,
200 errMessage: "port value is not an integer: notanint",
201 },
202 "nil handler": {
203 settings: Settings{
204 Address: ":8000",
205 },
206 errWrapped: ErrHandlerIsNotSet,
207 errMessage: ErrHandlerIsNotSet.Error(),
208 },
209 "nil logger": {
210 settings: Settings{
211 Address: ":8000",
212 Handler: someHandler,
213 },
214 errWrapped: ErrLoggerIsNotSet,
215 errMessage: ErrLoggerIsNotSet.Error(),
216 },
217 "read header timeout too small": {
218 settings: Settings{
219 Address: ":8000",
220 Handler: someHandler,
221 Logger: someLogger,
222 ReadHeaderTimeout: time.Nanosecond,
223 },
224 errWrapped: ErrReadHeaderTimeoutTooSmall,
225 errMessage: "read header timeout is too small: 1ns must be at least 1ms",
226 },
227 "read timeout too small": {
228 settings: Settings{
229 Address: ":8000",
230 Handler: someHandler,
231 Logger: someLogger,
232 ReadHeaderTimeout: time.Millisecond,
233 ReadTimeout: time.Nanosecond,
234 },
235 errWrapped: ErrReadTimeoutTooSmall,
236 errMessage: "read timeout is too small: 1ns must be at least 1ms",
237 },
238 "shutdown timeout too small": {
239 settings: Settings{
240 Address: ":8000",
241 Handler: someHandler,

Callers

nothing calls this directly

Calls 3

ErrorMethod · 0.65
RunMethod · 0.65
ValidateMethod · 0.45

Tested by

no test coverage detected