func makeAppWithRoute(appName string) models.Application { application := models.Application{} application.Name = appName application.Guid = "app-guid" domain := models.DomainFields{} domain.Name = "example.com" route := models.RouteSummary{Host: "foo", Domain: domain} secondRoute := models.RouteSummary{Host: appName, Domain: domain} packgeUpdatedAt, _ := time.Parse("2006-01-02T15:04:05Z07:00", "2012-10-24T19:54:00Z") application.State = "started" application.InstanceCount = 2 application.RunningInstances = 2 application.Memory = 256 application.Routes = []models.RouteSummary{route, secondRoute} application.PackageUpdatedAt = &packgeUpdatedAt return application }
testcmd.RunCommand(NewStop(ui, config, appRepo), args, requirementsFactory) } It("fails requirements when not logged in", func() { runCommand("some-app-name") Expect(testcmd.CommandDidPassRequirements).To(BeFalse()) }) Context("when logged in and an app exists", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true app = models.Application{} app.Name = "my-app" app.Guid = "my-app-guid" app.State = "started" }) JustBeforeEach(func() { appRepo.ReadReturns.App = app requirementsFactory.Application = app }) It("fails with usage when the app name is not given", func() { runCommand() Expect(ui.FailedWithUsage).To(BeTrue()) }) It("stops the app with the given name", func() { runCommand("my-app")
models.RouteSummary{ Host: "app1", Domain: models.DomainFields{ Name: "example.com", }, }} app2Routes := []models.RouteSummary{ models.RouteSummary{ Host: "app2", Domain: models.DomainFields{Name: "cfapps.io"}, }} app := models.Application{} app.Name = "Application-1" app.State = "started" app.RunningInstances = 1 app.InstanceCount = 1 app.Memory = 512 app.DiskQuota = 1024 app.Routes = app1Routes app.ZoneName = "tokyo" app2 := models.Application{} app2.Name = "Application-2" app2.State = "started" app2.RunningInstances = 1 app2.InstanceCount = 2 app2.Memory = 256 app2.DiskQuota = 1024 app2.Routes = app2Routes
It("should output whatever greg sez", func() { runCommand("my-app") Expect(ui.Outputs).To(ContainSubstrings( []string{"last uploaded", "unknown"}, )) }) }) }) Describe("when the app is not running", func() { BeforeEach(func() { application := models.Application{} application.Name = "my-app" application.Guid = "my-app-guid" application.State = "stopped" application.InstanceCount = 2 application.RunningInstances = 0 application.Memory = 256 now := time.Now() application.PackageUpdatedAt = &now appSummaryRepo.GetSummarySummary = application requirementsFactory.Application = application }) It("displays nice output when the app is stopped", func() { appSummaryRepo.GetSummaryErrorCode = errors.APP_STOPPED runCommand("my-app") Expect(appSummaryRepo.GetSummaryAppGuid).To(Equal("my-app-guid"))
appRepo.UpdateAppResult = existingApp callPush("existing-app") app, orgName, spaceName := stopper.ApplicationStopArgsForCall(0) Expect(app.Guid).To(Equal(existingApp.Guid)) Expect(app.Name).To(Equal("existing-app")) Expect(orgName).To(Equal(configRepo.OrganizationFields().Name)) Expect(spaceName).To(Equal(configRepo.SpaceFields().Name)) appGuid, _, _ := actor.UploadAppArgsForCall(0) Expect(appGuid).To(Equal(existingApp.Guid)) }) It("does not stop the app when it is already stopped", func() { existingApp.State = "stopped" appRepo.ReadReturns.App = existingApp appRepo.UpdateAppResult = existingApp callPush("existing-app") Expect(stopper.ApplicationStopCallCount()).To(Equal(0)) }) It("updates the app with empty zone", func() { callPush("-z", "", "existing-app") Expect(*appRepo.UpdateParams.ZoneGuid).To(Equal("")) }) It("updates the app with empty(null) zone", func() { callPush("-z", "null", "existing-app")
Expect(ui.Outputs).To(ContainSubstrings( []string{"my-app"}, []string{"FAILED"}, []string{"Error updating app."}, )) Expect(appRepo.UpdateAppGuid).To(Equal("my-app-guid")) }) It("warns the user when the app is already running", func() { displayApp := &testcmd.FakeAppDisplayer{} config := testconfig.NewRepository() app := models.Application{} app.Name = "my-app" app.Guid = "my-app-guid" app.State = "started" appRepo := &testApplication.FakeApplicationRepository{} appRepo.ReadReturns.App = app appInstancesRepo := &testAppInstanaces.FakeAppInstancesRepository{} requirementsFactory.Application = app args := []string{"my-app"} ui := callStart(args, config, requirementsFactory, displayApp, appRepo, appInstancesRepo, logRepo) Expect(ui.Outputs).To(ContainSubstrings([]string{"my-app", "is already started"})) Expect(appRepo.UpdateAppGuid).To(Equal("")) }) It("tells the user when connecting to the log server fails", func() {