github.com/gophercloud/gophercloud@v1.11.0/openstack/dns/v2/transfer/accept/testing/fixtures_test.go (about)

     1  package testing
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  	s "strings"
     7  	"testing"
     8  	"time"
     9  
    10  	"github.com/gophercloud/gophercloud"
    11  	transferAccepts "github.com/gophercloud/gophercloud/openstack/dns/v2/transfer/accept"
    12  	th "github.com/gophercloud/gophercloud/testhelper"
    13  	"github.com/gophercloud/gophercloud/testhelper/client"
    14  )
    15  
    16  // ListOutput is a sample response to a List call.
    17  const ListOutput = `
    18  {
    19      "transfer_accepts": [
    20          {
    21              "id": "92236f39-0fad-4f8f-bf25-fbdf027de34d",
    22              "status": "COMPLETE",
    23              "project_id": "9f3cfb08bf52469abe598e127676cd57",
    24              "zone_id": "cd046f4b-f4dc-4e41-b946-1a2d32e1be40",
    25              "key": "M2KA0Y20",
    26              "zone_transfer_request_id": "fc46bb1f-bdf0-4e67-96e0-f8c04f26261c",
    27              "created_at": "2020-10-12T08:38:58.000000",
    28              "links": {
    29                  "self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/92236f39-0fad-4f8f-bf25-fbdf027de34d",
    30                  "zone": "https://127.0.0.1:9001/v2/zones/cd046f4b-f4dc-4e41-b946-1a2d32e1be40"
    31              }
    32          },
    33          {
    34              "id": "f785ef12-7ee0-4c30-bd67-a2b9edba0dff",
    35              "status": "ACTIVE",
    36              "project_id": "9f3cfb08bf52469abe598e127676cd57",
    37              "zone_id": "30d67a9a-d6df-4ba7-9b55-fb49e7987f84",
    38              "key": "SDF32HJ1",
    39              "zone_transfer_request_id": "c5d11193-72ea-4d9f-ba04-7f80e99627fa",
    40              "created_at": "2020-10-12T09:38:58.000000",
    41              "updated_at": "2020-10-12T09:38:58.000000",
    42              "links": {
    43                  "self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/f785ef12-7ee0-4c30-bd67-a2b9edba0dff",
    44                  "zone": "https://127.0.0.1:9001/v2/zones/30d67a9a-d6df-4ba7-9b55-fb49e7987f84"
    45              }
    46          }
    47      ]
    48  }
    49  `
    50  
    51  // FilteredListOutput is a sample response to a List call with Opts.
    52  const FilteredListOutput = `
    53  {
    54      "transfer_accepts": [
    55          {
    56              "id": "f785ef12-7ee0-4c30-bd67-a2b9edba0dff",
    57              "status": "ACTIVE",
    58              "project_id": "9f3cfb08bf52469abe598e127676cd57",
    59              "zone_id": "30d67a9a-d6df-4ba7-9b55-fb49e7987f84",
    60              "key": "SDF32HJ1",
    61              "zone_transfer_request_id": "c5d11193-72ea-4d9f-ba04-7f80e99627fa",
    62              "created_at": "2020-10-12T09:38:58.000000",
    63              "updated_at": "2020-10-12T09:38:58.000000",
    64              "links": {
    65                  "self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/f785ef12-7ee0-4c30-bd67-a2b9edba0dff",
    66                  "zone": "https://127.0.0.1:9001/v2/zones/30d67a9a-d6df-4ba7-9b55-fb49e7987f84"
    67              }
    68          }
    69      ]
    70  }
    71  `
    72  
    73  // GetOutput is a sample response to a Get call.
    74  const GetOutput = `
    75  {
    76      "id": "92236f39-0fad-4f8f-bf25-fbdf027de34d",
    77      "status": "COMPLETE",
    78      "project_id": "9f3cfb08bf52469abe598e127676cd57",
    79      "zone_id": "cd046f4b-f4dc-4e41-b946-1a2d32e1be40",
    80      "key": "M2KA0Y20",
    81      "zone_transfer_request_id": "fc46bb1f-bdf0-4e67-96e0-f8c04f26261c",
    82      "created_at": "2020-10-12T08:38:58.000000",
    83      "links": {
    84          "self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/92236f39-0fad-4f8f-bf25-fbdf027de34d",
    85          "zone": "https://127.0.0.1:9001/v2/zones/cd046f4b-f4dc-4e41-b946-1a2d32e1be40"
    86      }
    87  }
    88  `
    89  
    90  // FirstTransferAccept is the first result in ListOutput
    91  var FirstTransferAcceptCreatedAt, _ = time.Parse(gophercloud.RFC3339MilliNoZ, "2020-10-12T08:38:58.000000")
    92  var FirstTransferAccept = transferAccepts.TransferAccept{
    93  	ID:                    "92236f39-0fad-4f8f-bf25-fbdf027de34d",
    94  	ZoneID:                "cd046f4b-f4dc-4e41-b946-1a2d32e1be40",
    95  	ProjectID:             "9f3cfb08bf52469abe598e127676cd57",
    96  	ZoneTransferRequestID: "fc46bb1f-bdf0-4e67-96e0-f8c04f26261c",
    97  	Key:                   "M2KA0Y20",
    98  	Status:                "COMPLETE",
    99  	CreatedAt:             FirstTransferAcceptCreatedAt,
   100  	Links: map[string]interface{}{
   101  		"self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/92236f39-0fad-4f8f-bf25-fbdf027de34d",
   102  		"zone": "https://127.0.0.1:9001/v2/zones/cd046f4b-f4dc-4e41-b946-1a2d32e1be40",
   103  	},
   104  }
   105  
   106  // SecondTransferRequest is the second result in ListOutput
   107  var SecondTransferAcceptCreatedAt, _ = time.Parse(gophercloud.RFC3339MilliNoZ, "2020-10-12T09:38:58.000000")
   108  var SecondTransferAcceptUpdatedAt, _ = time.Parse(gophercloud.RFC3339MilliNoZ, "2020-10-12T09:38:58.000000")
   109  var SecondTransferAccept = transferAccepts.TransferAccept{
   110  	ID:                    "f785ef12-7ee0-4c30-bd67-a2b9edba0dff",
   111  	Status:                "ACTIVE",
   112  	ProjectID:             "9f3cfb08bf52469abe598e127676cd57",
   113  	ZoneID:                "30d67a9a-d6df-4ba7-9b55-fb49e7987f84",
   114  	ZoneTransferRequestID: "c5d11193-72ea-4d9f-ba04-7f80e99627fa",
   115  	Key:                   "SDF32HJ1",
   116  	CreatedAt:             SecondTransferAcceptCreatedAt,
   117  	UpdatedAt:             SecondTransferAcceptUpdatedAt,
   118  	Links: map[string]interface{}{
   119  		"self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/f785ef12-7ee0-4c30-bd67-a2b9edba0dff",
   120  		"zone": "https://127.0.0.1:9001/v2/zones/30d67a9a-d6df-4ba7-9b55-fb49e7987f84",
   121  	},
   122  }
   123  
   124  // ExpectedTransferAcceptSlice is the slice of results that should be parsed
   125  // from ListOutput, in the expected order.
   126  var ExpectedTransferAcceptSlice = []transferAccepts.TransferAccept{FirstTransferAccept, SecondTransferAccept}
   127  
   128  // HandleListSuccessfully configures the test server to respond to a List request.
   129  func HandleListSuccessfully(t *testing.T) {
   130  	baseURL := "/zones/tasks/transfer_accepts"
   131  	th.Mux.HandleFunc(baseURL,
   132  		func(w http.ResponseWriter, r *http.Request) {
   133  			th.TestMethod(t, r, "GET")
   134  			th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   135  			w.Header().Add("Content-Type", "application/json")
   136  			fmt.Fprintf(w, ListOutput)
   137  		})
   138  }
   139  
   140  // HandleFilteredListSuccessfully configures the test server to respond to a List request with Opts.
   141  func HandleFilteredListSuccessfully(t *testing.T) {
   142  	baseURL := "/zones/tasks/transfer_accepts"
   143  	th.Mux.HandleFunc(baseURL,
   144  		func(w http.ResponseWriter, r *http.Request) {
   145  			th.TestMethod(t, r, "GET")
   146  			th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   147  			w.Header().Add("Content-Type", "application/json")
   148  			fmt.Fprintf(w, FilteredListOutput)
   149  		})
   150  }
   151  
   152  // HandleGetSuccessfully configures the test server to respond to a List request.
   153  func HandleGetSuccessfully(t *testing.T) {
   154  	baseURL := "/zones/tasks/transfer_accepts"
   155  	th.Mux.HandleFunc(s.Join([]string{baseURL, FirstTransferAccept.ID}, "/"),
   156  		func(w http.ResponseWriter, r *http.Request) {
   157  			th.TestMethod(t, r, "GET")
   158  			th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   159  			w.Header().Add("Content-Type", "application/json")
   160  			fmt.Fprintf(w, GetOutput)
   161  		})
   162  }
   163  
   164  // CreateTransferAccept is a sample request to create a zone.
   165  const CreateTransferAccept = `
   166  {
   167      "key": "M2KA0Y20",
   168      "zone_transfer_request_id": "fc46bb1f-bdf0-4e67-96e0-f8c04f26261c"
   169  }
   170  `
   171  
   172  // CreateTransferAcceptResponse is a sample response to a create request.
   173  const CreateTransferAcceptResponse = `
   174  {
   175      "id": "92236f39-0fad-4f8f-bf25-fbdf027de34d",
   176      "zone_transfer_request_id": "fc46bb1f-bdf0-4e67-96e0-f8c04f26261c",
   177      "project_id": "9f3cfb08bf52469abe598e127676cd57",
   178      "key": "M2KA0Y20",
   179      "status": "COMPLETE",
   180      "zone_id": "cd046f4b-f4dc-4e41-b946-1a2d32e1be40",
   181      "created_at": "2020-10-12T08:38:58.000000",
   182      "links": {
   183          "self": "https://127.0.0.1:9001/v2/zones/tasks/transfer_accepts/92236f39-0fad-4f8f-bf25-fbdf027de34d",
   184          "zone": "https://127.0.0.1:9001/v2/zones/cd046f4b-f4dc-4e41-b946-1a2d32e1be40"
   185      }
   186  }
   187  `
   188  
   189  // CreatedTransferRequest is the expected created zone transfer request.
   190  var CreatedTransferAccept = FirstTransferAccept
   191  
   192  // HandleTransferRequestCreationSuccessfully configures the test server to respond to a Create request.
   193  func HandleCreateSuccessfully(t *testing.T) {
   194  	baseURL := "/zones/tasks/transfer_accepts"
   195  	th.Mux.HandleFunc(baseURL,
   196  		func(w http.ResponseWriter, r *http.Request) {
   197  			th.TestMethod(t, r, "POST")
   198  			th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   199  			th.TestJSONRequest(t, r, CreateTransferAccept)
   200  
   201  			w.WriteHeader(http.StatusCreated)
   202  			w.Header().Add("Content-Type", "application/json")
   203  			fmt.Fprintf(w, CreateTransferAcceptResponse)
   204  		})
   205  }