func (Focker) StageApp(writer io.Writer, buildpackDirOptional ...string) error { buildpackDir := "/tmp/cloudfockerbuildpacks" if len(buildpackDirOptional) > 0 { buildpackDir = buildpackDirOptional[0] } buildpackRunner := stager.NewBuildpackRunner(abs(buildpackDir)) err := stager.RunBuildpack(writer, buildpackRunner) return err }
type TestRunner struct { RunCalled bool } func (f *TestRunner) Run() error { f.RunCalled = true return nil } var _ = Describe("Stager", func() { Describe("Running a buildpack", func() { It("should tell a buildpack runner to run", func() { buffer := gbytes.NewBuffer() testrunner := new(TestRunner) err := stager.RunBuildpack(buffer, testrunner) Expect(testrunner.RunCalled).To(Equal(true)) Expect(err).ShouldNot(HaveOccurred()) Eventually(buffer).Should(gbytes.Say(`Running Buildpacks...`)) }) }) Describe("Getting a buildpack runner", func() { It("should return the address of a valid buildpack runner, with a correct buildpack list", func() { buildpackDir, _ := ioutil.TempDir(os.TempDir(), "cfocker-buildpackrunner-test") os.Mkdir(buildpackDir+"/test-buildpack", 0755) ioutil.WriteFile(buildpackDir+"/test-buildpack"+"/testfile", []byte("test"), 0644) runner := stager.NewBuildpackRunner(buildpackDir) var runnerVar *buildpackrunner.Runner Expect(runner).Should(BeAssignableToTypeOf(runnerVar)) md5BuildpackName := fmt.Sprintf("%x", md5.Sum([]byte("test-buildpack")))