1package atc_test
2
3import (
4	. "github.com/onsi/ginkgo"
5	. "github.com/onsi/gomega"
6
7	"github.com/concourse/concourse/atc"
8	"github.com/concourse/concourse/atc/db"
9)
10
11var _ = Describe("Build", func() {
12	Describe("OneOff", func() {
13		It("returns true if there is no JobName", func() {
14			build := atc.Build{
15				JobName: "",
16			}
17			Expect(build.OneOff()).To(BeTrue())
18		})
19
20		It("returns false if there is a JobName", func() {
21			build := atc.Build{
22				JobName: "something",
23			}
24			Expect(build.OneOff()).To(BeFalse())
25		})
26	})
27
28	Describe("IsRunning", func() {
29		It("returns true if the build is pending", func() {
30			build := atc.Build{
31				Status: string(atc.StatusPending),
32			}
33			Expect(build.Abortable()).To(BeTrue())
34		})
35
36		It("returns true if the build is started", func() {
37			build := atc.Build{
38				Status: string(atc.StatusStarted),
39			}
40			Expect(build.Abortable()).To(BeTrue())
41		})
42
43		It("returns false if in any other state", func() {
44			states := []atc.BuildStatus{
45				atc.StatusAborted,
46				atc.StatusErrored,
47				atc.StatusFailed,
48				atc.StatusSucceeded,
49			}
50
51			for _, state := range states {
52				build := atc.Build{
53					Status: string(state),
54				}
55				Expect(build.Abortable()).To(BeFalse())
56			}
57		})
58	})
59
60	Describe("Abortable", func() {
61		It("returns true if the build is pending", func() {
62			build := atc.Build{
63				Status: string(atc.StatusPending),
64			}
65			Expect(build.Abortable()).To(BeTrue())
66		})
67
68		It("returns true if the build is started", func() {
69			build := atc.Build{
70				Status: string(atc.StatusStarted),
71			}
72			Expect(build.Abortable()).To(BeTrue())
73		})
74
75		It("returns false if in any other state", func() {
76			states := []db.BuildStatus{
77				db.BuildStatusAborted,
78				db.BuildStatusErrored,
79				db.BuildStatusFailed,
80				db.BuildStatusSucceeded,
81			}
82
83			for _, state := range states {
84				build := atc.Build{
85					Status: string(state),
86				}
87				Expect(build.Abortable()).To(BeFalse())
88			}
89		})
90	})
91})
92