func makeAppWithOptions(appName string) models.Application { application := models.Application{} application.Name = appName application.Guid = "app-guid" application.Command = "run main.go" application.BuildpackUrl = "go-buildpack" 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.HealthCheckTimeout = 100 application.Routes = []models.RouteSummary{route, secondRoute} application.PackageUpdatedAt = &packgeUpdatedAt envMap := make(map[string]interface{}) envMap["foo"] = "bar" application.EnvironmentVars = envMap application.Services = append(application.Services, models.ServicePlanSummary{ Guid: "", Name: "server1", }) return application }
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.Stack = &models.Stack{ Name: "fake_stack", Guid: "123-123-123", } application.Routes = []models.RouteSummary{route, secondRoute} application.PackageUpdatedAt = &packgeUpdatedAt return application }
func makeAppWithoutOptions(appName string) models.Application { application := models.Application{} application.Name = appName application.Guid = "app-guid" 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.PackageUpdatedAt = &packgeUpdatedAt return application }
func makeAppWithRoute(appName string) models.Application { application := models.Application{} application.Name = appName application.Guid = "app-guid" application.BuildpackUrl = "http://123.com" application.Command = "command1" application.Diego = false application.DetectedStartCommand = "detected_command" application.DiskQuota = 100 application.EnvironmentVars = map[string]interface{}{"test": 123} application.RunningInstances = 2 application.HealthCheckTimeout = 100 application.SpaceGuid = "guids_in_spaaace" application.PackageState = "STAGED" application.StagingFailedReason = "no reason" application.State = "started" application.InstanceCount = 2 application.RunningInstances = 2 application.Memory = 256 t := time.Date(2009, time.November, 10, 15, 0, 0, 0, time.UTC) application.PackageUpdatedAt = &t services := models.ServicePlanSummary{ Guid: "s1-guid", Name: "s1-service", } application.Services = []models.ServicePlanSummary{services} domain := models.DomainFields{Guid: "domain1-guid", Name: "example.com", OwningOrganizationGuid: "org-123", Shared: true} route := models.RouteSummary{Host: "foo", Guid: "foo-guid", Domain: domain} secondRoute := models.RouteSummary{Host: appName, Domain: domain} application.Stack = &models.Stack{ Name: "fake_stack", Guid: "123-123-123", } application.Routes = []models.RouteSummary{route, secondRoute} return application }
func makeAppWithMultipleEnvVars(appName string) models.Application { application := models.Application{} application.Name = appName application.Guid = "app-guid" 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.PackageUpdatedAt = &packgeUpdatedAt envMap := make(map[string]interface{}) envMap["foo"] = bool(true) envMap["abc"] = "abc" envMap["xyz"] = bool(false) envMap["bar"] = float64(10) application.EnvironmentVars = envMap return application }
)) }) }) }) 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 updateCommandDependency(false) }) It("displays nice output when the app is stopped", func() { appSummaryRepo.GetSummaryErrorCode = errors.APP_STOPPED updateCommandDependency(false) runCommand("my-app") Expect(appSummaryRepo.GetSummaryAppGuid).To(Equal("my-app-guid")) Expect(appInstancesRepo.GetInstancesArgsForCall(0)).To(Equal("my-app-guid"))
It("prints appropriate output", func() { Expect(err).NotTo(HaveOccurred()) Expect(ui.Outputs()).To(ContainSubstrings( []string{"Showing health and status", "fake-app-name", "my-org", "my-space", "my-user"}, []string{"state", "stopped"}, []string{"instances", "0/1"}, []string{"usage", "1G x 1 instances"}, []string{"There are no running instances of this app."}, )) }) }) }) Context("when the package updated at is missing", func() { BeforeEach(func() { getAppSummaryModel.PackageUpdatedAt = nil appSummaryRepo.GetSummaryReturns(getAppSummaryModel, nil) }) It("prints 'unknown' as last uploaded", func() { Expect(err).NotTo(HaveOccurred()) Expect(ui.Outputs()).To(ContainSubstrings( []string{"last uploaded: unknown"}, )) }) }) Context("when the application has no app ports", func() { BeforeEach(func() { getAppSummaryModel.AppPorts = []int{}