github.com/gophercloud/gophercloud@v1.11.0/openstack/clustering/v1/profiles/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/profiles"
    10  	th "github.com/gophercloud/gophercloud/testhelper"
    11  	fake "github.com/gophercloud/gophercloud/testhelper/client"
    12  )
    13  
    14  const CreateResponse = `
    15  {
    16    "profile": {
    17      "created_at": "2016-01-03T16:22:23Z",
    18      "domain": null,
    19      "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
    20      "metadata": {},
    21      "name": "test-profile",
    22      "project": "42d9e9663331431f97b75e25136307ff",
    23      "spec": {
    24        "properties": {
    25          "flavor": "t2.small",
    26          "image": "centos7.3-latest",
    27          "name": "centos_server",
    28          "networks": [
    29              {
    30                "network": "private-network"
    31              }
    32          ]
    33        },
    34        "type": "os.nova.server",
    35        "version": "1.0"
    36      },
    37      "type": "os.nova.server-1.0",
    38      "updated_at": "2016-01-03T17:22:23Z",
    39      "user": "5e5bf8027826429c96af157f68dc9072"
    40    }
    41  }`
    42  
    43  var ExpectedCreate = profiles.Profile{
    44  	CreatedAt: time.Date(2016, 1, 3, 16, 22, 23, 0, time.UTC),
    45  	Domain:    "",
    46  	ID:        "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
    47  	Metadata:  map[string]interface{}{},
    48  	Name:      "test-profile",
    49  	Project:   "42d9e9663331431f97b75e25136307ff",
    50  	Spec: profiles.Spec{
    51  		Properties: map[string]interface{}{
    52  			"flavor": "t2.small",
    53  			"image":  "centos7.3-latest",
    54  			"name":   "centos_server",
    55  			"networks": []interface{}{
    56  				map[string]interface{}{"network": "private-network"},
    57  			},
    58  		},
    59  		Type:    "os.nova.server",
    60  		Version: "1.0",
    61  	},
    62  	Type:      "os.nova.server-1.0",
    63  	UpdatedAt: time.Date(2016, 1, 3, 17, 22, 23, 0, time.UTC),
    64  	User:      "5e5bf8027826429c96af157f68dc9072",
    65  }
    66  
    67  const GetResponse = `
    68  {
    69    "profile": {
    70      "created_at": "2016-01-03T16:22:23Z",
    71      "domain": null,
    72      "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
    73      "metadata": {},
    74      "name": "pserver",
    75      "project": "42d9e9663331431f97b75e25136307ff",
    76      "spec": {
    77        "properties": {
    78          "flavor": 1,
    79          "image": "cirros-0.3.4-x86_64-uec",
    80          "key_name": "oskey",
    81          "name": "cirros_server",
    82          "networks": [
    83            {
    84              "network": "private"
    85            }
    86          ]
    87        },
    88        "type": "os.nova.server",
    89        "version": "1.0"
    90      },
    91      "type": "os.nova.server-1.0",
    92      "updated_at": null,
    93      "user": "5e5bf8027826429c96af157f68dc9072"
    94    }
    95  }`
    96  
    97  var ExpectedGet = profiles.Profile{
    98  	CreatedAt: time.Date(2016, 1, 3, 16, 22, 23, 0, time.UTC),
    99  	Domain:    "",
   100  	ID:        "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
   101  	Metadata:  map[string]interface{}{},
   102  	Name:      "pserver",
   103  	Project:   "42d9e9663331431f97b75e25136307ff",
   104  	Spec: profiles.Spec{
   105  		Properties: map[string]interface{}{
   106  			"flavor":   float64(1),
   107  			"image":    "cirros-0.3.4-x86_64-uec",
   108  			"key_name": "oskey",
   109  			"name":     "cirros_server",
   110  			"networks": []interface{}{
   111  				map[string]interface{}{"network": "private"},
   112  			},
   113  		},
   114  		Type:    "os.nova.server",
   115  		Version: "1.0",
   116  	},
   117  	Type: "os.nova.server-1.0",
   118  	User: "5e5bf8027826429c96af157f68dc9072",
   119  }
   120  
   121  const ListResponse = `
   122  {
   123    "profiles": [
   124      {
   125        "created_at": "2016-01-03T16:22:23Z",
   126        "domain": null,
   127        "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
   128        "metadata": {},
   129        "name": "pserver",
   130        "project": "42d9e9663331431f97b75e25136307ff",
   131        "spec": {
   132          "properties": {
   133            "flavor": "t2.small",
   134            "image": "cirros-0.3.4-x86_64-uec",
   135            "key_name": "oskey",
   136            "name": "cirros_server",
   137            "networks": [
   138              {
   139                "network": "private"
   140              }
   141            ]
   142          },
   143          "type": "os.nova.server",
   144          "version": 1.0
   145        },
   146        "type": "os.nova.server-1.0",
   147        "updated_at": "2016-01-03T17:22:23Z",
   148        "user": "5e5bf8027826429c96af157f68dc9072"
   149      },
   150      {
   151        "created_at": null,
   152        "domain": null,
   153        "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
   154        "metadata": {},
   155        "name": "pserver",
   156        "project": "42d9e9663331431f97b75e25136307ff",
   157        "spec": {
   158          "properties": {
   159            "flavor": "t2.small",
   160            "image": "cirros-0.3.4-x86_64-uec",
   161            "key_name": "oskey",
   162            "name": "cirros_server",
   163            "networks": [
   164              {
   165                "network": "private"
   166              }
   167            ]
   168          },
   169          "type": "os.nova.server",
   170          "version": 1.0
   171        },
   172        "type": "os.nova.server-1.0",
   173        "updated_at": null,
   174        "user": "5e5bf8027826429c96af157f68dc9072"
   175      },
   176      {
   177        "created_at": "",
   178        "domain": null,
   179        "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
   180        "metadata": {},
   181        "name": "pserver",
   182        "project": "42d9e9663331431f97b75e25136307ff",
   183        "spec": {
   184          "properties": {
   185            "flavor": "t2.small",
   186            "image": "cirros-0.3.4-x86_64-uec",
   187            "key_name": "oskey",
   188            "name": "cirros_server",
   189            "networks": [
   190              {
   191                "network": "private"
   192              }
   193            ]
   194          },
   195          "type": "os.nova.server",
   196          "version": "1.0"
   197        },
   198        "type": "os.nova.server-1.0",
   199        "updated_at": "",
   200        "user": "5e5bf8027826429c96af157f68dc9072"
   201      }
   202    ]
   203  }`
   204  
   205  var ExpectedListProfile1 = profiles.Profile{
   206  	CreatedAt: time.Date(2016, 1, 3, 16, 22, 23, 0, time.UTC),
   207  	Domain:    "",
   208  	ID:        "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
   209  	Metadata:  map[string]interface{}{},
   210  	Name:      "pserver",
   211  	Project:   "42d9e9663331431f97b75e25136307ff",
   212  	Spec: profiles.Spec{
   213  		Properties: map[string]interface{}{
   214  			"flavor":   "t2.small",
   215  			"image":    "cirros-0.3.4-x86_64-uec",
   216  			"key_name": "oskey",
   217  			"name":     "cirros_server",
   218  			"networks": []interface{}{
   219  				map[string]interface{}{"network": "private"},
   220  			},
   221  		},
   222  		Type:    "os.nova.server",
   223  		Version: "1.0",
   224  	},
   225  	Type:      "os.nova.server-1.0",
   226  	UpdatedAt: time.Date(2016, 1, 3, 17, 22, 23, 0, time.UTC),
   227  	User:      "5e5bf8027826429c96af157f68dc9072",
   228  }
   229  
   230  var ExpectedListProfile2 = profiles.Profile{
   231  	Domain:   "",
   232  	ID:       "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
   233  	Metadata: map[string]interface{}{},
   234  	Name:     "pserver",
   235  	Project:  "42d9e9663331431f97b75e25136307ff",
   236  	Spec: profiles.Spec{
   237  		Properties: map[string]interface{}{
   238  			"flavor":   "t2.small",
   239  			"image":    "cirros-0.3.4-x86_64-uec",
   240  			"key_name": "oskey",
   241  			"name":     "cirros_server",
   242  			"networks": []interface{}{
   243  				map[string]interface{}{"network": "private"},
   244  			},
   245  		},
   246  		Type:    "os.nova.server",
   247  		Version: "1.0",
   248  	},
   249  	Type: "os.nova.server-1.0",
   250  	User: "5e5bf8027826429c96af157f68dc9072",
   251  }
   252  
   253  var ExpectedListProfile3 = profiles.Profile{
   254  	Domain:   "",
   255  	ID:       "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
   256  	Metadata: map[string]interface{}{},
   257  	Name:     "pserver",
   258  	Project:  "42d9e9663331431f97b75e25136307ff",
   259  	Spec: profiles.Spec{
   260  		Properties: map[string]interface{}{
   261  			"flavor":   "t2.small",
   262  			"image":    "cirros-0.3.4-x86_64-uec",
   263  			"key_name": "oskey",
   264  			"name":     "cirros_server",
   265  			"networks": []interface{}{
   266  				map[string]interface{}{"network": "private"},
   267  			},
   268  		},
   269  		Type:    "os.nova.server",
   270  		Version: "1.0",
   271  	},
   272  	Type: "os.nova.server-1.0",
   273  	User: "5e5bf8027826429c96af157f68dc9072",
   274  }
   275  
   276  var ExpectedList = []profiles.Profile{
   277  	ExpectedListProfile1,
   278  	ExpectedListProfile2,
   279  	ExpectedListProfile3,
   280  }
   281  
   282  const UpdateResponse = `
   283  {
   284    "profile": {
   285      "created_at": "2016-01-03T16:22:23Z",
   286      "domain": null,
   287      "id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
   288      "metadata": {
   289        "foo": "bar"
   290      },
   291      "name": "pserver",
   292      "project": "42d9e9663331431f97b75e25136307ff",
   293      "spec": {
   294        "properties": {
   295          "flavor": 1,
   296          "image": "cirros-0.3.4-x86_64-uec",
   297          "key_name": "oskey",
   298          "name": "cirros_server",
   299          "networks": [
   300            {
   301              "network": "private"
   302            }
   303          ]
   304        },
   305        "type": "os.nova.server",
   306        "version": "1.0"
   307      },
   308      "type": "os.nova.server-1.0",
   309      "updated_at": "2016-01-03T17:22:23Z",
   310      "user": "5e5bf8027826429c96af157f68dc9072"
   311    }
   312  }`
   313  
   314  var ExpectedUpdate = profiles.Profile{
   315  	CreatedAt: time.Date(2016, 1, 3, 16, 22, 23, 0, time.UTC),
   316  	Domain:    "",
   317  	ID:        "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
   318  	Metadata:  map[string]interface{}{"foo": "bar"},
   319  	Name:      "pserver",
   320  	Project:   "42d9e9663331431f97b75e25136307ff",
   321  	Spec: profiles.Spec{
   322  		Properties: map[string]interface{}{
   323  			"flavor":   float64(1),
   324  			"image":    "cirros-0.3.4-x86_64-uec",
   325  			"key_name": "oskey",
   326  			"name":     "cirros_server",
   327  			"networks": []interface{}{
   328  				map[string]interface{}{"network": "private"},
   329  			},
   330  		},
   331  		Type:    "os.nova.server",
   332  		Version: "1.0",
   333  	},
   334  	Type:      "os.nova.server-1.0",
   335  	UpdatedAt: time.Date(2016, 1, 3, 17, 22, 23, 0, time.UTC),
   336  	User:      "5e5bf8027826429c96af157f68dc9072",
   337  }
   338  
   339  const ValidateResponse = `
   340  {
   341  	"profile": {
   342  		"created_at": "2016-01-03T16:22:23Z",
   343  		"domain": null,
   344  		"id": "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
   345  		"metadata": {},
   346  		"name": "pserver",
   347  		"project": "42d9e9663331431f97b75e25136307ff",
   348  		"spec": {
   349  			"properties": {
   350  				"flavor": "t2.micro",
   351  				"image": "cirros-0.3.4-x86_64-uec",
   352  				"key_name": "oskey",
   353  				"name": "cirros_server",
   354  				"networks": [
   355  					{
   356  						"network": "private"
   357  					}
   358  				]
   359  			},
   360  			"type": "os.nova.server",
   361  			"version": "1.0"
   362  		},
   363  		"type": "os.nova.server-1.0",
   364  		"updated_at": "2016-01-03T17:22:23Z",
   365  		"user": "5e5bf8027826429c96af157f68dc9072"
   366  	}
   367  }`
   368  
   369  var ExpectedValidate = profiles.Profile{
   370  	CreatedAt: time.Date(2016, 1, 3, 16, 22, 23, 0, time.UTC),
   371  	Domain:    "",
   372  	ID:        "9e1c6f42-acf5-4688-be2c-8ce954ef0f23",
   373  	Metadata:  map[string]interface{}{},
   374  	Name:      "pserver",
   375  	Project:   "42d9e9663331431f97b75e25136307ff",
   376  	Spec: profiles.Spec{
   377  		Properties: map[string]interface{}{
   378  			"flavor":   "t2.micro",
   379  			"image":    "cirros-0.3.4-x86_64-uec",
   380  			"key_name": "oskey",
   381  			"name":     "cirros_server",
   382  			"networks": []interface{}{
   383  				map[string]interface{}{"network": "private"},
   384  			},
   385  		},
   386  		Type:    "os.nova.server",
   387  		Version: "1.0",
   388  	},
   389  	Type:      "os.nova.server-1.0",
   390  	UpdatedAt: time.Date(2016, 1, 3, 17, 22, 23, 0, time.UTC),
   391  	User:      "5e5bf8027826429c96af157f68dc9072",
   392  }
   393  
   394  func HandleCreateSuccessfully(t *testing.T) {
   395  	th.Mux.HandleFunc("/v1/profiles", func(w http.ResponseWriter, r *http.Request) {
   396  		th.TestMethod(t, r, "POST")
   397  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   398  
   399  		w.Header().Add("Content-Type", "application/json")
   400  		w.WriteHeader(http.StatusOK)
   401  
   402  		fmt.Fprint(w, CreateResponse)
   403  	})
   404  }
   405  
   406  func HandleGetSuccessfully(t *testing.T) {
   407  	th.Mux.HandleFunc("/v1/profiles/9e1c6f42-acf5-4688-be2c-8ce954ef0f23", func(w http.ResponseWriter, r *http.Request) {
   408  		th.TestMethod(t, r, "GET")
   409  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   410  
   411  		w.Header().Add("Content-Type", "application/json")
   412  		w.WriteHeader(http.StatusOK)
   413  
   414  		fmt.Fprint(w, GetResponse)
   415  	})
   416  }
   417  
   418  func HandleListSuccessfully(t *testing.T) {
   419  	th.Mux.HandleFunc("/v1/profiles", func(w http.ResponseWriter, r *http.Request) {
   420  		th.TestMethod(t, r, "GET")
   421  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   422  
   423  		w.Header().Add("Content-Type", "application/json")
   424  		w.WriteHeader(http.StatusOK)
   425  
   426  		fmt.Fprintf(w, ListResponse)
   427  	})
   428  }
   429  
   430  func HandleUpdateSuccessfully(t *testing.T) {
   431  	th.Mux.HandleFunc("/v1/profiles/9e1c6f42-acf5-4688-be2c-8ce954ef0f23", func(w http.ResponseWriter, r *http.Request) {
   432  		th.TestMethod(t, r, "PATCH")
   433  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   434  
   435  		w.Header().Add("Content-Type", "application/json")
   436  		w.WriteHeader(http.StatusOK)
   437  
   438  		fmt.Fprint(w, UpdateResponse)
   439  	})
   440  }
   441  
   442  func HandleDeleteSuccessfully(t *testing.T) {
   443  	th.Mux.HandleFunc("/v1/profiles/6dc6d336e3fc4c0a951b5698cd1236ee", func(w http.ResponseWriter, r *http.Request) {
   444  		th.TestMethod(t, r, "DELETE")
   445  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   446  
   447  		w.Header().Add("Content-Type", "application/json")
   448  		w.WriteHeader(http.StatusNoContent)
   449  	})
   450  }
   451  
   452  func HandleValidateSuccessfully(t *testing.T) {
   453  	th.Mux.HandleFunc("/v1/profiles/validate", func(w http.ResponseWriter, r *http.Request) {
   454  		th.TestMethod(t, r, "POST")
   455  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   456  		th.TestHeader(t, r, "OpenStack-API-Version", "clustering 1.2")
   457  
   458  		w.Header().Add("Content-Type", "application/json")
   459  		w.WriteHeader(http.StatusOK)
   460  
   461  		fmt.Fprint(w, ValidateResponse)
   462  	})
   463  }