diff options
| author | Shulhan <ms@kilabit.info> | 2022-06-09 23:44:02 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2022-06-09 23:44:02 +0700 |
| commit | 5c354863c9c6fcc080f2407e6f7adea41fa4371d (patch) | |
| tree | b892e13340335436e6a785a9267e080f937b10f8 /rescached_test.go | |
| parent | 03ae9f6bfde5262b44d2318cc1162c20d867a3f6 (diff) | |
| download | rescached-5c354863c9c6fcc080f2407e6f7adea41fa4371d.tar.xz | |
all: add integration tests for HTTP API related to block.d
The test is conducted by running the server and call the HTTP API using
the Client methods.
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) + } +} |
