forked from loafle/openapi-generator-original
[PHP] Fix string length validation (#7953)
* Add a test case which reproduces the issue https://github.com/swagger-api/swagger-codegen/issues/7846 * Change `strlen` -> `mb_strlen` in order to count the length correctly * Regenerate the samples
This commit is contained in:
parent
37faaf9266
commit
4a5d16b236
@ -205,13 +205,13 @@ class {{classname}} {{#parentSchema}}extends {{{parent}}} {{/parentSchema}}{{^pa
|
|||||||
{{/isEnum}}
|
{{/isEnum}}
|
||||||
{{#hasValidation}}
|
{{#hasValidation}}
|
||||||
{{#maxLength}}
|
{{#maxLength}}
|
||||||
if ({{^required}}!is_null($this->container['{{name}}']) && {{/required}}(strlen($this->container['{{name}}']) > {{maxLength}})) {
|
if ({{^required}}!is_null($this->container['{{name}}']) && {{/required}}(mb_strlen($this->container['{{name}}']) > {{maxLength}})) {
|
||||||
$invalidProperties[] = "invalid value for '{{name}}', the character length must be smaller than or equal to {{{maxLength}}}.";
|
$invalidProperties[] = "invalid value for '{{name}}', the character length must be smaller than or equal to {{{maxLength}}}.";
|
||||||
}
|
}
|
||||||
|
|
||||||
{{/maxLength}}
|
{{/maxLength}}
|
||||||
{{#minLength}}
|
{{#minLength}}
|
||||||
if ({{^required}}!is_null($this->container['{{name}}']) && {{/required}}(strlen($this->container['{{name}}']) < {{minLength}})) {
|
if ({{^required}}!is_null($this->container['{{name}}']) && {{/required}}(mb_strlen($this->container['{{name}}']) < {{minLength}})) {
|
||||||
$invalidProperties[] = "invalid value for '{{name}}', the character length must be bigger than or equal to {{{minLength}}}.";
|
$invalidProperties[] = "invalid value for '{{name}}', the character length must be bigger than or equal to {{{minLength}}}.";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -281,12 +281,12 @@ class {{classname}} {{#parentSchema}}extends {{{parent}}} {{/parentSchema}}{{^pa
|
|||||||
{{/isEnum}}
|
{{/isEnum}}
|
||||||
{{#hasValidation}}
|
{{#hasValidation}}
|
||||||
{{#maxLength}}
|
{{#maxLength}}
|
||||||
if (strlen($this->container['{{name}}']) > {{maxLength}}) {
|
if (mb_strlen($this->container['{{name}}']) > {{maxLength}}) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
{{/maxLength}}
|
{{/maxLength}}
|
||||||
{{#minLength}}
|
{{#minLength}}
|
||||||
if (strlen($this->container['{{name}}']) < {{minLength}}) {
|
if (mb_strlen($this->container['{{name}}']) < {{minLength}}) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
{{/minLength}}
|
{{/minLength}}
|
||||||
@ -366,11 +366,11 @@ class {{classname}} {{#parentSchema}}extends {{{parent}}} {{/parentSchema}}{{^pa
|
|||||||
{{/isEnum}}
|
{{/isEnum}}
|
||||||
{{#hasValidation}}
|
{{#hasValidation}}
|
||||||
{{#maxLength}}
|
{{#maxLength}}
|
||||||
if ({{^required}}!is_null(${{name}}) && {{/required}}(strlen(${{name}}) > {{maxLength}})) {
|
if ({{^required}}!is_null(${{name}}) && {{/required}}(mb_strlen(${{name}}) > {{maxLength}})) {
|
||||||
throw new \InvalidArgumentException('invalid length for ${{name}} when calling {{classname}}.{{operationId}}, must be smaller than or equal to {{maxLength}}.');
|
throw new \InvalidArgumentException('invalid length for ${{name}} when calling {{classname}}.{{operationId}}, must be smaller than or equal to {{maxLength}}.');
|
||||||
}{{/maxLength}}
|
}{{/maxLength}}
|
||||||
{{#minLength}}
|
{{#minLength}}
|
||||||
if ({{^required}}!is_null(${{name}}) && {{/required}}(strlen(${{name}}) < {{minLength}})) {
|
if ({{^required}}!is_null(${{name}}) && {{/required}}(mb_strlen(${{name}}) < {{minLength}})) {
|
||||||
throw new \InvalidArgumentException('invalid length for ${{name}} when calling {{classname}}.{{operationId}}, must be bigger than or equal to {{minLength}}.');
|
throw new \InvalidArgumentException('invalid length for ${{name}} when calling {{classname}}.{{operationId}}, must be bigger than or equal to {{minLength}}.');
|
||||||
}
|
}
|
||||||
{{/minLength}}
|
{{/minLength}}
|
||||||
|
@ -271,7 +271,7 @@ class ObjectSerializer
|
|||||||
// determine file name
|
// determine file name
|
||||||
if (array_key_exists('Content-Disposition', $httpHeaders) &&
|
if (array_key_exists('Content-Disposition', $httpHeaders) &&
|
||||||
preg_match('/inline; filename=[\'"]?([^\'"\s]+)[\'"]?$/i', $httpHeaders['Content-Disposition'], $match)) {
|
preg_match('/inline; filename=[\'"]?([^\'"\s]+)[\'"]?$/i', $httpHeaders['Content-Disposition'], $match)) {
|
||||||
$filename = Configuration::getDefaultConfiguration()->getTempFolderPath() . self::sanitizeFilename($match[1]);
|
$filename = Configuration::getDefaultConfiguration()->getTempFolderPath() . DIRECTORY_SEPARATOR . self::sanitizeFilename($match[1]);
|
||||||
} else {
|
} else {
|
||||||
$filename = tempnam(Configuration::getDefaultConfiguration()->getTempFolderPath(), '');
|
$filename = tempnam(Configuration::getDefaultConfiguration()->getTempFolderPath(), '');
|
||||||
}
|
}
|
||||||
|
@ -80,6 +80,7 @@ All URIs are relative to *http://petstore.swagger.io:80/v2*
|
|||||||
Class | Method | HTTP request | Description
|
Class | Method | HTTP request | Description
|
||||||
------------ | ------------- | ------------- | -------------
|
------------ | ------------- | ------------- | -------------
|
||||||
*AnotherFakeApi* | [**testSpecialTags**](docs/Api/AnotherFakeApi.md#testspecialtags) | **PATCH** /another-fake/dummy | To test special tags
|
*AnotherFakeApi* | [**testSpecialTags**](docs/Api/AnotherFakeApi.md#testspecialtags) | **PATCH** /another-fake/dummy | To test special tags
|
||||||
|
*DefaultApi* | [**testBodyWithQueryParams**](docs/Api/DefaultApi.md#testbodywithqueryparams) | **PUT** /fake/body-with-query-params |
|
||||||
*FakeApi* | [**fakeOuterBooleanSerialize**](docs/Api/FakeApi.md#fakeouterbooleanserialize) | **POST** /fake/outer/boolean |
|
*FakeApi* | [**fakeOuterBooleanSerialize**](docs/Api/FakeApi.md#fakeouterbooleanserialize) | **POST** /fake/outer/boolean |
|
||||||
*FakeApi* | [**fakeOuterCompositeSerialize**](docs/Api/FakeApi.md#fakeoutercompositeserialize) | **POST** /fake/outer/composite |
|
*FakeApi* | [**fakeOuterCompositeSerialize**](docs/Api/FakeApi.md#fakeoutercompositeserialize) | **POST** /fake/outer/composite |
|
||||||
*FakeApi* | [**fakeOuterNumberSerialize**](docs/Api/FakeApi.md#fakeouternumberserialize) | **POST** /fake/outer/number |
|
*FakeApi* | [**fakeOuterNumberSerialize**](docs/Api/FakeApi.md#fakeouternumberserialize) | **POST** /fake/outer/number |
|
||||||
|
@ -0,0 +1,57 @@
|
|||||||
|
# Swagger\Client\DefaultApi
|
||||||
|
|
||||||
|
All URIs are relative to *http://petstore.swagger.io:80/v2*
|
||||||
|
|
||||||
|
Method | HTTP request | Description
|
||||||
|
------------- | ------------- | -------------
|
||||||
|
[**testBodyWithQueryParams**](DefaultApi.md#testBodyWithQueryParams) | **PUT** /fake/body-with-query-params |
|
||||||
|
|
||||||
|
|
||||||
|
# **testBodyWithQueryParams**
|
||||||
|
> testBodyWithQueryParams($body, $query)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Example
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
require_once(__DIR__ . '/vendor/autoload.php');
|
||||||
|
|
||||||
|
$apiInstance = new Swagger\Client\Api\DefaultApi(
|
||||||
|
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
|
||||||
|
// This is optional, `GuzzleHttp\Client` will be used as default.
|
||||||
|
new GuzzleHttp\Client()
|
||||||
|
);
|
||||||
|
$body = new \Swagger\Client\Model\User(); // \Swagger\Client\Model\User |
|
||||||
|
$query = "query_example"; // string |
|
||||||
|
|
||||||
|
try {
|
||||||
|
$apiInstance->testBodyWithQueryParams($body, $query);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo 'Exception when calling DefaultApi->testBodyWithQueryParams: ', $e->getMessage(), PHP_EOL;
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------- | ------------- | ------------- | -------------
|
||||||
|
**body** | [**\Swagger\Client\Model\User**](../Model/User.md)| |
|
||||||
|
**query** | **string**| |
|
||||||
|
|
||||||
|
### Return type
|
||||||
|
|
||||||
|
void (empty response body)
|
||||||
|
|
||||||
|
### Authorization
|
||||||
|
|
||||||
|
No authorization required
|
||||||
|
|
||||||
|
### HTTP request headers
|
||||||
|
|
||||||
|
- **Content-Type**: application/json
|
||||||
|
- **Accept**: Not defined
|
||||||
|
|
||||||
|
[[Back to top]](#) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../README.md#documentation-for-models) [[Back to README]](../../README.md)
|
||||||
|
|
@ -0,0 +1,339 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* DefaultApi
|
||||||
|
* PHP version 5
|
||||||
|
*
|
||||||
|
* @category Class
|
||||||
|
* @package Swagger\Client
|
||||||
|
* @author Swagger Codegen team
|
||||||
|
* @link https://github.com/swagger-api/swagger-codegen
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Swagger Petstore
|
||||||
|
*
|
||||||
|
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||||
|
*
|
||||||
|
* OpenAPI spec version: 1.0.0
|
||||||
|
* Contact: apiteam@swagger.io
|
||||||
|
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||||
|
* Swagger Codegen version: 2.4.0-SNAPSHOT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NOTE: This class is auto generated by the swagger code generator program.
|
||||||
|
* https://github.com/swagger-api/swagger-codegen
|
||||||
|
* Do not edit the class manually.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Swagger\Client\Api;
|
||||||
|
|
||||||
|
use GuzzleHttp\Client;
|
||||||
|
use GuzzleHttp\ClientInterface;
|
||||||
|
use GuzzleHttp\Exception\RequestException;
|
||||||
|
use GuzzleHttp\Psr7\MultipartStream;
|
||||||
|
use GuzzleHttp\Psr7\Request;
|
||||||
|
use GuzzleHttp\RequestOptions;
|
||||||
|
use Swagger\Client\ApiException;
|
||||||
|
use Swagger\Client\Configuration;
|
||||||
|
use Swagger\Client\HeaderSelector;
|
||||||
|
use Swagger\Client\ObjectSerializer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DefaultApi Class Doc Comment
|
||||||
|
*
|
||||||
|
* @category Class
|
||||||
|
* @package Swagger\Client
|
||||||
|
* @author Swagger Codegen team
|
||||||
|
* @link https://github.com/swagger-api/swagger-codegen
|
||||||
|
*/
|
||||||
|
class DefaultApi
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var ClientInterface
|
||||||
|
*/
|
||||||
|
protected $client;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Configuration
|
||||||
|
*/
|
||||||
|
protected $config;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var HeaderSelector
|
||||||
|
*/
|
||||||
|
protected $headerSelector;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ClientInterface $client
|
||||||
|
* @param Configuration $config
|
||||||
|
* @param HeaderSelector $selector
|
||||||
|
*/
|
||||||
|
public function __construct(
|
||||||
|
ClientInterface $client = null,
|
||||||
|
Configuration $config = null,
|
||||||
|
HeaderSelector $selector = null
|
||||||
|
) {
|
||||||
|
$this->client = $client ?: new Client();
|
||||||
|
$this->config = $config ?: new Configuration();
|
||||||
|
$this->headerSelector = $selector ?: new HeaderSelector();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Configuration
|
||||||
|
*/
|
||||||
|
public function getConfig()
|
||||||
|
{
|
||||||
|
return $this->config;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation testBodyWithQueryParams
|
||||||
|
*
|
||||||
|
* @param \Swagger\Client\Model\User $body body (required)
|
||||||
|
* @param string $query query (required)
|
||||||
|
*
|
||||||
|
* @throws \Swagger\Client\ApiException on non-2xx response
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testBodyWithQueryParams($body, $query)
|
||||||
|
{
|
||||||
|
$this->testBodyWithQueryParamsWithHttpInfo($body, $query);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation testBodyWithQueryParamsWithHttpInfo
|
||||||
|
*
|
||||||
|
* @param \Swagger\Client\Model\User $body (required)
|
||||||
|
* @param string $query (required)
|
||||||
|
*
|
||||||
|
* @throws \Swagger\Client\ApiException on non-2xx response
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
|
* @return array of null, HTTP status code, HTTP response headers (array of strings)
|
||||||
|
*/
|
||||||
|
public function testBodyWithQueryParamsWithHttpInfo($body, $query)
|
||||||
|
{
|
||||||
|
$returnType = '';
|
||||||
|
$request = $this->testBodyWithQueryParamsRequest($body, $query);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$options = $this->createHttpClientOption();
|
||||||
|
try {
|
||||||
|
$response = $this->client->send($request, $options);
|
||||||
|
} catch (RequestException $e) {
|
||||||
|
throw new ApiException(
|
||||||
|
"[{$e->getCode()}] {$e->getMessage()}",
|
||||||
|
$e->getCode(),
|
||||||
|
$e->getResponse() ? $e->getResponse()->getHeaders() : null,
|
||||||
|
$e->getResponse() ? $e->getResponse()->getBody()->getContents() : null
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$statusCode = $response->getStatusCode();
|
||||||
|
|
||||||
|
if ($statusCode < 200 || $statusCode > 299) {
|
||||||
|
throw new ApiException(
|
||||||
|
sprintf(
|
||||||
|
'[%d] Error connecting to the API (%s)',
|
||||||
|
$statusCode,
|
||||||
|
$request->getUri()
|
||||||
|
),
|
||||||
|
$statusCode,
|
||||||
|
$response->getHeaders(),
|
||||||
|
$response->getBody()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return [null, $statusCode, $response->getHeaders()];
|
||||||
|
|
||||||
|
} catch (ApiException $e) {
|
||||||
|
switch ($e->getCode()) {
|
||||||
|
}
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation testBodyWithQueryParamsAsync
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param \Swagger\Client\Model\User $body (required)
|
||||||
|
* @param string $query (required)
|
||||||
|
*
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
|
* @return \GuzzleHttp\Promise\PromiseInterface
|
||||||
|
*/
|
||||||
|
public function testBodyWithQueryParamsAsync($body, $query)
|
||||||
|
{
|
||||||
|
return $this->testBodyWithQueryParamsAsyncWithHttpInfo($body, $query)
|
||||||
|
->then(
|
||||||
|
function ($response) {
|
||||||
|
return $response[0];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Operation testBodyWithQueryParamsAsyncWithHttpInfo
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param \Swagger\Client\Model\User $body (required)
|
||||||
|
* @param string $query (required)
|
||||||
|
*
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
|
* @return \GuzzleHttp\Promise\PromiseInterface
|
||||||
|
*/
|
||||||
|
public function testBodyWithQueryParamsAsyncWithHttpInfo($body, $query)
|
||||||
|
{
|
||||||
|
$returnType = '';
|
||||||
|
$request = $this->testBodyWithQueryParamsRequest($body, $query);
|
||||||
|
|
||||||
|
return $this->client
|
||||||
|
->sendAsync($request, $this->createHttpClientOption())
|
||||||
|
->then(
|
||||||
|
function ($response) use ($returnType) {
|
||||||
|
return [null, $response->getStatusCode(), $response->getHeaders()];
|
||||||
|
},
|
||||||
|
function ($exception) {
|
||||||
|
$response = $exception->getResponse();
|
||||||
|
$statusCode = $response->getStatusCode();
|
||||||
|
throw new ApiException(
|
||||||
|
sprintf(
|
||||||
|
'[%d] Error connecting to the API (%s)',
|
||||||
|
$statusCode,
|
||||||
|
$exception->getRequest()->getUri()
|
||||||
|
),
|
||||||
|
$statusCode,
|
||||||
|
$response->getHeaders(),
|
||||||
|
$response->getBody()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create request for operation 'testBodyWithQueryParams'
|
||||||
|
*
|
||||||
|
* @param \Swagger\Client\Model\User $body (required)
|
||||||
|
* @param string $query (required)
|
||||||
|
*
|
||||||
|
* @throws \InvalidArgumentException
|
||||||
|
* @return \GuzzleHttp\Psr7\Request
|
||||||
|
*/
|
||||||
|
protected function testBodyWithQueryParamsRequest($body, $query)
|
||||||
|
{
|
||||||
|
// verify the required parameter 'body' is set
|
||||||
|
if ($body === null || (is_array($body) && count($body) === 0)) {
|
||||||
|
throw new \InvalidArgumentException(
|
||||||
|
'Missing the required parameter $body when calling testBodyWithQueryParams'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
// verify the required parameter 'query' is set
|
||||||
|
if ($query === null || (is_array($query) && count($query) === 0)) {
|
||||||
|
throw new \InvalidArgumentException(
|
||||||
|
'Missing the required parameter $query when calling testBodyWithQueryParams'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$resourcePath = '/fake/body-with-query-params';
|
||||||
|
$formParams = [];
|
||||||
|
$queryParams = [];
|
||||||
|
$headerParams = [];
|
||||||
|
$httpBody = '';
|
||||||
|
$multipart = false;
|
||||||
|
|
||||||
|
// query params
|
||||||
|
if ($query !== null) {
|
||||||
|
$queryParams['query'] = ObjectSerializer::toQueryValue($query);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// body params
|
||||||
|
$_tempBody = null;
|
||||||
|
if (isset($body)) {
|
||||||
|
$_tempBody = $body;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($multipart) {
|
||||||
|
$headers = $this->headerSelector->selectHeadersForMultipart(
|
||||||
|
[]
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$headers = $this->headerSelector->selectHeaders(
|
||||||
|
[],
|
||||||
|
['application/json']
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// for model (json/xml)
|
||||||
|
if (isset($_tempBody)) {
|
||||||
|
// $_tempBody is the method argument, if present
|
||||||
|
$httpBody = $_tempBody;
|
||||||
|
// \stdClass has no __toString(), so we should encode it manually
|
||||||
|
if ($httpBody instanceof \stdClass && $headers['Content-Type'] === 'application/json') {
|
||||||
|
$httpBody = \GuzzleHttp\json_encode($httpBody);
|
||||||
|
}
|
||||||
|
} elseif (count($formParams) > 0) {
|
||||||
|
if ($multipart) {
|
||||||
|
$multipartContents = [];
|
||||||
|
foreach ($formParams as $formParamName => $formParamValue) {
|
||||||
|
$multipartContents[] = [
|
||||||
|
'name' => $formParamName,
|
||||||
|
'contents' => $formParamValue
|
||||||
|
];
|
||||||
|
}
|
||||||
|
// for HTTP post (form)
|
||||||
|
$httpBody = new MultipartStream($multipartContents);
|
||||||
|
|
||||||
|
} elseif ($headers['Content-Type'] === 'application/json') {
|
||||||
|
$httpBody = \GuzzleHttp\json_encode($formParams);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// for HTTP post (form)
|
||||||
|
$httpBody = \GuzzleHttp\Psr7\build_query($formParams);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$defaultHeaders = [];
|
||||||
|
if ($this->config->getUserAgent()) {
|
||||||
|
$defaultHeaders['User-Agent'] = $this->config->getUserAgent();
|
||||||
|
}
|
||||||
|
|
||||||
|
$headers = array_merge(
|
||||||
|
$defaultHeaders,
|
||||||
|
$headerParams,
|
||||||
|
$headers
|
||||||
|
);
|
||||||
|
|
||||||
|
$query = \GuzzleHttp\Psr7\build_query($queryParams);
|
||||||
|
return new Request(
|
||||||
|
'PUT',
|
||||||
|
$this->config->getHost() . $resourcePath . ($query ? "?{$query}" : ''),
|
||||||
|
$headers,
|
||||||
|
$httpBody
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create http client option
|
||||||
|
*
|
||||||
|
* @throws \RuntimeException on file opening failure
|
||||||
|
* @return array of http client options
|
||||||
|
*/
|
||||||
|
protected function createHttpClientOption()
|
||||||
|
{
|
||||||
|
$options = [];
|
||||||
|
if ($this->config->getDebug()) {
|
||||||
|
$options[RequestOptions::DEBUG] = fopen($this->config->getDebugFile(), 'a');
|
||||||
|
if (!$options[RequestOptions::DEBUG]) {
|
||||||
|
throw new \RuntimeException('Failed to open the debug file: ' . $this->config->getDebugFile());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $options;
|
||||||
|
}
|
||||||
|
}
|
@ -321,11 +321,11 @@ class FormatTest implements ModelInterface, ArrayAccess
|
|||||||
if ($this->container['password'] === null) {
|
if ($this->container['password'] === null) {
|
||||||
$invalidProperties[] = "'password' can't be null";
|
$invalidProperties[] = "'password' can't be null";
|
||||||
}
|
}
|
||||||
if ((strlen($this->container['password']) > 64)) {
|
if ((mb_strlen($this->container['password']) > 64)) {
|
||||||
$invalidProperties[] = "invalid value for 'password', the character length must be smaller than or equal to 64.";
|
$invalidProperties[] = "invalid value for 'password', the character length must be smaller than or equal to 64.";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((strlen($this->container['password']) < 10)) {
|
if ((mb_strlen($this->container['password']) < 10)) {
|
||||||
$invalidProperties[] = "invalid value for 'password', the character length must be bigger than or equal to 10.";
|
$invalidProperties[] = "invalid value for 'password', the character length must be bigger than or equal to 10.";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,10 +389,10 @@ class FormatTest implements ModelInterface, ArrayAccess
|
|||||||
if ($this->container['password'] === null) {
|
if ($this->container['password'] === null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (strlen($this->container['password']) > 64) {
|
if (mb_strlen($this->container['password']) > 64) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (strlen($this->container['password']) < 10) {
|
if (mb_strlen($this->container['password']) < 10) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -756,10 +756,10 @@ class FormatTest implements ModelInterface, ArrayAccess
|
|||||||
*/
|
*/
|
||||||
public function setPassword($password)
|
public function setPassword($password)
|
||||||
{
|
{
|
||||||
if ((strlen($password) > 64)) {
|
if ((mb_strlen($password) > 64)) {
|
||||||
throw new \InvalidArgumentException('invalid length for $password when calling FormatTest., must be smaller than or equal to 64.');
|
throw new \InvalidArgumentException('invalid length for $password when calling FormatTest., must be smaller than or equal to 64.');
|
||||||
}
|
}
|
||||||
if ((strlen($password) < 10)) {
|
if ((mb_strlen($password) < 10)) {
|
||||||
throw new \InvalidArgumentException('invalid length for $password when calling FormatTest., must be bigger than or equal to 10.');
|
throw new \InvalidArgumentException('invalid length for $password when calling FormatTest., must be bigger than or equal to 10.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,83 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* DefaultApiTest
|
||||||
|
* PHP version 5
|
||||||
|
*
|
||||||
|
* @category Class
|
||||||
|
* @package Swagger\Client
|
||||||
|
* @author Swagger Codegen team
|
||||||
|
* @link https://github.com/swagger-api/swagger-codegen
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Swagger Petstore
|
||||||
|
*
|
||||||
|
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||||
|
*
|
||||||
|
* OpenAPI spec version: 1.0.0
|
||||||
|
* Contact: apiteam@swagger.io
|
||||||
|
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||||
|
* Swagger Codegen version: 2.4.0-SNAPSHOT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NOTE: This class is auto generated by the swagger code generator program.
|
||||||
|
* https://github.com/swagger-api/swagger-codegen
|
||||||
|
* Please update the test case below to test the endpoint.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Swagger\Client;
|
||||||
|
|
||||||
|
use \Swagger\Client\Configuration;
|
||||||
|
use \Swagger\Client\ApiException;
|
||||||
|
use \Swagger\Client\ObjectSerializer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DefaultApiTest Class Doc Comment
|
||||||
|
*
|
||||||
|
* @category Class
|
||||||
|
* @package Swagger\Client
|
||||||
|
* @author Swagger Codegen team
|
||||||
|
* @link https://github.com/swagger-api/swagger-codegen
|
||||||
|
*/
|
||||||
|
class DefaultApiTest extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setup before running any test cases
|
||||||
|
*/
|
||||||
|
public static function setUpBeforeClass()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setup before running each test case
|
||||||
|
*/
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clean up after running each test case
|
||||||
|
*/
|
||||||
|
public function tearDown()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clean up after running all test cases
|
||||||
|
*/
|
||||||
|
public static function tearDownAfterClass()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test case for testBodyWithQueryParams
|
||||||
|
*
|
||||||
|
* .
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function testTestBodyWithQueryParams()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Swagger\Client\Model\FormatTest;
|
||||||
|
|
||||||
|
class FormatTestTest extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
public function testCountTheLengthOfMultiByteStringsCorrectly()
|
||||||
|
{
|
||||||
|
$the64MultiByteStrings = '123456789012345678901234567890123456789012345678901234567890123';
|
||||||
|
|
||||||
|
// Pass the string via constructor.
|
||||||
|
$formatTest = new FormatTest([
|
||||||
|
'password' => $the64MultiByteStrings,
|
||||||
|
// mandatory parameters
|
||||||
|
'number' => 500,
|
||||||
|
'byte' => base64_encode('test'),
|
||||||
|
'date' => new DateTime(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->assertEmpty($formatTest->listInvalidProperties());
|
||||||
|
|
||||||
|
// Pass the strings via setter.
|
||||||
|
// Throws InvalidArgumentException if it doesn't count the length correctly.
|
||||||
|
$formatTest->setPassword($the64MultiByteStrings);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user