github.com/gophercloud/gophercloud@v1.11.0/openstack/clustering/v1/actions/testing/fixtures_test.go (about) 1 package testing 2 3 import ( 4 "fmt" 5 "net/http" 6 "testing" 7 "time" 8 9 "github.com/gophercloud/gophercloud/openstack/clustering/v1/actions" 10 th "github.com/gophercloud/gophercloud/testhelper" 11 fake "github.com/gophercloud/gophercloud/testhelper/client" 12 ) 13 14 const ListResponse = ` 15 { 16 "actions": [ 17 { 18 "action": "NODE_DELETE", 19 "cause": "RPC Request", 20 "created_at": "2015-11-04T05:21:41Z", 21 "data": {}, 22 "depended_by": ["ef67fe80-6547-40f2-ba1b-83e950aa38df"], 23 "depends_on": ["ef67fe80-6547-40f2-ba1b-83e950aa38df"], 24 "end_time": 1425550000.0, 25 "id": "edce3528-864f-41fb-8759-f4707925cc09", 26 "inputs": {}, 27 "interval": -1, 28 "name": "node_delete_f0de9b9c", 29 "outputs": {}, 30 "owner": null, 31 "project": "f1fe61dcda2f4618a14c10dc7abc214d", 32 "start_time": 1425550000.0, 33 "status": "SUCCEEDED", 34 "status_reason": "Action completed successfully.", 35 "target": "f0de9b9c-6d48-4a46-af21-2ca8607777fe", 36 "timeout": 3600, 37 "updated_at": "2016-11-04T05:21:41Z", 38 "user": "8bcd2cdca7684c02afc9e4f2fc0f0c79" 39 }, 40 { 41 "action": "NODE_DELETE", 42 "cause": "RPC Request", 43 "created_at": null, 44 "data": {}, 45 "depended_by": ["ef67fe80-6547-40f2-ba1b-83e950aa38df"], 46 "depends_on": ["ef67fe80-6547-40f2-ba1b-83e950aa38df"], 47 "end_time": 1425550000.0, 48 "id": "edce3528-864f-41fb-8759-f4707925cc09", 49 "inputs": {}, 50 "interval": -1, 51 "name": "node_delete_f0de9b9c", 52 "outputs": {}, 53 "owner": null, 54 "project": "f1fe61dcda2f4618a14c10dc7abc214d", 55 "start_time": 1425550000.0, 56 "status": "SUCCEEDED", 57 "status_reason": "Action completed successfully.", 58 "target": "f0de9b9c-6d48-4a46-af21-2ca8607777fe", 59 "timeout": 3600, 60 "updated_at": "", 61 "user": "8bcd2cdca7684c02afc9e4f2fc0f0c79" 62 } 63 ] 64 } 65 ` 66 67 const GetResponse = ` 68 { 69 "action": { 70 "action": "NODE_DELETE", 71 "cause": "RPC Request", 72 "created_at": "2015-11-04T05:21:41Z", 73 "data": {}, 74 "depended_by": ["ef67fe80-6547-40f2-ba1b-83e950aa38df"], 75 "depends_on": ["ef67fe80-6547-40f2-ba1b-83e950aa38df"], 76 "end_time": 1425550000.0, 77 "id": "edce3528-864f-41fb-8759-f4707925cc09", 78 "inputs": {}, 79 "interval": -1, 80 "name": "node_delete_f0de9b9c", 81 "outputs": {}, 82 "owner": null, 83 "project": "f1fe61dcda2f4618a14c10dc7abc214d", 84 "start_time": 1425550000.0, 85 "status": "SUCCEEDED", 86 "status_reason": "Action completed successfully.", 87 "target": "f0de9b9c-6d48-4a46-af21-2ca8607777fe", 88 "timeout": 3600, 89 "updated_at": "2016-11-04T05:21:41Z", 90 "user": "8bcd2cdca7684c02afc9e4f2fc0f0c79" 91 } 92 } 93 ` 94 95 var ExpectedAction1 = actions.Action{ 96 Action: "NODE_DELETE", 97 Cause: "RPC Request", 98 CreatedAt: time.Date(2015, 11, 4, 5, 21, 41, 0, time.UTC), 99 Data: map[string]interface{}{}, 100 DependedBy: []string{"ef67fe80-6547-40f2-ba1b-83e950aa38df"}, 101 DependsOn: []string{"ef67fe80-6547-40f2-ba1b-83e950aa38df"}, 102 EndTime: 1425550000.0, 103 ID: "edce3528-864f-41fb-8759-f4707925cc09", 104 Inputs: make(map[string]interface{}), 105 Interval: -1, 106 Name: "node_delete_f0de9b9c", 107 Outputs: make(map[string]interface{}), 108 Owner: "", 109 Project: "f1fe61dcda2f4618a14c10dc7abc214d", 110 StartTime: 1425550000.0, 111 Status: "SUCCEEDED", 112 StatusReason: "Action completed successfully.", 113 Target: "f0de9b9c-6d48-4a46-af21-2ca8607777fe", 114 Timeout: 3600, 115 UpdatedAt: time.Date(2016, 11, 4, 5, 21, 41, 0, time.UTC), 116 User: "8bcd2cdca7684c02afc9e4f2fc0f0c79", 117 } 118 119 var ExpectedAction2 = actions.Action{ 120 Action: "NODE_DELETE", 121 Cause: "RPC Request", 122 CreatedAt: time.Time{}, 123 Data: map[string]interface{}{}, 124 DependedBy: []string{"ef67fe80-6547-40f2-ba1b-83e950aa38df"}, 125 DependsOn: []string{"ef67fe80-6547-40f2-ba1b-83e950aa38df"}, 126 EndTime: 1425550000.0, 127 ID: "edce3528-864f-41fb-8759-f4707925cc09", 128 Inputs: make(map[string]interface{}), 129 Interval: -1, 130 Name: "node_delete_f0de9b9c", 131 Outputs: make(map[string]interface{}), 132 Owner: "", 133 Project: "f1fe61dcda2f4618a14c10dc7abc214d", 134 StartTime: 1425550000.0, 135 Status: "SUCCEEDED", 136 StatusReason: "Action completed successfully.", 137 Target: "f0de9b9c-6d48-4a46-af21-2ca8607777fe", 138 Timeout: 3600, 139 UpdatedAt: time.Time{}, 140 User: "8bcd2cdca7684c02afc9e4f2fc0f0c79", 141 } 142 143 var ExpectedActions = []actions.Action{ExpectedAction1, ExpectedAction2} 144 145 func HandleListSuccessfully(t *testing.T) { 146 th.Mux.HandleFunc("/v1/actions", func(w http.ResponseWriter, r *http.Request) { 147 th.TestMethod(t, r, "GET") 148 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 149 150 w.Header().Add("Content-Type", "application/json") 151 w.WriteHeader(http.StatusOK) 152 fmt.Fprintf(w, ListResponse) 153 }) 154 } 155 156 func HandleGetSuccessfully(t *testing.T, id string) { 157 th.Mux.HandleFunc("/v1/actions/"+id, func(w http.ResponseWriter, r *http.Request) { 158 th.TestMethod(t, r, "GET") 159 th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) 160 161 w.Header().Add("Content-Type", "application/json") 162 w.WriteHeader(http.StatusOK) 163 164 fmt.Fprintf(w, GetResponse) 165 }) 166 }