github.com/gophercloud/gophercloud@v1.11.0/openstack/sharedfilesystems/v2/sharetransfers/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"
    10  	"github.com/gophercloud/gophercloud/openstack/sharedfilesystems/v2/sharetransfers"
    11  	th "github.com/gophercloud/gophercloud/testhelper"
    12  	"github.com/gophercloud/gophercloud/testhelper/client"
    13  )
    14  
    15  const ListOutput = `
    16  {
    17    "transfers": [
    18      {
    19        "created_at": "2020-02-28T12:44:28.051989",
    20        "resource_id": "2f6f1684-1ded-40db-8a49-7c87dedbc758",
    21        "id": "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
    22        "links": [
    23          {
    24            "href": "https://share/v3/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
    25            "rel": "self"
    26          },
    27          {
    28            "href": "https://share/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
    29            "rel": "bookmark"
    30          }
    31        ],
    32        "name": null
    33      }
    34    ]
    35  }
    36  `
    37  
    38  const GetOutput = `
    39  {
    40    "transfer": {
    41      "created_at": "2020-02-28T12:44:28.051989",
    42      "resource_id": "2f6f1684-1ded-40db-8a49-7c87dedbc758",
    43      "id": "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
    44      "links": [
    45        {
    46          "href": "https://share/v3/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
    47          "rel": "self"
    48        },
    49        {
    50          "href": "https://share/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
    51          "rel": "bookmark"
    52        }
    53      ],
    54      "name": null
    55    }
    56  }
    57  `
    58  
    59  const CreateRequest = `
    60  {
    61    "transfer": {
    62      "share_id": "2f6f1684-1ded-40db-8a49-7c87dedbc758"
    63    }
    64  }
    65  `
    66  
    67  const CreateResponse = `
    68  {
    69    "transfer": {
    70      "auth_key": "cb67e0e7387d9eac",
    71      "created_at": "2020-02-28T12:44:28.051989",
    72      "id": "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
    73      "links": [
    74        {
    75          "href": "https://share/v3/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
    76          "rel": "self"
    77        },
    78        {
    79          "href": "https://share/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
    80          "rel": "bookmark"
    81        }
    82      ],
    83      "name": null,
    84      "resource_id": "2f6f1684-1ded-40db-8a49-7c87dedbc758"
    85    }
    86  }
    87  `
    88  
    89  const AcceptTransferRequest = `
    90  {
    91      "accept": {
    92          "auth_key": "9266c59563c84664"
    93      }
    94  }
    95  `
    96  
    97  var TransferRequest = sharetransfers.CreateOpts{
    98  	ShareID: "2f6f1684-1ded-40db-8a49-7c87dedbc758",
    99  }
   100  
   101  var createdAt, _ = time.Parse(gophercloud.RFC3339MilliNoZ, "2020-02-28T12:44:28.051989")
   102  var TransferResponse = sharetransfers.Transfer{
   103  	ID:         "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
   104  	AuthKey:    "cb67e0e7387d9eac",
   105  	Name:       "",
   106  	ResourceID: "2f6f1684-1ded-40db-8a49-7c87dedbc758",
   107  	CreatedAt:  createdAt,
   108  	Links: []map[string]string{
   109  		{
   110  			"href": "https://share/v3/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
   111  			"rel":  "self",
   112  		},
   113  		{
   114  			"href": "https://share/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
   115  			"rel":  "bookmark",
   116  		},
   117  	},
   118  }
   119  
   120  var TransferListResponse = []sharetransfers.Transfer{TransferResponse}
   121  
   122  var AcceptRequest = sharetransfers.AcceptOpts{
   123  	AuthKey: "9266c59563c84664",
   124  }
   125  
   126  var AcceptResponse = sharetransfers.Transfer{
   127  	ID:         "b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
   128  	Name:       "",
   129  	ResourceID: "2f6f1684-1ded-40db-8a49-7c87dedbc758",
   130  	Links: []map[string]string{
   131  		{
   132  			"href": "https://share/v3/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
   133  			"rel":  "self",
   134  		},
   135  		{
   136  			"href": "https://share/53c2b94f63fb4f43a21b92d119ce549f/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f",
   137  			"rel":  "bookmark",
   138  		},
   139  	},
   140  }
   141  
   142  func HandleCreateTransfer(t *testing.T) {
   143  	th.Mux.HandleFunc("/share-transfers", func(w http.ResponseWriter, r *http.Request) {
   144  		th.TestMethod(t, r, "POST")
   145  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   146  		w.Header().Add("Content-Type", "application/json")
   147  		th.TestJSONRequest(t, r, CreateRequest)
   148  
   149  		w.WriteHeader(http.StatusAccepted)
   150  		fmt.Fprintf(w, CreateResponse)
   151  	})
   152  }
   153  
   154  func HandleAcceptTransfer(t *testing.T) {
   155  	th.Mux.HandleFunc("/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f/accept", func(w http.ResponseWriter, r *http.Request) {
   156  		th.TestMethod(t, r, "POST")
   157  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   158  		w.Header().Add("Content-Type", "application/json")
   159  		th.TestJSONRequest(t, r, AcceptTransferRequest)
   160  
   161  		w.WriteHeader(http.StatusAccepted)
   162  	})
   163  }
   164  
   165  func HandleDeleteTransfer(t *testing.T) {
   166  	th.Mux.HandleFunc("/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", func(w http.ResponseWriter, r *http.Request) {
   167  		th.TestMethod(t, r, "DELETE")
   168  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   169  
   170  		w.WriteHeader(http.StatusOK)
   171  	})
   172  }
   173  
   174  func HandleListTransfers(t *testing.T) {
   175  	th.Mux.HandleFunc("/share-transfers", func(w http.ResponseWriter, r *http.Request) {
   176  		th.TestMethod(t, r, "GET")
   177  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   178  		w.Header().Add("Content-Type", "application/json")
   179  		th.TestFormValues(t, r, map[string]string{"all_tenants": "true"})
   180  
   181  		w.WriteHeader(http.StatusOK)
   182  		fmt.Fprintf(w, ListOutput)
   183  	})
   184  }
   185  
   186  func HandleListTransfersDetail(t *testing.T) {
   187  	th.Mux.HandleFunc("/share-transfers/detail", func(w http.ResponseWriter, r *http.Request) {
   188  		th.TestMethod(t, r, "GET")
   189  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   190  		w.Header().Add("Content-Type", "application/json")
   191  		th.TestFormValues(t, r, map[string]string{"all_tenants": "true"})
   192  
   193  		w.WriteHeader(http.StatusOK)
   194  		fmt.Fprintf(w, ListOutput)
   195  	})
   196  }
   197  
   198  func HandleGetTransfer(t *testing.T) {
   199  	th.Mux.HandleFunc("/share-transfers/b8913bfd-a4d3-4ec5-bd8b-fe2dbeef9f4f", func(w http.ResponseWriter, r *http.Request) {
   200  		th.TestMethod(t, r, "GET")
   201  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   202  		w.Header().Add("Content-Type", "application/json")
   203  
   204  		w.WriteHeader(http.StatusOK)
   205  		fmt.Fprintf(w, GetOutput)
   206  	})
   207  }