github.com/DaAlbrecht/cf-cli@v0.0.0-20231128151943-1fe19bb400b9/actor/v7action/process_summary_test.go (about) 1 package v7action_test 2 3 import ( 4 . "code.cloudfoundry.org/cli/actor/v7action" 5 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/constant" 6 "code.cloudfoundry.org/cli/resources" 7 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 ) 11 12 var _ = Describe("Process Actions", func() { 13 Describe("ProcessSummary", func() { 14 var summary ProcessSummary 15 BeforeEach(func() { 16 summary = ProcessSummary{ 17 InstanceDetails: []ProcessInstance{ 18 {State: constant.ProcessInstanceRunning}, 19 {State: constant.ProcessInstanceRunning}, 20 {State: constant.ProcessInstanceDown}, 21 }, 22 } 23 }) 24 25 Describe("TotalInstanceCount", func() { 26 It("returns the total number of instances", func() { 27 Expect(summary.TotalInstanceCount()).To(Equal(3)) 28 }) 29 }) 30 31 Describe("HealthyInstanceCount", func() { 32 It("returns the total number of RUNNING instances", func() { 33 Expect(summary.HealthyInstanceCount()).To(Equal(2)) 34 }) 35 }) 36 }) 37 38 Describe("ProcessSummaries", func() { 39 var summaries ProcessSummaries 40 41 BeforeEach(func() { 42 summaries = ProcessSummaries{ 43 { 44 Process: resources.Process{ 45 Type: "worker", 46 }, 47 InstanceDetails: []ProcessInstance{ 48 {State: constant.ProcessInstanceRunning}, 49 {State: constant.ProcessInstanceDown}, 50 }, 51 }, 52 { 53 Process: resources.Process{ 54 Type: "console", 55 }, 56 InstanceDetails: []ProcessInstance{ 57 {State: constant.ProcessInstanceRunning}, 58 }, 59 }, 60 { 61 Process: resources.Process{ 62 Type: constant.ProcessTypeWeb, 63 }, 64 Sidecars: []resources.Sidecar{ 65 {Name: "authenticator"}, 66 {Name: "clock"}, 67 }, 68 InstanceDetails: []ProcessInstance{ 69 {State: constant.ProcessInstanceRunning}, 70 {State: constant.ProcessInstanceRunning}, 71 {State: constant.ProcessInstanceDown}, 72 }, 73 }, 74 } 75 }) 76 77 Describe("Sort", func() { 78 It("sorts processes with web first and then alphabetically sorted", func() { 79 summaries.Sort() 80 Expect(summaries[0].Type).To(Equal(constant.ProcessTypeWeb)) 81 Expect(summaries[1].Type).To(Equal("console")) 82 Expect(summaries[2].Type).To(Equal("worker")) 83 }) 84 }) 85 86 Describe("String", func() { 87 It("returns all processes and their instance count ", func() { 88 Expect(summaries.String()).To(Equal("web:2/3, console:1/1, worker:1/2")) 89 }) 90 }) 91 }) 92 })