Esempio n. 1
0
			Eventually(session, 3).Should(gexec.Exit(0))
			Expect(session.Out).To(gbytes.Say("Target:"))
			Expect(session.Out).To(gbytes.Say(fmt.Sprintf("%s.xip.io:%s", listenerHost, listenerPort)))
		})

		Context("when an unknown command is invoked", func() {
			It("should exit non-zero when an unknown command is invoked", func() {
				command := ltcCommand("unknown-command")

				session, err := gexec.Start(command, GinkgoWriter, GinkgoWriter)
				Expect(err).NotTo(HaveOccurred())

				Eventually(session, 3).Should(gexec.Exit(1))
				Expect(session.Out).To(gbytes.Say("not a registered command"))
			})
		})

		Context("when a known command is invoked with an invalid flag", func() {
			It("should exit non-zero and print incorrect usage", func() {
				command := ltcCommand("status", "--badFlag")

				session, err := gexec.Start(command, GinkgoWriter, GinkgoWriter)
				Expect(err).NotTo(HaveOccurred())

				Eventually(session, 3).Should(gexec.Exit(1))
				Expect(session.Out).To(test_helpers.SayIncorrectUsage())
			})
		})
	})
})
					Expect(outputBuffer).To(test_helpers.SayLine(colors.Red("Error requesting task status: dropped the ball")))
					Expect(outputBuffer).NotTo(test_helpers.SayLine("Timed out waiting for the build to complete."))
					Expect(fakeTailedLogsOutputter.StopOutputtingCallCount()).To(Equal(1))
				})
			})
		})

		Context("invalid syntax", func() {
			It("rejects less than two positional arguments", func() {
				test_helpers.ExecuteCommandWithArgs(buildDropletCommand, []string{"droplet-name"})

				Expect(fakeDropletRunner.UploadBitsCallCount()).To(Equal(0))
				Expect(fakeDropletRunner.BuildDropletCallCount()).To(Equal(0))

				Expect(outputBuffer).To(test_helpers.SayIncorrectUsage())
				Expect(fakeExitHandler.ExitCalledWith).To(Equal([]int{exit_codes.InvalidSyntax}))
			})

			It("tests for an empty droplet name", func() {
				test_helpers.ExecuteCommandWithArgs(buildDropletCommand, []string{"", "buildpack-name"})

				Expect(outputBuffer).To(test_helpers.SayIncorrectUsage())
				Expect(fakeDropletRunner.UploadBitsCallCount()).To(Equal(0))
				Expect(fakeDropletRunner.BuildDropletCallCount()).To(Equal(0))
				Expect(fakeExitHandler.ExitCalledWith).To(Equal([]int{exit_codes.InvalidSyntax}))
			})

			It("validates cpuWeight is between 1 and 100", func() {
				test_helpers.ExecuteCommandWithArgs(buildDropletCommand, []string{"-c", "9999", "droplet-name", "java"})
			Expect(gbytesBuffer).To(test_helpers.SayLine("sample"))
		})

		It("negated match", func() {
			gbytesBuffer.Write([]byte("no match"))

			Expect(gbytesBuffer).ToNot(test_helpers.SayLine("no match"))
		})
	})

	Describe("SayIncorrectUsage", func() {
		It("matches", func() {
			gbytesBuffer.Write([]byte("Incorrect Usage"))

			Expect(gbytesBuffer).To(test_helpers.SayIncorrectUsage())
		})

		It("negated match", func() {
			gbytesBuffer.Write([]byte("say that"))

			Expect(gbytesBuffer).ToNot(test_helpers.SayIncorrectUsage())
		})
	})

	Describe("SayNewLine", func() {
		It("match", func() {
			gbytesBuffer.Write([]byte("\n"))

			Expect(gbytesBuffer).To(test_helpers.SayNewLine())
		})