ID: instanceID,
			}

			It("returns an error", func() {
				_, err := repo.InstancePid(instance.ID)
				Ω(err).To(HaveOccurred())
			})
		})
	})

	Describe("reading and writing instances", func() {
		Context("when the repository does not exist", func() {
			It("writes and then reads an instance", func() {
				originalInstance := newTestInstance(instanceID, repo)

				instanceFromDisk, loadInstanceErr := repo.FindByID(instanceID)
				Ω(loadInstanceErr).ToNot(HaveOccurred())

				Ω(instanceFromDisk.ID).To(Equal(originalInstance.ID))
				Ω(instanceFromDisk.Host).To(Equal(originalInstance.Host))
				Ω(instanceFromDisk.Port).To(Equal(originalInstance.Port))
				Ω(instanceFromDisk.Password).To(Equal(originalInstance.Password))
			})

			It("creates the instance data directory", func() {
				newTestInstance(instanceID, repo)

				dataDir := path.Join(tmpInstanceDataDir, instanceID, "db")

				_, err := os.Stat(dataDir)
				Ω(err).NotTo(HaveOccurred())