MCPcopy Create free account
hub / github.com/passteque/gluetun / Test_New

Function Test_New

internal/httpserver/server_test.go:14–68  ·  view source on GitHub ↗

go:generate mockgen -destination=logger_mock_test.go -package $GOPACKAGE . Logger

(t *testing.T)

Source from the content-addressed store, hash-verified

12//go:generate mockgen -destination=logger_mock_test.go -package $GOPACKAGE . Logger
13
14func Test_New(t *testing.T) {
15 t.Parallel()
16
17 someHandler := http.NewServeMux()
18 someLogger := &testLogger{}
19
20 testCases := map[string]struct {
21 settings Settings
22 expected *Server
23 errWrapped error
24 errMessage string
25 }{
26 "empty settings": {
27 errWrapped: ErrHandlerIsNotSet,
28 errMessage: "http server settings validation failed: HTTP handler cannot be left unset",
29 },
30 "filled settings": {
31 settings: Settings{
32 Address: ":8001",
33 Handler: someHandler,
34 Logger: someLogger,
35 ReadHeaderTimeout: time.Second,
36 ReadTimeout: time.Second,
37 ShutdownTimeout: time.Second,
38 },
39 expected: &Server{
40 address: ":8001",
41 handler: someHandler,
42 logger: someLogger,
43 readHeaderTimeout: time.Second,
44 readTimeout: time.Second,
45 shutdownTimeout: time.Second,
46 },
47 },
48 }
49
50 for name, testCase := range testCases {
51 t.Run(name, func(t *testing.T) {
52 t.Parallel()
53
54 server, err := New(testCase.settings)
55 assert.ErrorIs(t, err, testCase.errWrapped)
56 if testCase.errWrapped != nil {
57 require.EqualError(t, err, testCase.errMessage)
58 }
59
60 if server != nil {
61 assert.NotNil(t, server.addressSet)
62 server.addressSet = nil
63 }
64
65 assert.Equal(t, testCase.expected, server)
66 })
67 }
68}

Callers

nothing calls this directly

Calls 3

NewFunction · 0.70
RunMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected