@@ -4,10 +4,12 @@ import (
44 "context"
55 "errors"
66 "io/fs"
7+ "net/http"
78 "testing"
89 "time"
910
1011 "github.com/go-logr/logr"
12+ "github.com/nginxinc/nginx-plus-go-client/client"
1113 ngxclient "github.com/nginxinc/nginx-plus-go-client/client"
1214 . "github.com/onsi/ginkgo/v2"
1315 . "github.com/onsi/gomega"
@@ -21,6 +23,72 @@ var _ = Describe("NGINX Runtime Manager", func() {
2123 mgr = NewManagerImpl (& ngxclient.NginxClient {}, nil , logr .New (GinkgoLogr .GetSink ()))
2224 Expect (mgr .IsPlus ()).To (BeTrue ())
2325 })
26+
27+ Describe ("ManagerImpl" , Ordered , func () {
28+ var (
29+ mockedManager Manager
30+ serverMocks []ngxclient.UpstreamServer
31+ serversMock ngxclient.UpstreamServer
32+
33+ clientMock * ngxclient.NginxClient
34+ )
35+
36+ var (
37+ MaxConnsMock = 150
38+ MaxFailsMock = 20
39+ WeightMock = 10
40+ BackupMock = false
41+ DownMock = false
42+ )
43+
44+ BeforeAll (func () {
45+
46+ serversMock = ngxclient.UpstreamServer {
47+ ID : 1 ,
48+ Server : "unknown" ,
49+ MaxConns : & MaxConnsMock ,
50+ MaxFails : & MaxFailsMock ,
51+ FailTimeout : "test" ,
52+ SlowStart : "test" ,
53+ Route : "test" ,
54+ Backup : & BackupMock ,
55+ Down : & DownMock ,
56+ Drain : false ,
57+ Weight : & WeightMock ,
58+ Service : "" ,
59+ }
60+
61+ serverMocks = []ngxclient.UpstreamServer {
62+ serversMock ,
63+ }
64+
65+ httpClient := & http.Client {
66+ Transport : http .DefaultTransport ,
67+ CheckRedirect : http .DefaultClient .CheckRedirect ,
68+ Jar : http .DefaultClient .Jar ,
69+ Timeout : time .Second * 4 ,
70+ }
71+
72+ clientMock , _ = ngxclient .NewNginxClient ("test" , client .WithHTTPClient (httpClient ))
73+ logrMock := logr .New (GinkgoLogr .GetSink ())
74+ mockedManager = NewManagerImpl (clientMock , nil , logrMock )
75+
76+ })
77+
78+ It ("UpdateHTTPServers fails upon unknown HTTP server upstream" , func () {
79+ err := mockedManager .UpdateHTTPServers ("unknown" , serverMocks )
80+ Expect (err ).ToNot (BeNil ())
81+ })
82+
83+ Context ("GetUpstreams returns empty map of upstreams" , func () {
84+ It ("returns no upstreams from NGINX Plus API" , func () {
85+
86+ upstreams , err := mockedManager .GetUpstreams ()
87+ Expect (err ).To (HaveOccurred ())
88+ Expect (upstreams ).To (BeEmpty ())
89+ })
90+ })
91+ })
2492})
2593
2694func TestEnsureNginxRunning (t * testing.T ) {
0 commit comments