@@ -2,6 +2,7 @@ package workceptor_test
2
2
3
3
import (
4
4
"context"
5
+ "errors"
5
6
"fmt"
6
7
"os/exec"
7
8
"sync"
@@ -79,6 +80,100 @@ func TestSetFromParams2(t *testing.T) {
79
80
80
81
}
81
82
83
+ func TestUnredactedStatus (t * testing.T ) {
84
+ wu , mockBaseWorkUnit , _ , _ := createTestSetup (t )
85
+ statusLock := & sync.RWMutex {}
86
+ mockBaseWorkUnit .EXPECT ().GetStatusLock ().Return (statusLock ).Times (2 )
87
+ mockBaseWorkUnit .EXPECT ().GetStatusWithoutExtraData ().Return (& workceptor.StatusFileData {})
88
+ mockBaseWorkUnit .EXPECT ().GetStatusCopy ().Return (workceptor.StatusFileData {
89
+ ExtraData : & workceptor.CommandExtraData {},
90
+ })
91
+
92
+ wu .UnredactedStatus ()
93
+ }
94
+
95
+ // func TestStart(t *testing.T) {
96
+ // wu, mockBaseWorkUnit, _, _ := createTestSetup(t)
97
+ // // w, err := workceptor.New(context.Background(), mockNetceptor, "")
98
+ // // if err != nil {
99
+ // // fmt.Println(err)
100
+ // // }
101
+
102
+ // stuff := mockBaseWorkUnit.EXPECT().GetWorkceptor().Return()
103
+ // // mockNetceptor.EXPECT().GetLogger()
104
+
105
+ // wu.Start()
106
+
107
+ // }
108
+
109
+ func TestRestart (t * testing.T ) {
110
+ wu , mockBaseWorkUnit , _ , _ := createTestSetup (t )
111
+
112
+ restartTestCases := []struct {
113
+ name string
114
+ expectedCalls func ()
115
+ errorCatch func (error , * testing.T )
116
+ }{
117
+ {
118
+ name : "return error 1" ,
119
+ expectedCalls : func () {
120
+ mockBaseWorkUnit .EXPECT ().Load ().Return (errors .New ("terminated" ))
121
+ },
122
+ errorCatch : func (err error , t * testing.T ) {
123
+ if err .Error () != "terminated" {
124
+ t .Error (err )
125
+ }
126
+ },
127
+ },
128
+ {
129
+ name : "return nil 1" ,
130
+ expectedCalls : func () {
131
+ statusFile := & workceptor.StatusFileData {State : 2 }
132
+ mockBaseWorkUnit .EXPECT ().Load ().Return (nil )
133
+ statusLock := & sync.RWMutex {}
134
+ mockBaseWorkUnit .EXPECT ().GetStatusLock ().Return (statusLock ).Times (2 )
135
+ mockBaseWorkUnit .EXPECT ().GetStatusWithoutExtraData ().Return (statusFile )
136
+ mockBaseWorkUnit .EXPECT ().GetStatusCopy ().Return (workceptor.StatusFileData {
137
+ ExtraData : & workceptor.CommandExtraData {},
138
+ })
139
+ },
140
+ errorCatch : func (err error , t * testing.T ) {
141
+ if err != nil {
142
+ t .Error (err )
143
+ }
144
+ },
145
+ },
146
+ {
147
+ name : "return nil 2" ,
148
+ expectedCalls : func () {
149
+ statusFile := & workceptor.StatusFileData {State : 0 }
150
+ mockBaseWorkUnit .EXPECT ().Load ().Return (nil )
151
+ statusLock := & sync.RWMutex {}
152
+ mockBaseWorkUnit .EXPECT ().GetStatusLock ().Return (statusLock ).Times (2 )
153
+ mockBaseWorkUnit .EXPECT ().GetStatusWithoutExtraData ().Return (statusFile )
154
+ mockBaseWorkUnit .EXPECT ().GetStatusCopy ().Return (workceptor.StatusFileData {
155
+ ExtraData : & workceptor.CommandExtraData {},
156
+ })
157
+ mockBaseWorkUnit .EXPECT ().UpdateBasicStatus (gomock .Any (), gomock .Any (), gomock .Any ())
158
+ mockBaseWorkUnit .EXPECT ().UnitDir ()
159
+ },
160
+ errorCatch : func (err error , t * testing.T ) {
161
+ if err != nil {
162
+ t .Error (err )
163
+ }
164
+ },
165
+ },
166
+ }
167
+
168
+ for _ , testCase := range restartTestCases {
169
+ t .Run (testCase .name , func (t * testing.T ) {
170
+ testCase .expectedCalls ()
171
+ err := wu .Restart ()
172
+ testCase .errorCatch (err , t )
173
+ })
174
+ }
175
+ }
176
+
82
177
func TestCancel (t * testing.T ) {
83
178
wu , mockBaseWorkUnit , _ , _ := createTestSetup (t )
84
179
@@ -194,3 +289,53 @@ func TestCancel(t *testing.T) {
194
289
}
195
290
196
291
}
292
+
293
+ func TestRelease (t * testing.T ) {
294
+ wu , mockBaseWorkUnit , _ , _ := createTestSetup (t )
295
+
296
+ releaseTestCases := []struct {
297
+ name string
298
+ expectedCalls func ()
299
+ errorCatch func (error , * testing.T )
300
+ force bool
301
+ }{
302
+ {
303
+ name : "error" ,
304
+ expectedCalls : func () {},
305
+ errorCatch : func (err error , t * testing.T ) {
306
+ if err == nil {
307
+ t .Error (err )
308
+ }
309
+ },
310
+ force : false ,
311
+ },
312
+ {
313
+ name : "happy day" ,
314
+ expectedCalls : func () {
315
+ mockBaseWorkUnit .EXPECT ().Release (gomock .Any ())
316
+ },
317
+ errorCatch : func (err error , t * testing.T ) {
318
+ if err != nil {
319
+ t .Error (err )
320
+ }
321
+ },
322
+ force : true ,
323
+ },
324
+ }
325
+ for _ , testCase := range releaseTestCases {
326
+ t .Run (testCase .name , func (t * testing.T ) {
327
+ mockBaseWorkUnit .EXPECT ().CancelContext ()
328
+ mockBaseWorkUnit .EXPECT ().GetStatusLock ().Return (& sync.RWMutex {}).Times (2 )
329
+ mockBaseWorkUnit .EXPECT ().GetStatusWithoutExtraData ().Return (& workceptor.StatusFileData {})
330
+ mockBaseWorkUnit .EXPECT ().GetStatusCopy ().Return (workceptor.StatusFileData {
331
+ ExtraData : & workceptor.CommandExtraData {
332
+ Pid : 1 ,
333
+ },
334
+ })
335
+ testCase .expectedCalls ()
336
+ err := wu .Release (testCase .force )
337
+ testCase .errorCatch (err , t )
338
+ })
339
+ }
340
+
341
+ }
0 commit comments