...

Source file src/github.com/okta/okta-sdk-golang/v2/tests/mocks.go

Documentation: github.com/okta/okta-sdk-golang/v2/tests

     1  /*
     2   * Copyright 2018 - Present Okta, Inc.
     3   *
     4   * Licensed under the Apache License, Version 2.0 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *
     8   *      http://www.apache.org/licenses/LICENSE-2.0
     9   *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16  
    17  package tests
    18  
    19  import (
    20  	"net/http"
    21  	"strconv"
    22  	"time"
    23  
    24  	"github.com/jarcoal/httpmock"
    25  )
    26  
    27  func Mock429Response() *http.Response {
    28  	loc, _ := time.LoadLocation("UTC")
    29  	zulu := time.Now().In(loc)
    30  	header := http.Header{}
    31  	header.Add("X-Okta-Now", strconv.FormatInt(zulu.Unix(), 10))
    32  	header.Add("X-Rate-Limit-Reset", strconv.FormatInt(time.Now().Unix()+1, 10))
    33  	header.Add("X-Okta-Request-id", "a-request-id")
    34  	header.Add("Content-Type", "application/json")
    35  	header.Add("Date", zulu.Format("Mon, 02 Jan 2006 15:04:05 GMT"))
    36  
    37  	return &http.Response{
    38  		Status:        strconv.Itoa(429),
    39  		StatusCode:    429,
    40  		Body:          httpmock.NewRespBodyFromString("{}"),
    41  		Header:        header,
    42  		ContentLength: -1,
    43  	}
    44  }
    45  
    46  func Mock429ResponseNoResetHeader() *http.Response {
    47  	loc, _ := time.LoadLocation("UTC")
    48  	zulu := time.Now().In(loc)
    49  	header := http.Header{}
    50  	header.Add("X-Okta-Now", strconv.FormatInt(zulu.Unix(), 10))
    51  	header.Add("X-Okta-Request-id", "a-request-id")
    52  	header.Add("Content-Type", "application/json")
    53  	header.Add("Date", zulu.Format("Mon, 02 Jan 2006 15:04:05 GMT"))
    54  
    55  	return &http.Response{
    56  		Status:        strconv.Itoa(429),
    57  		StatusCode:    429,
    58  		Body:          httpmock.NewRespBodyFromString("{}"),
    59  		Header:        header,
    60  		ContentLength: -1,
    61  	}
    62  }
    63  
    64  func Mock429ResponseNoDateHeader() *http.Response {
    65  	loc, _ := time.LoadLocation("UTC")
    66  	zulu := time.Now().In(loc)
    67  	header := http.Header{}
    68  	header.Add("X-Okta-Now", strconv.FormatInt(zulu.Unix(), 10))
    69  	header.Add("X-Rate-Limit-Reset", strconv.FormatInt(time.Now().Unix()+1, 10))
    70  	header.Add("X-Okta-Request-id", "a-request-id")
    71  	header.Add("Content-Type", "application/json")
    72  
    73  	return &http.Response{
    74  		Status:        strconv.Itoa(429),
    75  		StatusCode:    429,
    76  		Body:          httpmock.NewRespBodyFromString("{}"),
    77  		Header:        header,
    78  		ContentLength: -1,
    79  	}
    80  }
    81  
    82  func Mock429ResponseMultipleHeaders() *http.Response {
    83  	loc, _ := time.LoadLocation("UTC")
    84  	zulu := time.Now().In(loc)
    85  	header := http.Header{}
    86  	header.Add("X-Okta-Now", strconv.FormatInt(zulu.Unix(), 10))
    87  	header.Add("X-Rate-Limit-Reset", strconv.FormatInt(time.Now().Unix()+20, 10))
    88  	header.Add("X-Rate-Limit-Reset", strconv.FormatInt(time.Now().Unix()+10, 10))
    89  	header.Add("X-Okta-Request-id", "a-request-id")
    90  	header.Add("Content-Type", "application/json")
    91  	header.Add("Date", zulu.Format("Mon, 02 Jan 2006 15:04:05 GMT"))
    92  
    93  	return &http.Response{
    94  		Status:        strconv.Itoa(429),
    95  		StatusCode:    429,
    96  		Body:          httpmock.NewRespBodyFromString("{}"),
    97  		Header:        header,
    98  		ContentLength: -1,
    99  	}
   100  }
   101  
   102  func MockValidResponse() *http.Response {
   103  	header := http.Header{}
   104  	header.Add("X-Okta-Request-id", "another-request-id")
   105  	header.Add("Content-Type", "application/json")
   106  	header.Add("Date", time.Now().Add(time.Second*10).Format(time.RFC3339))
   107  
   108  	return &http.Response{
   109  		Status:        strconv.Itoa(200),
   110  		StatusCode:    200,
   111  		Body:          httpmock.NewRespBodyFromString("[]"),
   112  		Header:        header,
   113  		ContentLength: -1,
   114  	}
   115  }
   116  
   117  func MockSessionCreateResponse() *http.Response {
   118  	header := http.Header{}
   119  	header.Add("X-Okta-Request-id", "another-request-id")
   120  	header.Add("Content-Type", "application/json")
   121  	header.Add("Accept", "application/json")
   122  	header.Add("Date", time.Now().Add(time.Second*10).Format(time.RFC3339))
   123  
   124  	return &http.Response{
   125  		Status:     strconv.Itoa(200),
   126  		StatusCode: 200,
   127  		Body: httpmock.NewRespBodyFromString(`{
   128  			"id": "101W_juydrDRByB7fUdRyE2JQ",
   129  			"login": "user@example.com",
   130  			"userId": "00ubgaSARVOQDIOXMORI",
   131  			"expiresAt": "2015-08-30T18:41:35.818Z",
   132  			"status": "ACTIVE",
   133  			"lastPasswordVerification": "2015-08-30T18:41:35.818Z",
   134  			"lastFactorVerification": null,
   135  			"amr": [
   136  			  "pwd"
   137  			],
   138  			"idp": {
   139  			  "id": "00oi5cpnylv792IcF0g3",
   140  			  "type": "OKTA"
   141  			},
   142  			"mfaActive": false}`),
   143  		Header:        header,
   144  		ContentLength: -1,
   145  	}
   146  }
   147  

View as plain text