})
	})

	Describe("destroying a redis instance", func() {
		Context("when the instance exists", func() {
			BeforeEach(func() {
				localInstanceCreator.Create(instanceID)
			})

			It("calls lock before stopping redis", func() {
				Ω(fakeLocalRepository.LockedInstances).To(BeEmpty())
				fakeProcessController.DoOnInstanceStop = func() {
					Ω(fakeLocalRepository.LockedInstances).To(HaveLen(1))
					Ω(fakeLocalRepository.LockedInstances[0].ID).To(Equal(instanceID))
				}
				err := localInstanceCreator.Destroy(instanceID)
				Ω(err).ShouldNot(HaveOccurred())
			})

			It("kills the instance", func() {
				err := localInstanceCreator.Destroy(instanceID)
				Ω(err).ShouldNot(HaveOccurred())
				Ω(len(fakeProcessController.KilledInstances)).To(Equal(1))
				Ω(fakeProcessController.KilledInstances[0].ID).To(Equal(instanceID))
			})

			It("deletes the instance data directory", func() {
				localInstanceCreator.Destroy(instanceID)
				Ω(fakeLocalRepository.DeletedInstanceIds).To(Equal([]string{
					instanceID,
				}))