package policy import ( "testing" buildapi "github.com/openshift/origin/pkg/build/api" ) func TestParallelIsRunnableNewBuilds(t *testing.T) { allNewBuilds := []buildapi.Build{ addBuild("build-1", "sample-bc", buildapi.BuildPhaseNew, buildapi.BuildRunPolicyParallel), addBuild("build-2", "sample-bc", buildapi.BuildPhaseNew, buildapi.BuildRunPolicyParallel), addBuild("build-3", "sample-bc", buildapi.BuildPhaseNew, buildapi.BuildRunPolicyParallel), } client := newTestClient(allNewBuilds) policy := ParallelPolicy{BuildLister: client, BuildUpdater: client} for _, build := range allNewBuilds { runnable, err := policy.IsRunnable(&build) if err != nil { t.Errorf("expected no error, got %v", err) } if !runnable { t.Errorf("expected build %s runnable, is not", build.Name) } } } func TestParallelIsRunnableMixedBuilds(t *testing.T) { mixedBuilds := []buildapi.Build{ addBuild("build-4", "sample-bc", buildapi.BuildPhaseRunning, buildapi.BuildRunPolicyParallel), addBuild("build-6", "sample-bc", buildapi.BuildPhaseNew, buildapi.BuildRunPolicyParallel), addBuild("build-5", "sample-bc", buildapi.BuildPhasePending, buildapi.BuildRunPolicyParallel), } client := newTestClient(mixedBuilds) policy := ParallelPolicy{BuildLister: client, BuildUpdater: client} for _, build := range mixedBuilds { runnable, err := policy.IsRunnable(&build) if err != nil { t.Errorf("expected no error, got %v", err) } if !runnable { t.Errorf("expected build %s runnable, is not", build.Name) } } } func TestParallelIsRunnableWithSerialRunning(t *testing.T) { mixedBuilds := []buildapi.Build{ addBuild("build-7", "sample-bc", buildapi.BuildPhaseRunning, buildapi.BuildRunPolicySerial), addBuild("build-8", "sample-bc", buildapi.BuildPhaseNew, buildapi.BuildRunPolicyParallel), addBuild("build-9", "sample-bc", buildapi.BuildPhaseNew, buildapi.BuildRunPolicyParallel), } client := newTestClient(mixedBuilds) policy := ParallelPolicy{BuildLister: client, BuildUpdater: client} for _, build := range mixedBuilds { runnable, err := policy.IsRunnable(&build) if err != nil { t.Errorf("expected no error, got %v", err) } if runnable { t.Errorf("expected build %s as not runnable", build.Name) } } }