github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/api/resources/events_test.go (about) 1 package resources_test 2 3 import ( 4 "encoding/json" 5 6 . "github.com/cloudfoundry/cli/cf/api/resources" 7 testtime "github.com/cloudfoundry/cli/testhelpers/time" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 ) 11 12 var _ = Describe("Event resources", func() { 13 var resource EventResource 14 15 Describe("New V2 resources", func() { 16 BeforeEach(func() { 17 resource = new(EventResourceNewV2) 18 }) 19 20 It("unmarshals app crash events", func() { 21 err := json.Unmarshal([]byte(` 22 { 23 "metadata": { 24 "guid":"event-1-guid" 25 }, 26 "entity": { 27 "timestamp": "2013-10-07T16:51:07+00:00", 28 "type": "app.crash", 29 "metadata": { 30 "instance": "50dd66d3f8874b35988d23a25d19bfa0", 31 "index": 3, 32 "exit_status": -1, 33 "exit_description": "unknown", 34 "reason": "CRASHED" 35 } 36 } 37 }`), &resource) 38 39 Expect(err).NotTo(HaveOccurred()) 40 41 eventFields := resource.ToFields() 42 Expect(eventFields.Guid).To(Equal("event-1-guid")) 43 Expect(eventFields.Name).To(Equal("app.crash")) 44 Expect(eventFields.Timestamp).To(Equal(testtime.MustParse(eventTimestampFormat, "2013-10-07T16:51:07+00:00"))) 45 Expect(eventFields.Description).To(Equal(`index: 3, reason: CRASHED, exit_description: unknown, exit_status: -1`)) 46 }) 47 48 It("unmarshals app update events", func() { 49 err := json.Unmarshal([]byte(` 50 { 51 "metadata": { 52 "guid": "event-1-guid" 53 }, 54 "entity": { 55 "type": "audit.app.update", 56 "timestamp": "2014-01-21T00:20:11+00:00", 57 "metadata": { 58 "request": { 59 "state": "STOPPED", 60 "command": "PRIVATE DATA HIDDEN", 61 "instances": 1, 62 "memory": 256, 63 "environment_json": "PRIVATE DATA HIDDEN" 64 } 65 } 66 } 67 }`), &resource) 68 69 Expect(err).NotTo(HaveOccurred()) 70 71 eventFields := resource.ToFields() 72 Expect(eventFields.Guid).To(Equal("event-1-guid")) 73 Expect(eventFields.Name).To(Equal("audit.app.update")) 74 Expect(eventFields.Timestamp).To(Equal(testtime.MustParse(eventTimestampFormat, "2014-01-21T00:20:11+00:00"))) 75 Expect(eventFields.Description).To(Equal("instances: 1, memory: 256, state: STOPPED, command: PRIVATE DATA HIDDEN, environment_json: PRIVATE DATA HIDDEN")) 76 }) 77 78 It("unmarshals app delete events", func() { 79 resource := new(EventResourceNewV2) 80 err := json.Unmarshal([]byte(` 81 { 82 "metadata": { 83 "guid": "event-2-guid" 84 }, 85 "entity": { 86 "type": "audit.app.delete-request", 87 "timestamp": "2014-01-21T18:39:09+00:00", 88 "metadata": { 89 "request": { 90 "recursive": true 91 } 92 } 93 } 94 }`), &resource) 95 96 Expect(err).NotTo(HaveOccurred()) 97 98 eventFields := resource.ToFields() 99 Expect(eventFields.Guid).To(Equal("event-2-guid")) 100 Expect(eventFields.Name).To(Equal("audit.app.delete-request")) 101 Expect(eventFields.Timestamp).To(Equal(testtime.MustParse(eventTimestampFormat, "2014-01-21T18:39:09+00:00"))) 102 Expect(eventFields.Description).To(Equal("recursive: true")) 103 }) 104 105 It("unmarshals the new v2 app create event", func() { 106 resource := new(EventResourceNewV2) 107 err := json.Unmarshal([]byte(` 108 { 109 "metadata": { 110 "guid": "event-1-guid" 111 }, 112 "entity": { 113 "type": "audit.app.create", 114 "timestamp": "2014-01-22T19:34:16+00:00", 115 "metadata": { 116 "request": { 117 "name": "java-warz", 118 "space_guid": "6cc20fec-0dee-4843-b875-b124bfee791a", 119 "production": false, 120 "environment_json": "PRIVATE DATA HIDDEN", 121 "instances": 1, 122 "disk_quota": 1024, 123 "state": "STOPPED", 124 "console": false 125 } 126 } 127 } 128 }`), &resource) 129 130 Expect(err).NotTo(HaveOccurred()) 131 132 eventFields := resource.ToFields() 133 Expect(eventFields.Guid).To(Equal("event-1-guid")) 134 Expect(eventFields.Name).To(Equal("audit.app.create")) 135 Expect(eventFields.Timestamp).To(Equal(testtime.MustParse(eventTimestampFormat, "2014-01-22T19:34:16+00:00"))) 136 Expect(eventFields.Description).To(Equal("disk_quota: 1024, instances: 1, state: STOPPED, environment_json: PRIVATE DATA HIDDEN")) 137 }) 138 }) 139 140 Describe("Old V2 Resources", func() { 141 BeforeEach(func() { 142 resource = new(EventResourceOldV2) 143 }) 144 145 It("unmarshals app crashed events", func() { 146 err := json.Unmarshal([]byte(` 147 { 148 "metadata": { 149 "guid": "event-1-guid" 150 }, 151 "entity": { 152 "timestamp": "2014-01-22T19:34:16+00:00", 153 "exit_status": 3, 154 "instance_index": 4, 155 "exit_description": "the exit description" 156 } 157 }`), &resource) 158 159 Expect(err).NotTo(HaveOccurred()) 160 eventFields := resource.ToFields() 161 Expect(eventFields.Guid).To(Equal("event-1-guid")) 162 Expect(eventFields.Name).To(Equal("app crashed")) 163 Expect(eventFields.Timestamp).To(Equal(testtime.MustParse(eventTimestampFormat, "2014-01-22T19:34:16+00:00"))) 164 Expect(eventFields.Description).To(Equal("instance: 4, reason: the exit description, exit_status: 3")) 165 }) 166 }) 167 }) 168 169 const eventTimestampFormat = "2006-01-02T15:04:05-07:00"