make these tests table-driven

This commit is contained in:
zhangxiaoyu-zidif 2017-08-31 14:08:46 +08:00
parent a0eb194d81
commit 056d586840

View File

@ -24,43 +24,59 @@ import (
) )
func TestIsJobFinished(t *testing.T) { func TestIsJobFinished(t *testing.T) {
job := &batch.Job{ testCases := map[string]struct {
Status: batch.JobStatus{ conditionType batch.JobConditionType
Conditions: []batch.JobCondition{{ conditionStatus v1.ConditionStatus
Type: batch.JobComplete, expectJobNotFinished bool
Status: v1.ConditionTrue, }{
}}, "Job is completed and condition is true": {
batch.JobComplete,
v1.ConditionTrue,
false,
},
"Job is completed and condition is false": {
batch.JobComplete,
v1.ConditionFalse,
true,
},
"Job is completed and condition is unknown": {
batch.JobComplete,
v1.ConditionUnknown,
true,
},
"Job is failed and condition is true": {
batch.JobFailed,
v1.ConditionTrue,
false,
},
"Job is failed and condition is false": {
batch.JobFailed,
v1.ConditionFalse,
true,
},
"Job is failed and condition is unknown": {
batch.JobFailed,
v1.ConditionUnknown,
true,
}, },
} }
if !IsJobFinished(job) { for name, tc := range testCases {
t.Error("Job was expected to be finished") job := &batch.Job{
} Status: batch.JobStatus{
Conditions: []batch.JobCondition{{
Type: tc.conditionType,
Status: tc.conditionStatus,
}},
},
}
job.Status.Conditions[0].Status = v1.ConditionFalse if tc.expectJobNotFinished == IsJobFinished(job) {
if IsJobFinished(job) { if tc.expectJobNotFinished {
t.Error("Job was not expected to be finished") t.Errorf("test name: %s, job was not expected to be finished", name)
} } else {
t.Errorf("test name: %s, job was expected to be finished", name)
job.Status.Conditions[0].Status = v1.ConditionUnknown }
if IsJobFinished(job) { }
t.Error("Job was not expected to be finished")
}
job.Status.Conditions[0].Type = batch.JobFailed
job.Status.Conditions[0].Status = v1.ConditionTrue
if !IsJobFinished(job) {
t.Error("Job was expected to be finished")
}
job.Status.Conditions[0].Status = v1.ConditionFalse
if IsJobFinished(job) {
t.Error("Job was not expected to be finished")
}
job.Status.Conditions[0].Status = v1.ConditionUnknown
if IsJobFinished(job) {
t.Error("Job was not expected to be finished")
} }
} }