github.com/huaweicloud/golangsdk@v0.0.0-20210831081626-d823fe11ceba/openstack/compute/v2/extensions/keypairs/testing/fixtures.go (about)

     1  package testing
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  	"testing"
     7  
     8  	"github.com/huaweicloud/golangsdk/openstack/compute/v2/extensions/keypairs"
     9  	th "github.com/huaweicloud/golangsdk/testhelper"
    10  	"github.com/huaweicloud/golangsdk/testhelper/client"
    11  )
    12  
    13  // ListOutput is a sample response to a List call.
    14  const ListOutput = `
    15  {
    16  	"keypairs": [
    17  		{
    18  			"keypair": {
    19  				"fingerprint": "15:b0:f8:b3:f9:48:63:71:cf:7b:5b:38:6d:44:2d:4a",
    20  				"name": "firstkey",
    21  				"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC+Eo/RZRngaGTkFs7I62ZjsIlO79KklKbMXi8F+KITD4bVQHHn+kV+4gRgkgCRbdoDqoGfpaDFs877DYX9n4z6FrAIZ4PES8TNKhatifpn9NdQYWA+IkU8CuvlEKGuFpKRi/k7JLos/gHi2hy7QUwgtRvcefvD/vgQZOVw/mGR9Q== Generated by Nova\n"
    22  			}
    23  		},
    24  		{
    25  			"keypair": {
    26  				"fingerprint": "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
    27  				"name": "secondkey",
    28  				"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n"
    29  			}
    30  		}
    31  	]
    32  }
    33  `
    34  
    35  // GetOutput is a sample response to a Get call.
    36  const GetOutput = `
    37  {
    38  	"keypair": {
    39  		"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC+Eo/RZRngaGTkFs7I62ZjsIlO79KklKbMXi8F+KITD4bVQHHn+kV+4gRgkgCRbdoDqoGfpaDFs877DYX9n4z6FrAIZ4PES8TNKhatifpn9NdQYWA+IkU8CuvlEKGuFpKRi/k7JLos/gHi2hy7QUwgtRvcefvD/vgQZOVw/mGR9Q== Generated by Nova\n",
    40  		"name": "firstkey",
    41  		"fingerprint": "15:b0:f8:b3:f9:48:63:71:cf:7b:5b:38:6d:44:2d:4a"
    42  	}
    43  }
    44  `
    45  
    46  // CreateOutput is a sample response to a Create call.
    47  const CreateOutput = `
    48  {
    49  	"keypair": {
    50  		"fingerprint": "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
    51  		"name": "createdkey",
    52  		"private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7\nDUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ\n9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5QIDAQAB\nAoGAE5XO1mDhORy9COvsg+kYPUhB1GsCYxh+v88wG7HeFDKBY6KUc/Kxo6yoGn5T\nTjRjekyi2KoDZHz4VlIzyZPwFS4I1bf3oCunVoAKzgLdmnTtvRNMC5jFOGc2vUgP\n9bSyRj3S1R4ClVk2g0IDeagko/jc8zzLEYuIK+fbkds79YECQQDt3vcevgegnkga\ntF4NsDmmBPRkcSHCqrANP/7vFcBQN3czxeYYWX3DK07alu6GhH1Y4sHbdm616uU0\nll7xbDzxAkEAzAtN2IyftNygV2EGiaGgqLyo/tD9+Vui2qCQplqe4jvWh/5Sparl\nOjmKo+uAW+hLrLVMnHzRWxbWU8hirH5FNQJATO+ZxCK4etXXAnQmG41NCAqANWB2\nB+2HJbH2NcQ2QHvAHUm741JGn/KI/aBlo7KEjFRDWUVUB5ji64BbUwCsMQJBAIku\nLGcjnBf/oLk+XSPZC2eGd2Ph5G5qYmH0Q2vkTx+wtTn3DV+eNsDfgMtWAJVJ5t61\ngU1QSXyhLPVlKpnnxuUCQC+xvvWjWtsLaFtAsZywJiqLxQzHts8XLGZptYJ5tLWV\nrtmYtBcJCN48RrgQHry/xWYeA4K/AFQpXfNPgprQ96Q=\n-----END RSA PRIVATE KEY-----\n",
    53  		"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
    54  		"user_id": "fake"
    55  	}
    56  }
    57  `
    58  
    59  // ImportOutput is a sample response to a Create call that provides its own public key.
    60  const ImportOutput = `
    61  {
    62  	"keypair": {
    63  		"fingerprint": "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c",
    64  		"name": "importedkey",
    65  		"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated by Nova",
    66  		"user_id": "fake"
    67  	}
    68  }
    69  `
    70  
    71  // FirstKeyPair is the first result in ListOutput.
    72  var FirstKeyPair = keypairs.KeyPair{
    73  	Name:        "firstkey",
    74  	Fingerprint: "15:b0:f8:b3:f9:48:63:71:cf:7b:5b:38:6d:44:2d:4a",
    75  	PublicKey:   "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC+Eo/RZRngaGTkFs7I62ZjsIlO79KklKbMXi8F+KITD4bVQHHn+kV+4gRgkgCRbdoDqoGfpaDFs877DYX9n4z6FrAIZ4PES8TNKhatifpn9NdQYWA+IkU8CuvlEKGuFpKRi/k7JLos/gHi2hy7QUwgtRvcefvD/vgQZOVw/mGR9Q== Generated by Nova\n",
    76  }
    77  
    78  // SecondKeyPair is the second result in ListOutput.
    79  var SecondKeyPair = keypairs.KeyPair{
    80  	Name:        "secondkey",
    81  	Fingerprint: "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
    82  	PublicKey:   "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
    83  }
    84  
    85  // ExpectedKeyPairSlice is the slice of results that should be parsed from ListOutput, in the expected
    86  // order.
    87  var ExpectedKeyPairSlice = []keypairs.KeyPair{FirstKeyPair, SecondKeyPair}
    88  
    89  // CreatedKeyPair is the parsed result from CreatedOutput.
    90  var CreatedKeyPair = keypairs.KeyPair{
    91  	Name:        "createdkey",
    92  	Fingerprint: "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
    93  	PublicKey:   "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
    94  	PrivateKey:  "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7\nDUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ\n9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5QIDAQAB\nAoGAE5XO1mDhORy9COvsg+kYPUhB1GsCYxh+v88wG7HeFDKBY6KUc/Kxo6yoGn5T\nTjRjekyi2KoDZHz4VlIzyZPwFS4I1bf3oCunVoAKzgLdmnTtvRNMC5jFOGc2vUgP\n9bSyRj3S1R4ClVk2g0IDeagko/jc8zzLEYuIK+fbkds79YECQQDt3vcevgegnkga\ntF4NsDmmBPRkcSHCqrANP/7vFcBQN3czxeYYWX3DK07alu6GhH1Y4sHbdm616uU0\nll7xbDzxAkEAzAtN2IyftNygV2EGiaGgqLyo/tD9+Vui2qCQplqe4jvWh/5Sparl\nOjmKo+uAW+hLrLVMnHzRWxbWU8hirH5FNQJATO+ZxCK4etXXAnQmG41NCAqANWB2\nB+2HJbH2NcQ2QHvAHUm741JGn/KI/aBlo7KEjFRDWUVUB5ji64BbUwCsMQJBAIku\nLGcjnBf/oLk+XSPZC2eGd2Ph5G5qYmH0Q2vkTx+wtTn3DV+eNsDfgMtWAJVJ5t61\ngU1QSXyhLPVlKpnnxuUCQC+xvvWjWtsLaFtAsZywJiqLxQzHts8XLGZptYJ5tLWV\nrtmYtBcJCN48RrgQHry/xWYeA4K/AFQpXfNPgprQ96Q=\n-----END RSA PRIVATE KEY-----\n",
    95  	UserID:      "fake",
    96  }
    97  
    98  // ImportedKeyPair is the parsed result from ImportOutput.
    99  var ImportedKeyPair = keypairs.KeyPair{
   100  	Name:        "importedkey",
   101  	Fingerprint: "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c",
   102  	PublicKey:   "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated by Nova",
   103  	UserID:      "fake",
   104  }
   105  
   106  // HandleListSuccessfully configures the test server to respond to a List request.
   107  func HandleListSuccessfully(t *testing.T) {
   108  	th.Mux.HandleFunc("/os-keypairs", func(w http.ResponseWriter, r *http.Request) {
   109  		th.TestMethod(t, r, "GET")
   110  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   111  
   112  		w.Header().Add("Content-Type", "application/json")
   113  		fmt.Fprintf(w, ListOutput)
   114  	})
   115  }
   116  
   117  // HandleGetSuccessfully configures the test server to respond to a Get request for "firstkey".
   118  func HandleGetSuccessfully(t *testing.T) {
   119  	th.Mux.HandleFunc("/os-keypairs/firstkey", func(w http.ResponseWriter, r *http.Request) {
   120  		th.TestMethod(t, r, "GET")
   121  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   122  
   123  		w.Header().Add("Content-Type", "application/json")
   124  		fmt.Fprintf(w, GetOutput)
   125  	})
   126  }
   127  
   128  // HandleCreateSuccessfully configures the test server to respond to a Create request for a new
   129  // keypair called "createdkey".
   130  func HandleCreateSuccessfully(t *testing.T) {
   131  	th.Mux.HandleFunc("/os-keypairs", func(w http.ResponseWriter, r *http.Request) {
   132  		th.TestMethod(t, r, "POST")
   133  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   134  		th.TestJSONRequest(t, r, `{ "keypair": { "name": "createdkey" } }`)
   135  
   136  		w.Header().Add("Content-Type", "application/json")
   137  		fmt.Fprintf(w, CreateOutput)
   138  	})
   139  }
   140  
   141  // HandleImportSuccessfully configures the test server to respond to an Import request for an
   142  // existing keypair called "importedkey".
   143  func HandleImportSuccessfully(t *testing.T) {
   144  	th.Mux.HandleFunc("/os-keypairs", func(w http.ResponseWriter, r *http.Request) {
   145  		th.TestMethod(t, r, "POST")
   146  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   147  		th.TestJSONRequest(t, r, `
   148  			{
   149  				"keypair": {
   150  					"name": "importedkey",
   151  					"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated by Nova"
   152  				}
   153  			}
   154  		`)
   155  
   156  		w.Header().Add("Content-Type", "application/json")
   157  		fmt.Fprintf(w, ImportOutput)
   158  	})
   159  }
   160  
   161  // HandleDeleteSuccessfully configures the test server to respond to a Delete request for a
   162  // keypair called "deletedkey".
   163  func HandleDeleteSuccessfully(t *testing.T) {
   164  	th.Mux.HandleFunc("/os-keypairs/deletedkey", func(w http.ResponseWriter, r *http.Request) {
   165  		th.TestMethod(t, r, "DELETE")
   166  		th.TestHeader(t, r, "X-Auth-Token", client.TokenID)
   167  
   168  		w.WriteHeader(http.StatusAccepted)
   169  	})
   170  }