diff options
Diffstat (limited to 'rescached_test.go')
| -rw-r--r-- | rescached_test.go | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/rescached_test.go b/rescached_test.go new file mode 100644 index 0000000..ebf480f --- /dev/null +++ b/rescached_test.go @@ -0,0 +1,96 @@ +// SPDX-FileCopyrightText: 2022 M. Shulhan <ms@kilabit.info> +// SPDX-License-Identifier: GPL-3.0-or-later + +package rescached + +import ( + "log" + "os" + "testing" + + libhttp "github.com/shuLhan/share/lib/http" +) + +const ( + blockdServerAddress = "127.0.0.1:11180" +) + +var ( + testEnv *Environment + testServer *Server + resc *Client +) + +func TestMain(m *testing.M) { + var ( + err error + testStatus int + ) + + go mockBlockdServer() + + testEnv, err = LoadEnvironment("_test", "/etc/rescached/rescached.cfg") + if err != nil { + log.Fatal(err) + } + + testServer, err = New(testEnv) + if err != nil { + log.Fatal(err) + } + + err = testServer.Start() + if err != nil { + log.Fatal(err) + } + + defer testServer.Stop() + + resc = NewClient("http://"+testEnv.WUIListen, false) + + testStatus = m.Run() + + os.Exit(testStatus) +} + +func mockBlockdServer() { + var ( + serverOpts = libhttp.ServerOptions{ + Address: blockdServerAddress, + } + epHostsA = libhttp.Endpoint{ + Path: "/hosts/a", + Method: libhttp.RequestMethodGet, + RequestType: libhttp.RequestTypeNone, + ResponseType: libhttp.ResponseTypePlain, + Call: func(_ *libhttp.EndpointRequest) ([]byte, error) { + return []byte("127.0.0.2 a.block\n"), nil + }, + } + + mockServer *libhttp.Server + err error + ) + + mockServer, err = libhttp.NewServer(&serverOpts) + if err != nil { + log.Fatal(err) + } + + err = mockServer.RegisterEndpoint(&epHostsA) + if err != nil { + log.Fatal(err) + } + + defer func() { + err = mockServer.Stop(0) + if err != nil { + log.Fatal(err) + } + }() + + err = mockServer.Start() + if err != nil { + log.Fatal(err) + } +} |
