@@ -4,10 +4,12 @@ import (
4
4
"context"
5
5
"errors"
6
6
"io/fs"
7
+ "net/http"
7
8
"testing"
8
9
"time"
9
10
10
11
"github.com/go-logr/logr"
12
+ "github.com/nginxinc/nginx-plus-go-client/client"
11
13
ngxclient "github.com/nginxinc/nginx-plus-go-client/client"
12
14
. "github.com/onsi/ginkgo/v2"
13
15
. "github.com/onsi/gomega"
@@ -21,6 +23,72 @@ var _ = Describe("NGINX Runtime Manager", func() {
21
23
mgr = NewManagerImpl (& ngxclient.NginxClient {}, nil , logr .New (GinkgoLogr .GetSink ()))
22
24
Expect (mgr .IsPlus ()).To (BeTrue ())
23
25
})
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
+ })
24
92
})
25
93
26
94
func TestEnsureNginxRunning (t * testing.T ) {
0 commit comments