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  }