@@ -101,110 +101,113 @@ class CloudwatchTests: XCTestCase {
101
101
XCTAssertEqual ( event. detail. instanceId, " 0 " )
102
102
XCTAssertEqual ( event. detail. action, . terminate)
103
103
}
104
-
105
- func testS3ObjectCreatedEventFromJSON( ) {
106
- let eventBody = CloudwatchTests . eventBody (
107
- type: CloudwatchDetails . S3. ObjectCreatedNotification. name,
108
- details: " { \" version \" : \" 0 \" , \" bucket \" : { \" name \" : \" amzn-s3-demo-bucket1 \" }, \" object \" : { \" key \" : \" example-key \" , \" size \" :5, \" etag \" : \" b1946ac92492d2347c6235b4d2611184 \" , \" version-id \" : \" IYV3p45BT0ac8hjHg1houSdS1a.Mro8e \" , \" sequencer \" : \" 617f08299329d189 \" }, \" request-id \" : \" N4N7GDK58NMKJ12R \" , \" requester \" : \" 123456789012 \" , \" source-ip-address \" : \" 1.2.3.4 \" , \" reason \" : \" PutObject \" } "
109
-
110
- )
111
- let data = eventBody. data ( using: . utf8) !
112
- var maybeEvent : CloudWatchS3ObjectCreatedNotificationEvent ?
113
- XCTAssertNoThrow (
114
- maybeEvent = try JSONDecoder ( ) . decode ( CloudWatchS3ObjectCreatedNotificationEvent . self, from: data)
115
- )
116
-
117
- guard let event = maybeEvent else {
118
- return XCTFail ( " Expected to have an event " )
119
- }
120
-
121
- XCTAssertEqual ( event. id, " cdc73f9d-aea9-11e3-9d5a-835b769c0d9c " )
122
- XCTAssertEqual ( event. source, " aws.events " )
123
- XCTAssertEqual ( event. accountId, " 123456789012 " )
124
- XCTAssertEqual ( event. time, Date ( timeIntervalSince1970: 0 ) )
125
- XCTAssertEqual ( event. region, . us_east_1)
126
- XCTAssertEqual ( event. resources, [ " arn:aws:events:us-east-1:123456789012:rule/ExampleRule " ] )
127
- XCTAssertEqual ( event. detail. version, " 0 " )
128
- XCTAssertEqual ( event. detail. bucket. name, " amzn-s3-demo-bucket1 " )
129
- XCTAssertEqual ( event. detail. object. key, " example-key " )
130
- XCTAssertEqual ( event. detail. object. size, 5 )
131
- XCTAssertEqual ( event. detail. object. etag, " b1946ac92492d2347c6235b4d2611184 " )
132
- XCTAssertEqual ( event. detail. object. versionId, " IYV3p45BT0ac8hjHg1houSdS1a.Mro8e " )
133
- XCTAssertEqual ( event. detail. object. sequencer, " 617f08299329d189 " )
134
- XCTAssertEqual ( event. detail. requestId, " N4N7GDK58NMKJ12R " )
135
- XCTAssertEqual ( event. detail. requester, " 123456789012 " )
136
- XCTAssertEqual ( event. detail. sourceIpAddress, " 1.2.3.4 " )
137
- XCTAssertEqual ( event. detail. reason, . putObject)
138
- }
139
-
140
- func testS3ObjectDeletedEventFromJSON( ) {
141
- let eventBody = CloudwatchTests . eventBody (
142
- type: CloudwatchDetails . S3. ObjectDeletedNotification. name,
143
- details: " { \" version \" : \" 0 \" , \" bucket \" : { \" name \" : \" amzn-s3-demo-bucket1 \" }, \" object \" : { \" key \" : \" example-key \" , \" etag \" : \" d41d8cd98f00b204e9800998ecf8427e \" , \" version-id \" : \" 1QW9g1Z99LUNbvaaYVpW9xDlOLU.qxgF \" , \" sequencer \" : \" 617f0837b476e463 \" }, \" request-id \" : \" 0BH729840619AG5K \" , \" requester \" : \" 123456789012 \" , \" source-ip-address \" : \" 1.2.3.4 \" , \" reason \" : \" DeleteObject \" , \" deletion-type \" : \" Delete Marker Created \" } "
144
-
145
- )
146
- let data = eventBody. data ( using: . utf8) !
147
- var maybeEvent : CloudWatchS3ObjectDeletedNotificationEvent ?
148
- XCTAssertNoThrow (
149
- maybeEvent = try JSONDecoder ( ) . decode ( CloudWatchS3ObjectDeletedNotificationEvent . self, from: data)
150
- )
151
-
152
- guard let event = maybeEvent else {
153
- return XCTFail ( " Expected to have an event " )
154
- }
155
-
156
- XCTAssertEqual ( event. id, " cdc73f9d-aea9-11e3-9d5a-835b769c0d9c " )
157
- XCTAssertEqual ( event. source, " aws.events " )
158
- XCTAssertEqual ( event. accountId, " 123456789012 " )
159
- XCTAssertEqual ( event. time, Date ( timeIntervalSince1970: 0 ) )
160
- XCTAssertEqual ( event. region, . us_east_1)
161
- XCTAssertEqual ( event. resources, [ " arn:aws:events:us-east-1:123456789012:rule/ExampleRule " ] )
162
- XCTAssertEqual ( event. detail. version, " 0 " )
163
- XCTAssertEqual ( event. detail. bucket. name, " amzn-s3-demo-bucket1 " )
164
- XCTAssertEqual ( event. detail. object. key, " example-key " )
165
- XCTAssertEqual ( event. detail. object. etag, " d41d8cd98f00b204e9800998ecf8427e " )
166
- XCTAssertEqual ( event. detail. object. versionId, " 1QW9g1Z99LUNbvaaYVpW9xDlOLU.qxgF " )
167
- XCTAssertEqual ( event. detail. object. sequencer, " 617f0837b476e463 " )
168
- XCTAssertEqual ( event. detail. requestId, " 0BH729840619AG5K " )
169
- XCTAssertEqual ( event. detail. requester, " 123456789012 " )
170
- XCTAssertEqual ( event. detail. sourceIpAddress, " 1.2.3.4 " )
171
- XCTAssertEqual ( event. detail. reason, . deleteObject)
172
- XCTAssertEqual ( event. detail. deletionType, . deleteMarkerCreated)
173
- }
174
-
175
- func testS3ObjectRestoreCompletedEventFromJSON( ) {
176
- let eventBody = CloudwatchTests . eventBody (
177
- type: CloudwatchDetails . S3. ObjectRestoreCompletedNotification. name,
178
- details: " { \" version \" : \" 0 \" , \" bucket \" : { \" name \" : \" amzn-s3-demo-bucket1 \" }, \" object \" : { \" key \" : \" example-key \" , \" size \" : 5, \" etag \" : \" b1946ac92492d2347c6235b4d2611184 \" , \" version-id \" : \" KKsjUC1.6gIjqtvhfg5AdMI0eCePIiT3 \" }, \" request-id \" : \" 189F19CB7FB1B6A4 \" , \" requester \" : \" s3.amazonaws.com \" , \" restore-expiry-time \" : \" 2021-11-13T00:00:00Z \" , \" source-storage-class \" : \" GLACIER \" } "
179
-
180
- )
181
- let data = eventBody. data ( using: . utf8) !
182
- var maybeEvent : CloudWatchS3ObjectRestoreCompletedNotificationEvent ?
183
- XCTAssertNoThrow (
184
- maybeEvent = try JSONDecoder ( ) . decode ( CloudWatchS3ObjectRestoreCompletedNotificationEvent . self, from: data)
185
- )
186
-
187
- guard let event = maybeEvent else {
188
- return XCTFail ( " Expected to have an event " )
189
- }
190
-
191
- XCTAssertEqual ( event. id, " cdc73f9d-aea9-11e3-9d5a-835b769c0d9c " )
192
- XCTAssertEqual ( event. source, " aws.events " )
193
- XCTAssertEqual ( event. accountId, " 123456789012 " )
194
- XCTAssertEqual ( event. time, Date ( timeIntervalSince1970: 0 ) )
195
- XCTAssertEqual ( event. region, . us_east_1)
196
- XCTAssertEqual ( event. resources, [ " arn:aws:events:us-east-1:123456789012:rule/ExampleRule " ] )
197
- XCTAssertEqual ( event. detail. version, " 0 " )
198
- XCTAssertEqual ( event. detail. bucket. name, " amzn-s3-demo-bucket1 " )
199
- XCTAssertEqual ( event. detail. object. key, " example-key " )
200
- XCTAssertEqual ( event. detail. object. size, 5 )
201
- XCTAssertEqual ( event. detail. object. etag, " b1946ac92492d2347c6235b4d2611184 " )
202
- XCTAssertEqual ( event. detail. object. versionId, " KKsjUC1.6gIjqtvhfg5AdMI0eCePIiT3 " )
203
- XCTAssertEqual ( event. detail. requestId, " 189F19CB7FB1B6A4 " )
204
- XCTAssertEqual ( event. detail. requester, " s3.amazonaws.com " )
205
- XCTAssertEqual ( event. detail. restoreExpiryTime. description, " 2021-11-13 00:00:00 +0000 " )
206
- XCTAssertEqual ( event. detail. sourceStorageClass, . glacier)
207
- }
104
+
105
+ func testS3ObjectCreatedEventFromJSON( ) {
106
+ let eventBody = CloudwatchTests . eventBody (
107
+ type: CloudwatchDetails . S3. ObjectCreatedNotification. name,
108
+ details:
109
+ " { \" version \" : \" 0 \" , \" bucket \" : { \" name \" : \" amzn-s3-demo-bucket1 \" }, \" object \" : { \" key \" : \" example-key \" , \" size \" :5, \" etag \" : \" b1946ac92492d2347c6235b4d2611184 \" , \" version-id \" : \" IYV3p45BT0ac8hjHg1houSdS1a.Mro8e \" , \" sequencer \" : \" 617f08299329d189 \" }, \" request-id \" : \" N4N7GDK58NMKJ12R \" , \" requester \" : \" 123456789012 \" , \" source-ip-address \" : \" 1.2.3.4 \" , \" reason \" : \" PutObject \" } "
110
+
111
+ )
112
+ let data = eventBody. data ( using: . utf8) !
113
+ var maybeEvent : CloudWatchS3ObjectCreatedNotificationEvent ?
114
+ XCTAssertNoThrow (
115
+ maybeEvent = try JSONDecoder ( ) . decode ( CloudWatchS3ObjectCreatedNotificationEvent . self, from: data)
116
+ )
117
+
118
+ guard let event = maybeEvent else {
119
+ return XCTFail ( " Expected to have an event " )
120
+ }
121
+
122
+ XCTAssertEqual ( event. id, " cdc73f9d-aea9-11e3-9d5a-835b769c0d9c " )
123
+ XCTAssertEqual ( event. source, " aws.events " )
124
+ XCTAssertEqual ( event. accountId, " 123456789012 " )
125
+ XCTAssertEqual ( event. time, Date ( timeIntervalSince1970: 0 ) )
126
+ XCTAssertEqual ( event. region, . us_east_1)
127
+ XCTAssertEqual ( event. resources, [ " arn:aws:events:us-east-1:123456789012:rule/ExampleRule " ] )
128
+ XCTAssertEqual ( event. detail. version, " 0 " )
129
+ XCTAssertEqual ( event. detail. bucket. name, " amzn-s3-demo-bucket1 " )
130
+ XCTAssertEqual ( event. detail. object. key, " example-key " )
131
+ XCTAssertEqual ( event. detail. object. size, 5 )
132
+ XCTAssertEqual ( event. detail. object. etag, " b1946ac92492d2347c6235b4d2611184 " )
133
+ XCTAssertEqual ( event. detail. object. versionId, " IYV3p45BT0ac8hjHg1houSdS1a.Mro8e " )
134
+ XCTAssertEqual ( event. detail. object. sequencer, " 617f08299329d189 " )
135
+ XCTAssertEqual ( event. detail. requestId, " N4N7GDK58NMKJ12R " )
136
+ XCTAssertEqual ( event. detail. requester, " 123456789012 " )
137
+ XCTAssertEqual ( event. detail. sourceIpAddress, " 1.2.3.4 " )
138
+ XCTAssertEqual ( event. detail. reason, . putObject)
139
+ }
140
+
141
+ func testS3ObjectDeletedEventFromJSON( ) {
142
+ let eventBody = CloudwatchTests . eventBody (
143
+ type: CloudwatchDetails . S3. ObjectDeletedNotification. name,
144
+ details:
145
+ " { \" version \" : \" 0 \" , \" bucket \" : { \" name \" : \" amzn-s3-demo-bucket1 \" }, \" object \" : { \" key \" : \" example-key \" , \" etag \" : \" d41d8cd98f00b204e9800998ecf8427e \" , \" version-id \" : \" 1QW9g1Z99LUNbvaaYVpW9xDlOLU.qxgF \" , \" sequencer \" : \" 617f0837b476e463 \" }, \" request-id \" : \" 0BH729840619AG5K \" , \" requester \" : \" 123456789012 \" , \" source-ip-address \" : \" 1.2.3.4 \" , \" reason \" : \" DeleteObject \" , \" deletion-type \" : \" Delete Marker Created \" } "
146
+
147
+ )
148
+ let data = eventBody. data ( using: . utf8) !
149
+ var maybeEvent : CloudWatchS3ObjectDeletedNotificationEvent ?
150
+ XCTAssertNoThrow (
151
+ maybeEvent = try JSONDecoder ( ) . decode ( CloudWatchS3ObjectDeletedNotificationEvent . self, from: data)
152
+ )
153
+
154
+ guard let event = maybeEvent else {
155
+ return XCTFail ( " Expected to have an event " )
156
+ }
157
+
158
+ XCTAssertEqual ( event. id, " cdc73f9d-aea9-11e3-9d5a-835b769c0d9c " )
159
+ XCTAssertEqual ( event. source, " aws.events " )
160
+ XCTAssertEqual ( event. accountId, " 123456789012 " )
161
+ XCTAssertEqual ( event. time, Date ( timeIntervalSince1970: 0 ) )
162
+ XCTAssertEqual ( event. region, . us_east_1)
163
+ XCTAssertEqual ( event. resources, [ " arn:aws:events:us-east-1:123456789012:rule/ExampleRule " ] )
164
+ XCTAssertEqual ( event. detail. version, " 0 " )
165
+ XCTAssertEqual ( event. detail. bucket. name, " amzn-s3-demo-bucket1 " )
166
+ XCTAssertEqual ( event. detail. object. key, " example-key " )
167
+ XCTAssertEqual ( event. detail. object. etag, " d41d8cd98f00b204e9800998ecf8427e " )
168
+ XCTAssertEqual ( event. detail. object. versionId, " 1QW9g1Z99LUNbvaaYVpW9xDlOLU.qxgF " )
169
+ XCTAssertEqual ( event. detail. object. sequencer, " 617f0837b476e463 " )
170
+ XCTAssertEqual ( event. detail. requestId, " 0BH729840619AG5K " )
171
+ XCTAssertEqual ( event. detail. requester, " 123456789012 " )
172
+ XCTAssertEqual ( event. detail. sourceIpAddress, " 1.2.3.4 " )
173
+ XCTAssertEqual ( event. detail. reason, . deleteObject)
174
+ XCTAssertEqual ( event. detail. deletionType, . deleteMarkerCreated)
175
+ }
176
+
177
+ func testS3ObjectRestoreCompletedEventFromJSON( ) {
178
+ let eventBody = CloudwatchTests . eventBody (
179
+ type: CloudwatchDetails . S3. ObjectRestoreCompletedNotification. name,
180
+ details:
181
+ " { \" version \" : \" 0 \" , \" bucket \" : { \" name \" : \" amzn-s3-demo-bucket1 \" }, \" object \" : { \" key \" : \" example-key \" , \" size \" : 5, \" etag \" : \" b1946ac92492d2347c6235b4d2611184 \" , \" version-id \" : \" KKsjUC1.6gIjqtvhfg5AdMI0eCePIiT3 \" }, \" request-id \" : \" 189F19CB7FB1B6A4 \" , \" requester \" : \" s3.amazonaws.com \" , \" restore-expiry-time \" : \" 2021-11-13T00:00:00Z \" , \" source-storage-class \" : \" GLACIER \" } "
182
+
183
+ )
184
+ let data = eventBody. data ( using: . utf8) !
185
+ var maybeEvent : CloudWatchS3ObjectRestoreCompletedNotificationEvent ?
186
+ XCTAssertNoThrow (
187
+ maybeEvent = try JSONDecoder ( ) . decode ( CloudWatchS3ObjectRestoreCompletedNotificationEvent . self, from: data)
188
+ )
189
+
190
+ guard let event = maybeEvent else {
191
+ return XCTFail ( " Expected to have an event " )
192
+ }
193
+
194
+ XCTAssertEqual ( event. id, " cdc73f9d-aea9-11e3-9d5a-835b769c0d9c " )
195
+ XCTAssertEqual ( event. source, " aws.events " )
196
+ XCTAssertEqual ( event. accountId, " 123456789012 " )
197
+ XCTAssertEqual ( event. time, Date ( timeIntervalSince1970: 0 ) )
198
+ XCTAssertEqual ( event. region, . us_east_1)
199
+ XCTAssertEqual ( event. resources, [ " arn:aws:events:us-east-1:123456789012:rule/ExampleRule " ] )
200
+ XCTAssertEqual ( event. detail. version, " 0 " )
201
+ XCTAssertEqual ( event. detail. bucket. name, " amzn-s3-demo-bucket1 " )
202
+ XCTAssertEqual ( event. detail. object. key, " example-key " )
203
+ XCTAssertEqual ( event. detail. object. size, 5 )
204
+ XCTAssertEqual ( event. detail. object. etag, " b1946ac92492d2347c6235b4d2611184 " )
205
+ XCTAssertEqual ( event. detail. object. versionId, " KKsjUC1.6gIjqtvhfg5AdMI0eCePIiT3 " )
206
+ XCTAssertEqual ( event. detail. requestId, " 189F19CB7FB1B6A4 " )
207
+ XCTAssertEqual ( event. detail. requester, " s3.amazonaws.com " )
208
+ XCTAssertEqual ( event. detail. restoreExpiryTime. description, " 2021-11-13 00:00:00 +0000 " )
209
+ XCTAssertEqual ( event. detail. sourceStorageClass, . glacier)
210
+ }
208
211
209
212
func testCustomEventFromJSON( ) {
210
213
struct Custom : CloudwatchDetail {
0 commit comments