github.com/gophercloud/gophercloud@v1.11.0/openstack/keymanager/v1/acls/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/keymanager/v1/acls"
    10  	th "github.com/gophercloud/gophercloud/testhelper"
    11  	"github.com/gophercloud/gophercloud/testhelper/client"
    12  )
    13  
    14  const GetResponse = `
    15  {
    16    "read": {
    17      "created": "2018-06-22T17:54:24",
    18      "project-access": false,
    19      "updated": "2018-06-22T17:54:24",
    20      "users": [
    21        "GG27dVwR9gBMnsOaRoJ1DFJmZfdVjIdW"
    22      ]
    23    }
    24  }`
    25  
    26  const SetRequest = `
    27  {
    28    "read": {
    29      "project-access": false,
    30      "users": [
    31        "GG27dVwR9gBMnsOaRoJ1DFJmZfdVjIdW"
    32      ]
    33    }
    34  }`
    35  
    36  const SecretSetResponse = `
    37  {
    38    "acl_ref": "http://barbican:9311/v1/secrets/4befede0-fbde-4480-982c-b160c1014a47/acl"
    39  }`
    40  
    41  const ContainerSetResponse = `
    42  {
    43    "acl_ref": "http://barbican:9311/v1/containers/4befede0-fbde-4480-982c-b160c1014a47/acl"
    44  }`
    45  
    46  var ExpectedACL = acls.ACL{
    47  	"read": acls.ACLDetails{
    48  		Created:       time.Date(2018, 6, 22, 17, 54, 24, 0, time.UTC),
    49  		ProjectAccess: false,
    50  		Updated:       time.Date(2018, 6, 22, 17, 54, 24, 0, time.UTC),
    51  		Users: []string{
    52  			"GG27dVwR9gBMnsOaRoJ1DFJmZfdVjIdW",
    53  		},
    54  	},
    55  }
    56  
    57  var ExpectedSecretACLRef = acls.ACLRef("http://barbican:9311/v1/secrets/4befede0-fbde-4480-982c-b160c1014a47/acl")
    58  
    59  var ExpectedContainerACLRef = acls.ACLRef("http://barbican:9311/v1/containers/4befede0-fbde-4480-982c-b160c1014a47/acl")
    60  
    61  const UpdateRequest = `
    62  {
    63    "read": {
    64      "users": []
    65    }
    66  }`
    67  
    68  // HandleGetSecretACLSuccessfully creates an HTTP handler at `/secrets/uuid/acl`
    69  // on the test handler mux that responds with an acl.
    70  func HandleGetSecretACLSuccessfully(t *testing.T) {
    71  	th.Mux.HandleFunc("/secrets/1b8068c4-3bb6-4be6-8f1e-da0d1ea0b67c/acl", func(w http.ResponseWriter, r *http.Request) {
    72  		th.TestMethod(t, r, "GET")
    73  		th.TestHeader(t, r, "Accept", "application/json")
    74  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
    75  
    76  		w.Header().Set("Content-Type", "application/json")
    77  		w.WriteHeader(http.StatusOK)
    78  		fmt.Fprintf(w, GetResponse)
    79  	})
    80  }
    81  
    82  // HandleGetContainerACLSuccessfully creates an HTTP handler at `/secrets/uuid/acl`
    83  // on the test handler mux that responds with an acl.
    84  func HandleGetContainerACLSuccessfully(t *testing.T) {
    85  	th.Mux.HandleFunc("/containers/1b8068c4-3bb6-4be6-8f1e-da0d1ea0b67c/acl", func(w http.ResponseWriter, r *http.Request) {
    86  		th.TestMethod(t, r, "GET")
    87  		th.TestHeader(t, r, "Accept", "application/json")
    88  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
    89  
    90  		w.Header().Set("Content-Type", "application/json")
    91  		w.WriteHeader(http.StatusOK)
    92  		fmt.Fprintf(w, GetResponse)
    93  	})
    94  }
    95  
    96  // HandleSetSecretACLSuccessfully creates an HTTP handler at `/secrets` on the
    97  // test handler mux that tests secret creation.
    98  func HandleSetSecretACLSuccessfully(t *testing.T) {
    99  	th.Mux.HandleFunc("/secrets/1b8068c4-3bb6-4be6-8f1e-da0d1ea0b67c/acl", func(w http.ResponseWriter, r *http.Request) {
   100  		th.TestMethod(t, r, "PUT")
   101  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   102  		th.TestJSONRequest(t, r, SetRequest)
   103  
   104  		w.WriteHeader(http.StatusOK)
   105  		fmt.Fprintf(w, SecretSetResponse)
   106  	})
   107  }
   108  
   109  // HandleSetContainerACLSuccessfully creates an HTTP handler at `/secrets` on the
   110  // test handler mux that tests secret creation.
   111  func HandleSetContainerACLSuccessfully(t *testing.T) {
   112  	th.Mux.HandleFunc("/containers/1b8068c4-3bb6-4be6-8f1e-da0d1ea0b67c/acl", func(w http.ResponseWriter, r *http.Request) {
   113  		th.TestMethod(t, r, "PUT")
   114  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   115  		th.TestJSONRequest(t, r, SetRequest)
   116  
   117  		w.WriteHeader(http.StatusOK)
   118  		fmt.Fprintf(w, ContainerSetResponse)
   119  	})
   120  }
   121  
   122  // HandleUpdateSecretACLSuccessfully creates an HTTP handler at `/secrets` on the
   123  // test handler mux that tests secret creation.
   124  func HandleUpdateSecretACLSuccessfully(t *testing.T) {
   125  	th.Mux.HandleFunc("/secrets/1b8068c4-3bb6-4be6-8f1e-da0d1ea0b67c/acl", func(w http.ResponseWriter, r *http.Request) {
   126  		th.TestMethod(t, r, "PATCH")
   127  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   128  		th.TestJSONRequest(t, r, UpdateRequest)
   129  
   130  		w.WriteHeader(http.StatusOK)
   131  		fmt.Fprintf(w, SecretSetResponse)
   132  	})
   133  }
   134  
   135  // HandleUpdateContainerACLSuccessfully creates an HTTP handler at `/secrets` on the
   136  // test handler mux that tests secret creation.
   137  func HandleUpdateContainerACLSuccessfully(t *testing.T) {
   138  	th.Mux.HandleFunc("/containers/1b8068c4-3bb6-4be6-8f1e-da0d1ea0b67c/acl", func(w http.ResponseWriter, r *http.Request) {
   139  		th.TestMethod(t, r, "PATCH")
   140  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   141  		th.TestJSONRequest(t, r, UpdateRequest)
   142  
   143  		w.WriteHeader(http.StatusOK)
   144  		fmt.Fprintf(w, ContainerSetResponse)
   145  	})
   146  }
   147  
   148  // HandleDeleteSecretACLSuccessfully creates an HTTP handler at `/secrets` on the
   149  // test handler mux that tests secret deletion.
   150  func HandleDeleteSecretACLSuccessfully(t *testing.T) {
   151  	th.Mux.HandleFunc("/secrets/1b8068c4-3bb6-4be6-8f1e-da0d1ea0b67c/acl", func(w http.ResponseWriter, r *http.Request) {
   152  		th.TestMethod(t, r, "DELETE")
   153  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   154  
   155  		w.WriteHeader(http.StatusOK)
   156  	})
   157  }
   158  
   159  // HandleDeleteContainerACLSuccessfully creates an HTTP handler at `/secrets` on the
   160  // test handler mux that tests secret deletion.
   161  func HandleDeleteContainerACLSuccessfully(t *testing.T) {
   162  	th.Mux.HandleFunc("/containers/1b8068c4-3bb6-4be6-8f1e-da0d1ea0b67c/acl", func(w http.ResponseWriter, r *http.Request) {
   163  		th.TestMethod(t, r, "DELETE")
   164  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   165  
   166  		w.WriteHeader(http.StatusOK)
   167  	})
   168  }