示例#1
0
文件: start_test.go 项目: GABONIA/cli
func startAppWithInstancesAndErrors(displayApp ApplicationDisplayer, app models.Application, instances [][]models.AppInstanceFields, errorCodes []string, requirementsFactory *testreq.FakeReqFactory) (ui *testterm.FakeUI, appRepo *testapi.FakeApplicationRepository, appInstancesRepo *testapi.FakeAppInstancesRepo) {
	configRepo := testconfig.NewRepositoryWithDefaults()
	appRepo = &testapi.FakeApplicationRepository{
		UpdateAppResult: app,
	}
	appRepo.ReadReturns.App = app
	appInstancesRepo = &testapi.FakeAppInstancesRepo{
		GetInstancesResponses:  instances,
		GetInstancesErrorCodes: errorCodes,
	}

	logRepo := &testapi.FakeLogsRepository{
		TailLogMessages: []*logmessage.LogMessage{
			testlogs.NewLogMessage("Log Line 1", app.Guid, LogMessageTypeStaging, time.Now()),
			testlogs.NewLogMessage("Log Line 2", app.Guid, LogMessageTypeStaging, time.Now()),
		},
	}

	args := []string{"my-app"}

	requirementsFactory.Application = app
	ui = callStart(args, configRepo, requirementsFactory, displayApp, appRepo, appInstancesRepo, logRepo)
	return
}
示例#2
0
				DiskUsage: 32 * formatters.MEGABYTE,
				MemQuota:  64 * formatters.MEGABYTE,
				MemUsage:  13 * formatters.MEGABYTE,
			}

			appInstance2 := models.AppInstanceFields{
				State:   models.InstanceDown,
				Details: "failure",
				Since:   testtime.MustParse("Mon Jan 2 15:04:05 -0700 MST 2006", "Mon Apr 1 15:04:05 -0700 MST 2012"),
			}

			instances := []models.AppInstanceFields{appInstance, appInstance2}
			appInstancesRepo.GetInstancesReturns(instances, nil)

			appSummaryRepo.GetSummarySummary = app
			requirementsFactory.Application = app

			pluginAppModel = &plugin_models.GetAppModel{}
			deps.PluginModels.Application = pluginAppModel
			updateCommandDependency(true)
		})

		It("populates the plugin model upon execution", func() {
			runCommand("my-app")
			Ω(pluginAppModel.Name).To(Equal("my-app"))
			Ω(pluginAppModel.State).To(Equal("started"))
			Ω(pluginAppModel.Guid).To(Equal("app-guid"))
			Ω(pluginAppModel.BuildpackUrl).To(Equal("http://123.com"))
			Ω(pluginAppModel.Command).To(Equal("command1"))
			Ω(pluginAppModel.Diego).To(BeFalse())
			Ω(pluginAppModel.DetectedStartCommand).To(Equal("detected_command"))
示例#3
0
		testcmd.RunCliCommandWithoutDependency("start", args, requirementsFactory)
		return
	}

	startAppWithInstancesAndErrors := func(displayApp ApplicationDisplayer, app models.Application, requirementsFactory *testreq.FakeReqFactory) (*testterm.FakeUI, *testApplication.FakeApplicationRepository, *testAppInstanaces.FakeAppInstancesRepository) {
		appRepo = &testApplication.FakeApplicationRepository{}
		appRepo.UpdateReturns(app, nil)
		appRepo.ReadReturns(app, nil)
		appRepo.GetAppReturns(app, nil)
		appInstancesRepo = &testAppInstanaces.FakeAppInstancesRepository{}
		appInstancesRepo.GetInstancesStub = getInstance

		args := []string{"my-app"}

		requirementsFactory.Application = app
		callStart(args)
		return ui, appRepo, appInstancesRepo
	}

	It("fails requirements when not logged in", func() {
		requirementsFactory.LoginSuccess = false

		Expect(callStart([]string{"some-app-name"})).To(BeFalse())
	})

	It("fails requirements when a space is not targeted", func() {
		requirementsFactory.LoginSuccess = true
		requirementsFactory.TargetedSpaceSuccess = false

		Expect(callStart([]string{"some-app-name"})).To(BeFalse())
示例#4
0
文件: ssh_test.go 项目: vframbach/cli
	Describe("ssh", func() {
		var (
			currentApp models.Application
		)

		BeforeEach(func() {
			requirementsFactory.LoginSuccess = true
			requirementsFactory.TargetedSpaceSuccess = true
			currentApp = models.Application{}
			currentApp.Name = "my-app"
			currentApp.State = "started"
			currentApp.Guid = "my-app-guid"
			currentApp.EnableSsh = true
			currentApp.Diego = true

			requirementsFactory.Application = currentApp
		})

		Describe("Error getting required info to run ssh", func() {
			var (
				testServer *httptest.Server
				handler    *testnet.TestHandler
			)

			AfterEach(func() {
				testServer.Close()
			})

			Context("error when getting SSH info from /v2/info", func() {
				BeforeEach(func() {
					getRequest := testapi.NewCloudControllerTestRequest(testnet.TestRequest{
示例#5
0
			It("fails with usage", func() {
				runCommand()
				Expect(ui.Outputs).To(ContainSubstrings(
					[]string{"Incorrect Usage", "Requires", "arguments"},
				))
			})
		})

		Context("when the user provides an app and a domain", func() {
			BeforeEach(func() {
				requirementsFactory.Application = models.Application{
					ApplicationFields: models.ApplicationFields{
						Guid: "my-app-guid",
						Name: "my-app",
					},
					Routes: []models.RouteSummary{
						models.RouteSummary{
							Guid: "my-route-guid",
						},
					},
				}

				requirementsFactory.Domain = models.DomainFields{
					Guid: "my-domain-guid",
					Name: "example.com",
				}
				routeRepo.FindByHostAndDomainReturns(models.Route{
					Domain: requirementsFactory.Domain,
					Guid:   "my-route-guid",
					Host:   "foo",
					Apps: []models.ApplicationFields{
示例#6
0
	Context("when the user is logged in", func() {
		BeforeEach(func() {
			requirementsFactory.LoginSuccess = true
		})

		Context("when the user does not provide two args", func() {
			It("fails with usage", func() {
				runCommand()
				Expect(ui.FailedWithUsage).To(BeTrue())
			})
		})

		Context("when the user provides an app and a domain", func() {
			BeforeEach(func() {
				requirementsFactory.Application = models.Application{ApplicationFields: models.ApplicationFields{
					Guid: "my-app-guid",
					Name: "my-app",
				}}
				requirementsFactory.Domain = models.DomainFields{
					Guid: "my-domain-guid",
					Name: "example.com",
				}
				routeRepo.FindByHostAndDomainReturns.Route = models.Route{
					Domain: requirementsFactory.Domain,
					Guid:   "my-route-guid",
					Host:   "foo",
				}
				runCommand("-n", "my-host", "my-app", "my-domain.com")
			})

			It("passes requirements", func() {
				Expect(testcmd.CommandDidPassRequirements).To(BeTrue())