It("exports the droplet", func() {
			dropletReader, err := os.Open(filepath.Join(exportDir, "droppo.tgz"))
			Expect(err).NotTo(HaveOccurred())
			defer dropletReader.Close()

			metadataReader, err := os.Open(filepath.Join(exportDir, "droppo-metadata.json"))
			Expect(err).NotTo(HaveOccurred())
			defer metadataReader.Close()

			fakeDropletRunner.ExportDropletReturns(dropletReader, metadataReader, nil)

			test_helpers.ExecuteCommandWithArgs(exportDropletCommand, []string{"droppo"})

			Expect(outputBuffer).To(test_helpers.SayLine("Droplet 'droppo' exported to droppo.tgz and droppo-metadata.json."))
			Expect(fakeDropletRunner.ExportDropletCallCount()).To(Equal(1))
			Expect(fakeDropletRunner.ExportDropletArgsForCall(0)).To(Equal("droppo"))

			Expect(os.Stat("droppo.tgz")).NotTo(BeNil())
			Expect(os.Stat("droppo-metadata.json")).NotTo(BeNil())
		})

		Context("when the droplet runner returns errors", func() {
			It("prints an error", func() {
				fakeDropletRunner.ExportDropletReturns(nil, nil, errors.New("failed"))

				test_helpers.ExecuteCommandWithArgs(exportDropletCommand, []string{"droppo"})

				Expect(outputBuffer).To(test_helpers.SayLine("Error exporting droplet droppo: failed"))
				Expect(fakeDropletRunner.ExportDropletCallCount()).To(Equal(1))
				Expect(fakeExitHandler.ExitCalledWith).To(Equal([]int{exit_codes.CommandFailed}))
			})