github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/identity/v3/tokens/testing/fixtures.go (about)

     1  package testing
     2  
     3  import (
     4  	"net/http"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/opentelekomcloud/gophertelekomcloud"
     9  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/identity/v3/tokens"
    10  )
    11  
    12  const testTokenID = "130f6c17-420e-4a0b-97b0-0c9cf2a05f30"
    13  
    14  // TokenOutput is a sample response to a Token call.
    15  const TokenOutput = `
    16  {
    17     "token":{
    18        "is_domain":false,
    19        "methods":[
    20           "password"
    21        ],
    22        "roles":[
    23           {
    24              "id":"434426788d5a451faf763b0e6db5aefb",
    25              "name":"admin"
    26           }
    27        ],
    28        "expires_at":"2017-06-03T02:19:49.000000Z",
    29        "project":{
    30           "domain":{
    31              "id":"default",
    32              "name":"Default"
    33           },
    34           "id":"a99e9b4e620e4db09a2dfb6e42a01e66",
    35           "name":"admin"
    36        },
    37        "catalog":[
    38           {
    39              "endpoints":[
    40                 {
    41                    "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
    42                    "interface":"admin",
    43                    "region":"RegionOne",
    44                    "region_id":"RegionOne",
    45                    "id":"3eac9e7588eb4eb2a4650cf5e079505f"
    46                 },
    47                 {
    48                    "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
    49                    "interface":"internal",
    50                    "region":"RegionOne",
    51                    "region_id":"RegionOne",
    52                    "id":"6b33fabc69c34ea782a3f6282582b59f"
    53                 },
    54                 {
    55                    "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
    56                    "interface":"public",
    57                    "region":"RegionOne",
    58                    "region_id":"RegionOne",
    59                    "id":"dae63c71bee24070a71f5425e7a916b5"
    60                 }
    61              ],
    62              "type":"compute",
    63              "id":"17e0fa04647d4155a7933ee624dd66da",
    64              "name":"nova"
    65           },
    66           {
    67              "endpoints":[
    68                 {
    69                    "url":"http://127.0.0.1:35357/v3",
    70                    "interface":"admin",
    71                    "region":"RegionOne",
    72                    "region_id":"RegionOne",
    73                    "id":"0539aeff80954a0bb756cec496768d3d"
    74                 },
    75                 {
    76                    "url":"http://127.0.0.1:5000/v3",
    77                    "interface":"public",
    78                    "region":"RegionOne",
    79                    "region_id":"RegionOne",
    80                    "id":"15bdf2d0853e4c939993d29548b1b56f"
    81                 },
    82                 {
    83                    "url":"http://127.0.0.1:5000/v3",
    84                    "interface":"internal",
    85                    "region":"RegionOne",
    86                    "region_id":"RegionOne",
    87                    "id":"3b4423c54ba343c58226bc424cb11c4b"
    88                 }
    89              ],
    90              "type":"identity",
    91              "id":"1cde0ea8cb3c49d8928cb172ca825ca5",
    92              "name":"keystone"
    93           }
    94        ],
    95        "user":{
    96           "domain":{
    97              "id":"default",
    98              "name":"Default"
    99           },
   100           "password_expires_at":null,
   101           "name":"admin",
   102           "id":"0fe36e73809d46aeae6705c39077b1b3"
   103        },
   104        "audit_ids":[
   105           "ysSI0bEWR0Gmrp4LHL9LFw"
   106        ],
   107        "issued_at":"2017-06-03T01:19:49.000000Z"
   108     }
   109  }`
   110  
   111  const DomainToken = `
   112  {
   113    "token": {
   114      "domain": {
   115        "id": "default",
   116        "name": "Default"
   117      },
   118      "methods": [
   119        "password"
   120      ],
   121      "roles":[
   122         {
   123            "id":"434426788d5a451faf763b0e6db5aefb",
   124            "name":"admin"
   125         }
   126      ],
   127      "expires_at": "2019-09-18T23:12:32.000000Z",
   128      "catalog":[
   129         {
   130            "endpoints":[
   131               {
   132                  "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
   133                  "interface":"admin",
   134                  "region":"RegionOne",
   135                  "region_id":"RegionOne",
   136                  "id":"3eac9e7588eb4eb2a4650cf5e079505f"
   137               },
   138               {
   139                  "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
   140                  "interface":"internal",
   141                  "region":"RegionOne",
   142                  "region_id":"RegionOne",
   143                  "id":"6b33fabc69c34ea782a3f6282582b59f"
   144               },
   145               {
   146                  "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
   147                  "interface":"public",
   148                  "region":"RegionOne",
   149                  "region_id":"RegionOne",
   150                  "id":"dae63c71bee24070a71f5425e7a916b5"
   151               }
   152            ],
   153            "type":"compute",
   154            "id":"17e0fa04647d4155a7933ee624dd66da",
   155            "name":"nova"
   156         },
   157         {
   158            "endpoints":[
   159               {
   160                  "url":"http://127.0.0.1:35357/v3",
   161                  "interface":"admin",
   162                  "region":"RegionOne",
   163                  "region_id":"RegionOne",
   164                  "id":"0539aeff80954a0bb756cec496768d3d"
   165               },
   166               {
   167                  "url":"http://127.0.0.1:5000/v3",
   168                  "interface":"public",
   169                  "region":"RegionOne",
   170                  "region_id":"RegionOne",
   171                  "id":"15bdf2d0853e4c939993d29548b1b56f"
   172               },
   173               {
   174                  "url":"http://127.0.0.1:5000/v3",
   175                  "interface":"internal",
   176                  "region":"RegionOne",
   177                  "region_id":"RegionOne",
   178                  "id":"3b4423c54ba343c58226bc424cb11c4b"
   179               }
   180            ],
   181            "type":"identity",
   182            "id":"1cde0ea8cb3c49d8928cb172ca825ca5",
   183            "name":"keystone"
   184         }
   185      ],
   186      "user":{
   187         "domain":{
   188            "id":"default",
   189            "name":"Default"
   190         },
   191         "password_expires_at":null,
   192         "name":"admin",
   193         "id":"0fe36e73809d46aeae6705c39077b1b3"
   194      },
   195      "audit_ids": [
   196        "P4QTZuYXS1u8SC6b3BSK1g"
   197      ],
   198      "issued_at": "2019-09-18T15:12:32.000000Z"
   199    }
   200  }
   201  `
   202  
   203  var expectedTokenTime, _ = time.Parse(golangsdk.RFC3339Milli,
   204  	"2017-06-03T02:19:49.000000Z")
   205  var ExpectedToken = tokens.Token{
   206  	ID:        testTokenID,
   207  	ExpiresAt: expectedTokenTime,
   208  }
   209  
   210  var catalogEntry1 = tokens.CatalogEntry{
   211  	ID:   "17e0fa04647d4155a7933ee624dd66da",
   212  	Name: "nova",
   213  	Type: "compute",
   214  	Endpoints: []tokens.Endpoint{
   215  		{
   216  			ID:        "3eac9e7588eb4eb2a4650cf5e079505f",
   217  			Region:    "RegionOne",
   218  			Interface: "admin",
   219  			URL:       "http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
   220  		},
   221  		{
   222  			ID:        "6b33fabc69c34ea782a3f6282582b59f",
   223  			Region:    "RegionOne",
   224  			Interface: "internal",
   225  			URL:       "http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
   226  		},
   227  		{
   228  			ID:        "dae63c71bee24070a71f5425e7a916b5",
   229  			Region:    "RegionOne",
   230  			Interface: "public",
   231  			URL:       "http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
   232  		},
   233  	},
   234  }
   235  var catalogEntry2 = tokens.CatalogEntry{
   236  	ID:   "1cde0ea8cb3c49d8928cb172ca825ca5",
   237  	Name: "keystone",
   238  	Type: "identity",
   239  	Endpoints: []tokens.Endpoint{
   240  		{
   241  			ID:        "0539aeff80954a0bb756cec496768d3d",
   242  			Region:    "RegionOne",
   243  			Interface: "admin",
   244  			URL:       "http://127.0.0.1:35357/v3",
   245  		},
   246  		{
   247  			ID:        "15bdf2d0853e4c939993d29548b1b56f",
   248  			Region:    "RegionOne",
   249  			Interface: "public",
   250  			URL:       "http://127.0.0.1:5000/v3",
   251  		},
   252  		{
   253  			ID:        "3b4423c54ba343c58226bc424cb11c4b",
   254  			Region:    "RegionOne",
   255  			Interface: "internal",
   256  			URL:       "http://127.0.0.1:5000/v3",
   257  		},
   258  	},
   259  }
   260  
   261  // ExpectedServiceCatalog contains expected service extracted from token response.
   262  var ExpectedServiceCatalog = tokens.ServiceCatalog{
   263  	Entries: []tokens.CatalogEntry{catalogEntry1, catalogEntry2},
   264  }
   265  
   266  var domain = tokens.Domain{
   267  	ID:   "default",
   268  	Name: "Default",
   269  }
   270  
   271  // ExpectedUser contains expected user extracted from token response.
   272  var ExpectedUser = tokens.User{
   273  	Domain: domain,
   274  	ID:     "0fe36e73809d46aeae6705c39077b1b3",
   275  	Name:   "admin",
   276  }
   277  
   278  var role = tokens.Role{
   279  	ID:   "434426788d5a451faf763b0e6db5aefb",
   280  	Name: "admin",
   281  }
   282  
   283  // ExpectedRoles contains expected roles extracted from token response.
   284  var ExpectedRoles = []tokens.Role{role}
   285  
   286  // ExpectedProject contains expected project extracted from token response.
   287  var ExpectedProject = tokens.Project{
   288  	Domain: domain,
   289  	ID:     "a99e9b4e620e4db09a2dfb6e42a01e66",
   290  	Name:   "admin",
   291  }
   292  
   293  func getGetResult(t *testing.T) tokens.GetResult {
   294  	t.Helper()
   295  
   296  	result := tokens.GetResult{}
   297  	result.Header = http.Header{
   298  		"X-Subject-Token": []string{testTokenID},
   299  	}
   300  	result.Body = []byte(TokenOutput)
   301  	return result
   302  }
   303  
   304  // ExpectedDomain contains expected domain extracted from token response.
   305  var ExpectedDomain = tokens.Domain{
   306  	ID:   "default",
   307  	Name: "Default",
   308  }
   309  
   310  func getGetDomainResult(t *testing.T) tokens.GetResult {
   311  	t.Helper()
   312  
   313  	result := tokens.GetResult{}
   314  	result.Header = http.Header{
   315  		"X-Subject-Token": []string{testTokenID},
   316  	}
   317  	result.Body = []byte(DomainToken)
   318  	return result
   319  }