github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/dli/v1/databases/testing/fixtures.go (about)

     1  package testing
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  	"testing"
     7  
     8  	"github.com/chnsz/golangsdk/openstack/dli/v1/databases"
     9  	th "github.com/chnsz/golangsdk/testhelper"
    10  	"github.com/chnsz/golangsdk/testhelper/client"
    11  )
    12  
    13  const (
    14  	expectedCreateResponse = `
    15  	{
    16  		"is_success": true
    17  	}`
    18  
    19  	expectedListResponse = `
    20  {
    21  	"database_count": 1,
    22  	"databases": [
    23  		{
    24  			"database_name": "terraform_test",
    25  			"description": "Created by terraform",
    26  			"enterprise_project_id": "e9ee3f48-f097-406a-aa74-cfece0af3e31",
    27  			"is_shared": false,
    28  			"owner": "terraform",
    29  			"resource_id": "e766d389-d73f-45e7-af79-29445c36339b",
    30  			"table_number": 0
    31  		}
    32  	],
    33  	"is_success": true
    34  }`
    35  )
    36  
    37  var (
    38  	createOpts = databases.CreateOpts{
    39  		Name:                "terraform_test",
    40  		EnterpriseProjectId: "e9ee3f48-f097-406a-aa74-cfece0af3e31",
    41  	}
    42  
    43  	expectedCreateResponseData = &databases.RequestResp{
    44  		IsSuccess: true,
    45  	}
    46  
    47  	expectedListResponseData = &databases.ListResp{
    48  		DatabaseCount: 1,
    49  		Databases: []databases.Database{
    50  			{
    51  				Name:                "terraform_test",
    52  				Description:         "Created by terraform",
    53  				EnterpriseProjectId: "e9ee3f48-f097-406a-aa74-cfece0af3e31",
    54  				IsShared:            false,
    55  				Owner:               "terraform",
    56  				ResourceId:          "e766d389-d73f-45e7-af79-29445c36339b",
    57  				TableNumber:         0,
    58  			},
    59  		},
    60  		IsSuccess: true,
    61  	}
    62  
    63  	updateDBOwnerOpts = databases.UpdateDBOwnerOpts{
    64  		NewOwner: "newOwner",
    65  	}
    66  )
    67  
    68  func handleV1DatabaseCreate(t *testing.T) {
    69  	th.Mux.HandleFunc("/databases", func(w http.ResponseWriter, r *http.Request) {
    70  		th.TestMethod(t, r, "POST")
    71  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
    72  		w.Header().Add("Content-Type", "application/json")
    73  		w.WriteHeader(http.StatusOK)
    74  		_, _ = fmt.Fprint(w, expectedCreateResponse)
    75  	})
    76  }
    77  
    78  func handleV1DatabaseList(t *testing.T) {
    79  	th.Mux.HandleFunc("/databases", func(w http.ResponseWriter, r *http.Request) {
    80  		th.TestMethod(t, r, "GET")
    81  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
    82  		w.Header().Add("Content-Type", "application/json")
    83  		w.WriteHeader(http.StatusOK)
    84  		_, _ = fmt.Fprint(w, expectedListResponse)
    85  	})
    86  }
    87  
    88  func handleV1DatabaseOwnerUpdate(t *testing.T) {
    89  	th.Mux.HandleFunc("/databases/terraform_test/owner", func(w http.ResponseWriter, r *http.Request) {
    90  		th.TestMethod(t, r, "PUT")
    91  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
    92  		w.Header().Add("Content-Type", "application/json")
    93  		w.WriteHeader(http.StatusOK)
    94  		_, _ = fmt.Fprint(w, expectedCreateResponse)
    95  	})
    96  }
    97  
    98  func handleV1DatabaseDelete(t *testing.T) {
    99  	th.Mux.HandleFunc("/databases/terraform_test", func(w http.ResponseWriter, r *http.Request) {
   100  		th.TestMethod(t, r, "DELETE")
   101  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   102  		w.Header().Add("Content-Type", "application/json")
   103  		w.WriteHeader(http.StatusOK)
   104  	})
   105  }