add tests to check 425 too early behavior

add tests to check 425 too early behavior

add delay postprocessing suite pipeline

add step def
This commit is contained in:
Saw-jan
2023-01-02 16:20:53 +05:45
parent c37d76ffbf
commit 335144e50b
6 changed files with 165 additions and 19 deletions

View File

@@ -103,7 +103,7 @@ class HttpRequestHelper {
* @return ResponseInterface
* @throws GuzzleException
*/
public static function sendRequest(
public static function sendRequestOnce(
?string $url,
?string $xRequestId,
?string $method = 'GET',
@@ -144,36 +144,90 @@ class HttpRequestHelper {
$debugRequests = false;
}
if ((\getenv('DEBUG_ACCEPTANCE_RESPONSES') !== false) || (\getenv('DEBUG_ACCEPTANCE_API_CALLS') !== false)) {
$debugResponses = true;
} else {
$debugResponses = false;
// The exceptions that might happen here include:
// ConnectException - in that case there is no response. Don't catch the exception.
// RequestException - if there is something in the response then pass it back.
// otherwise re-throw the exception.
// GuzzleException - something else unexpected happened. Don't catch the exception.
try {
$response = $client->send($request);
} catch (RequestException $ex) {
$response = $ex->getResponse();
//if the response was null for some reason do not return it but re-throw
if ($response === null) {
throw $ex;
}
}
if ($debugRequests) {
self::debugRequest($request, $user, $password);
}
return $response;
}
/**
*
* @param string|null $url
* @param string|null $xRequestId
* @param string|null $method
* @param string|null $user
* @param string|null $password
* @param array|null $headers ['X-MyHeader' => 'value']
* @param mixed $body
* @param array|null $config
* @param CookieJar|null $cookies
* @param bool $stream Set to true to stream a response rather
* than download it all up-front.
* @param int|null $timeout
* @param Client|null $client
*
* @return ResponseInterface
* @throws GuzzleException
*/
public static function sendRequest(
?string $url,
?string $xRequestId,
?string $method = 'GET',
?string $user = null,
?string $password = null,
?array $headers = null,
$body = null,
?array $config = null,
?CookieJar $cookies = null,
bool $stream = false,
?int $timeout = 0,
?Client $client = null
):ResponseInterface {
if ((\getenv('DEBUG_ACCEPTANCE_RESPONSES') !== false) || (\getenv('DEBUG_ACCEPTANCE_API_CALLS') !== false)) {
$debugResponses = true;
} else {
$debugResponses = false;
}
$sendRetryLimit = self::numRetriesOnHttpTooEarly();
$sendCount = 0;
$sendExceptionHappened = false;
do {
// The exceptions that might happen here include:
// ConnectException - in that case there is no response. Don't catch the exception.
// RequestException - if there is something in the response then pass it back.
// otherwise re-throw the exception.
// GuzzleException - something else unexpected happened. Don't catch the exception.
try {
$response = $client->send($request);
} catch (RequestException $ex) {
$sendExceptionHappened = true;
$response = $ex->getResponse();
$response = self::sendRequestOnce(
$url,
$xRequestId,
$method,
$user,
$password,
$headers,
$body,
$config,
$cookies,
$stream,
$timeout,
$client
);
//if the response was null for some reason do not return it but re-throw
if ($response === null) {
throw $ex;
}
if ($response->getStatusCode() >= 400) {
$sendExceptionHappened = true;
}
if ($debugResponses) {