Ω(buildID).Should(Equal(42))
				Ω(savedEvent).Should(BeAssignableToTypeOf(event.StartTask{}))
				Ω(savedEvent.(event.StartTask).Time).Should(BeNumerically("~", time.Now().Unix(), 1))
				Ω(savedEvent.(event.StartTask).Origin).Should(Equal(event.Origin{
					Type:     event.OriginTypeTask,
					Name:     "some-task",
					Location: location,
				}))
			})
		})

		Describe("Finished", func() {
			var exitStatus exec.ExitStatus

			JustBeforeEach(func() {
				executionDelegate.Finished(exitStatus)
			})

			Context("with a successful result", func() {
				BeforeEach(func() {
					exitStatus = 0
				})

				It("saves a finish event", func() {
					Ω(fakeDB.SaveBuildEventCallCount()).Should(Equal(1))

					buildID, savedEvent := fakeDB.SaveBuildEventArgsForCall(0)
					Ω(buildID).Should(Equal(42))
					Ω(savedEvent).Should(BeAssignableToTypeOf(event.FinishTask{}))
					Ω(savedEvent.(event.FinishTask).ExitStatus).Should(Equal(0))
					Ω(savedEvent.(event.FinishTask).Time).Should(BeNumerically("<=", time.Now().Unix(), 1))