Skip to content

Commit e889696

Browse files
committed
who let the dogs out?
1 parent b7d94dc commit e889696

File tree

1 file changed

+145
-0
lines changed

1 file changed

+145
-0
lines changed

pkg/workceptor/command_test.go

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package workceptor_test
22

33
import (
44
"context"
5+
"errors"
56
"fmt"
67
"os/exec"
78
"sync"
@@ -79,6 +80,100 @@ func TestSetFromParams2(t *testing.T) {
7980

8081
}
8182

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+
82177
func TestCancel(t *testing.T) {
83178
wu, mockBaseWorkUnit, _, _ := createTestSetup(t)
84179

@@ -194,3 +289,53 @@ func TestCancel(t *testing.T) {
194289
}
195290

196291
}
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

Comments
 (0)