Cleanup: move test helper functions down in the file
This way it starts with the actual tests.
This commit is contained in:
parent
a3a0d97222
commit
d2f1cf3614
@ -38,80 +38,6 @@ type StateMachineMocks struct {
|
||||
persist *mocks.MockPersistenceService
|
||||
}
|
||||
|
||||
func mockedTaskStateMachine(mockCtrl *gomock.Controller) (*StateMachine, *StateMachineMocks) {
|
||||
mocks := StateMachineMocks{
|
||||
persist: mocks.NewMockPersistenceService(mockCtrl),
|
||||
}
|
||||
sm := NewStateMachine(mocks.persist)
|
||||
return sm, &mocks
|
||||
}
|
||||
|
||||
func (m *StateMachineMocks) expectSaveTaskWithStatus(
|
||||
t *testing.T,
|
||||
task *persistence.Task,
|
||||
expectTaskStatus api.TaskStatus,
|
||||
) {
|
||||
m.persist.EXPECT().
|
||||
SaveTask(gomock.Any(), task).
|
||||
DoAndReturn(func(ctx context.Context, savedTask *persistence.Task) error {
|
||||
assert.Equal(t, expectTaskStatus, savedTask.Status)
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func (m *StateMachineMocks) expectSaveJobWithStatus(
|
||||
t *testing.T,
|
||||
job *persistence.Job,
|
||||
expectJobStatus api.JobStatus,
|
||||
) {
|
||||
m.persist.EXPECT().
|
||||
SaveJobStatus(gomock.Any(), job).
|
||||
DoAndReturn(func(ctx context.Context, savedJob *persistence.Job) error {
|
||||
assert.Equal(t, expectJobStatus, savedJob.Status)
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
/* taskWithStatus() creates a task of a certain status, with a job of a certain status. */
|
||||
func taskWithStatus(jobStatus api.JobStatus, taskStatus api.TaskStatus) *persistence.Task {
|
||||
job := persistence.Job{
|
||||
Model: gorm.Model{ID: 47},
|
||||
UUID: "test-job-f3f5-4cef-9cd7-e67eb28eaf3e",
|
||||
|
||||
Status: jobStatus,
|
||||
}
|
||||
task := persistence.Task{
|
||||
Model: gorm.Model{ID: 327},
|
||||
UUID: "testtask-0001-4e28-aeea-8cbaf2fc96a5",
|
||||
|
||||
JobID: job.ID,
|
||||
Job: &job,
|
||||
|
||||
Status: taskStatus,
|
||||
}
|
||||
|
||||
return &task
|
||||
}
|
||||
|
||||
/* taskOfSameJob() creates a task of a certain status, on the same job as the given task. */
|
||||
func taskOfSameJob(task *persistence.Task, taskStatus api.TaskStatus) *persistence.Task {
|
||||
newTaskID := task.ID + 1
|
||||
return &persistence.Task{
|
||||
Model: gorm.Model{ID: newTaskID},
|
||||
UUID: fmt.Sprintf("testtask-%04d-4e28-aeea-8cbaf2fc96a5", newTaskID),
|
||||
JobID: task.JobID,
|
||||
Job: task.Job,
|
||||
Status: taskStatus,
|
||||
}
|
||||
}
|
||||
|
||||
func taskStateMachineTestFixtures(t *testing.T) (*gomock.Controller, context.Context, *StateMachine, *StateMachineMocks) {
|
||||
mockCtrl := gomock.NewController(t)
|
||||
ctx := context.Background()
|
||||
sm, mocks := mockedTaskStateMachine(mockCtrl)
|
||||
return mockCtrl, ctx, sm, mocks
|
||||
}
|
||||
|
||||
// In the comments below, "T" indicates the performed task status change, and
|
||||
// "J" the expected resulting job status change.
|
||||
|
||||
@ -220,3 +146,77 @@ func TestTaskStatusChangeUnknownStatus(t *testing.T) {
|
||||
mocks.expectSaveTaskWithStatus(t, task, api.TaskStatus("borked"))
|
||||
assert.NoError(t, sm.TaskStatusChange(ctx, task, api.TaskStatus("borked")))
|
||||
}
|
||||
|
||||
func mockedTaskStateMachine(mockCtrl *gomock.Controller) (*StateMachine, *StateMachineMocks) {
|
||||
mocks := StateMachineMocks{
|
||||
persist: mocks.NewMockPersistenceService(mockCtrl),
|
||||
}
|
||||
sm := NewStateMachine(mocks.persist)
|
||||
return sm, &mocks
|
||||
}
|
||||
|
||||
func (m *StateMachineMocks) expectSaveTaskWithStatus(
|
||||
t *testing.T,
|
||||
task *persistence.Task,
|
||||
expectTaskStatus api.TaskStatus,
|
||||
) {
|
||||
m.persist.EXPECT().
|
||||
SaveTask(gomock.Any(), task).
|
||||
DoAndReturn(func(ctx context.Context, savedTask *persistence.Task) error {
|
||||
assert.Equal(t, expectTaskStatus, savedTask.Status)
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func (m *StateMachineMocks) expectSaveJobWithStatus(
|
||||
t *testing.T,
|
||||
job *persistence.Job,
|
||||
expectJobStatus api.JobStatus,
|
||||
) {
|
||||
m.persist.EXPECT().
|
||||
SaveJobStatus(gomock.Any(), job).
|
||||
DoAndReturn(func(ctx context.Context, savedJob *persistence.Job) error {
|
||||
assert.Equal(t, expectJobStatus, savedJob.Status)
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
/* taskWithStatus() creates a task of a certain status, with a job of a certain status. */
|
||||
func taskWithStatus(jobStatus api.JobStatus, taskStatus api.TaskStatus) *persistence.Task {
|
||||
job := persistence.Job{
|
||||
Model: gorm.Model{ID: 47},
|
||||
UUID: "test-job-f3f5-4cef-9cd7-e67eb28eaf3e",
|
||||
|
||||
Status: jobStatus,
|
||||
}
|
||||
task := persistence.Task{
|
||||
Model: gorm.Model{ID: 327},
|
||||
UUID: "testtask-0001-4e28-aeea-8cbaf2fc96a5",
|
||||
|
||||
JobID: job.ID,
|
||||
Job: &job,
|
||||
|
||||
Status: taskStatus,
|
||||
}
|
||||
|
||||
return &task
|
||||
}
|
||||
|
||||
/* taskOfSameJob() creates a task of a certain status, on the same job as the given task. */
|
||||
func taskOfSameJob(task *persistence.Task, taskStatus api.TaskStatus) *persistence.Task {
|
||||
newTaskID := task.ID + 1
|
||||
return &persistence.Task{
|
||||
Model: gorm.Model{ID: newTaskID},
|
||||
UUID: fmt.Sprintf("testtask-%04d-4e28-aeea-8cbaf2fc96a5", newTaskID),
|
||||
JobID: task.JobID,
|
||||
Job: task.Job,
|
||||
Status: taskStatus,
|
||||
}
|
||||
}
|
||||
|
||||
func taskStateMachineTestFixtures(t *testing.T) (*gomock.Controller, context.Context, *StateMachine, *StateMachineMocks) {
|
||||
mockCtrl := gomock.NewController(t)
|
||||
ctx := context.Background()
|
||||
sm, mocks := mockedTaskStateMachine(mockCtrl)
|
||||
return mockCtrl, ctx, sm, mocks
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user