Merge pull request #2695 from wing328/model-min-max-pattern

[Ruby] Add more validation rules to Ruby models
This commit is contained in:
wing328
2016-04-25 22:41:19 +08:00
25 changed files with 688 additions and 38 deletions

View File

@@ -42,6 +42,7 @@ public class CodegenProperty {
public Map<String, Object> allowableValues;
public CodegenProperty items;
public Map<String, Object> vendorExtensions;
public Boolean hasValidation; // true if pattern, maximum, etc are set (only used in the mustache template)
@Override
public int hashCode()

View File

@@ -327,6 +327,16 @@ public class DefaultCodegen {
this.ensureUniqueParams = ensureUniqueParams;
}
/**
* Return the JSON schema pattern (http://json-schema.org/latest/json-schema-validation.html#anchor33)
*
* @param pattern the pattern (regular expression)
* @return properly-escaped pattern
*/
public String toJSONSchemaPattern(String pattern) {
return escapeText(pattern);
}
/**
* Return the file name of the Api Test
*
@@ -1094,6 +1104,10 @@ public class DefaultCodegen {
property.exclusiveMinimum = np.getExclusiveMinimum();
property.exclusiveMaximum = np.getExclusiveMaximum();
// check if any validation rule defined
if (property.minimum != null || property.maximum != null || property.exclusiveMinimum != null || property.exclusiveMaximum != null)
property.hasValidation = true;
// legacy support
Map<String, Object> allowableValues = new HashMap<String, Object>();
if (np.getMinimum() != null) {
@@ -1111,7 +1125,12 @@ public class DefaultCodegen {
StringProperty sp = (StringProperty) p;
property.maxLength = sp.getMaxLength();
property.minLength = sp.getMinLength();
property.pattern = sp.getPattern();
property.pattern = toJSONSchemaPattern(sp.getPattern());
// check if any validation rule defined
if (property.pattern != null || property.minLength != null || property.maxLength != null)
property.hasValidation = true;
property.isString = true;
if (sp.getEnum() != null) {
List<String> _enum = sp.getEnum();
@@ -1802,9 +1821,6 @@ public class DefaultCodegen {
if (model.complexType != null) {
imports.add(model.complexType);
}
p.maxLength = qp.getMaxLength();
p.minLength = qp.getMinLength();
p.pattern = qp.getPattern();
p.maximum = qp.getMaximum();
p.exclusiveMaximum = qp.isExclusiveMaximum();
@@ -1812,7 +1828,7 @@ public class DefaultCodegen {
p.exclusiveMinimum = qp.isExclusiveMinimum();
p.maxLength = qp.getMaxLength();
p.minLength = qp.getMinLength();
p.pattern = qp.getPattern();
p.pattern = toJSONSchemaPattern(qp.getPattern());
p.maxItems = qp.getMaxItems();
p.minItems = qp.getMinItems();
p.uniqueItems = qp.isUniqueItems();

View File

@@ -31,6 +31,7 @@ Then either install the gem locally:
```shell
gem install ./{{{gemName}}}-{{{gemVersion}}}.gem
```
(for development, run `gem install --dev ./{{{gemName}}}-{{{gemVersion}}}.gem` to install the development dependencies)
or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/).

View File

@@ -39,25 +39,182 @@ module {{moduleName}}{{#models}}{{#model}}{{#description}}
{{#vars}}
if attributes[:'{{{baseName}}}']
{{#isContainer}}if (value = attributes[:'{{{baseName}}}']).is_a?(Array)
{{#isContainer}}
if (value = attributes[:'{{{baseName}}}']).is_a?(Array)
self.{{{name}}} = value
end{{/isContainer}}{{^isContainer}}self.{{{name}}} = attributes[:'{{{baseName}}}']{{/isContainer}}{{#defaultValue}}
end
{{/isContainer}}
{{^isContainer}}
self.{{{name}}} = attributes[:'{{{baseName}}}']
{{/isContainer}}
{{#defaultValue}}
else
self.{{{name}}} = {{{defaultValue}}}{{/defaultValue}}
self.{{{name}}} = {{{defaultValue}}}
{{/defaultValue}}
end
{{/vars}}
end
{{#vars}}{{#isEnum}}
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
{{#isEnum}}
allowed_values = [{{#allowableValues}}{{#values}}"{{{this}}}"{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}]
if @{{{name}}} && !allowed_values.include?({{{name}}})
invalid_properties.push("invalid value for '{{{name}}}', must be one of #{allowed_values}.")
end
{{/isEnum}}
{{#hasValidation}}
if @{{{name}}}.nil?
fail ArgumentError, "{{{name}}} cannot be nil"
end
{{#minLength}}
if @{{{name}}}.to_s.length > {{{maxLength}}}
invalid_properties.push("invalid value for '{{{name}}}', the character length must be smaller than or equal to {{{maxLength}}}.")
end
{{/minLength}}
{{#maxLength}}
if @{{{name}}}.to_s.length < {{{minLength}}}
invalid_properties.push("invalid value for '{{{name}}}', the character length must be great than or equal to {{{minLength}}}.")
end
{{/maxLength}}
{{#maximum}}
if @{{{name}}} > {{{maximum}}}
invalid_properties.push("invalid value for '{{{name}}}', must be smaller than or equal to {{{maximum}}}.")
end
{{/maximum}}
{{#minimum}}
if @{{{name}}} < {{{minimum}}}
invalid_properties.push("invalid value for '{{{name}}}', must be greater than or equal to {{{minimum}}}.")
end
{{/minimum}}
{{#pattern}}
if @{{{name}}} !~ Regexp.new({{{pattern}}})
invalid_properties.push("invalid value for '{{{name}}}', must conform to the pattern {{{pattern}}}.")
end
{{/pattern}}
{{/hasValidation}}
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
{{#vars}}
{{#required}}
if @{{{name}}}.nil?
return false
end
{{/required}}
{{#isEnum}}
allowed_values = [{{#allowableValues}}{{#values}}"{{{this}}}"{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}]
if @{{{name}}} && !allowed_values.include?(@{{{name}}})
return false
end
{{/isEnum}}
{{#hasValidation}}
{{#minLength}}
if @{{{name}}}.to_s.length > {{{maxLength}}}
return false
end
{{/minLength}}
{{#maxLength}}
if @{{{name}}}.to_s.length < {{{minLength}}}
return false
end
{{/maxLength}}
{{#maximum}}
if @{{{name}}} > {{{maximum}}}
return false
end
{{/maximum}}
{{#minimum}}
if @{{{name}}} < {{{minimum}}}
return false
end
{{/minimum}}
{{#pattern}}
if @{{{name}}} !~ Regexp.new({{{pattern}}})
return false
end
{{/pattern}}
{{/hasValidation}}
{{/vars}}
end
{{#vars}}
{{#isEnum}}
# Custom attribute writer method checking allowed values (enum).
# @param [Object] {{{name}}} Object to be assigned
def {{{name}}}=({{{name}}})
allowed_values = [{{#allowableValues}}{{#values}}"{{{this}}}"{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}]
if {{{name}}} && !allowed_values.include?({{{name}}})
fail "invalid value for '{{{name}}}', must be one of #{allowed_values}"
fail ArgumentError, "invalid value for '{{{name}}}', must be one of #{allowed_values}."
end
@{{{name}}} = {{{name}}}
end
{{/isEnum}}{{/vars}}
{{/isEnum}}
{{^isEnum}}
{{#hasValidation}}
# Custom attribute writer method with validation
# @param [Object] {{{name}}} Value to be assigned
def {{{name}}}=({{{name}}})
if {{{name}}}.nil?
fail ArgumentError, "{{{name}}} cannot be nil"
end
{{#minLength}}
if {{{name}}}.to_s.length > {{{maxLength}}}
fail ArgumentError, "invalid value for '{{{name}}}', the character length must be smaller than or equal to {{{maxLength}}}."
end
{{/minLength}}
{{#maxLength}}
if {{{name}}}.to_s.length < {{{minLength}}}
fail ArgumentError, "invalid value for '{{{name}}}', the character length must be great than or equal to {{{minLength}}}."
end
{{/maxLength}}
{{#maximum}}
if {{{name}}} > {{{maximum}}}
fail ArgumentError, "invalid value for '{{{name}}}', must be smaller than or equal to {{{maximum}}}."
end
{{/maximum}}
{{#minimum}}
if {{{name}}} < {{{minimum}}}
fail ArgumentError, "invalid value for '{{{name}}}', must be greater than or equal to {{{minimum}}}."
end
{{/minimum}}
{{#pattern}}
if @{{{name}}} !~ Regexp.new({{{pattern}}})
fail ArgumentError, "invalid value for '{{{name}}}', must conform to the pattern {{{pattern}}}."
end
{{/pattern}}
@{{{name}}} = {{{name}}}
end
{{/hasValidation}}
{{/isEnum}}
{{/vars}}
# Checks equality by comparing each attribute.
# @param [Object] Object to be compared
def ==(o)

View File

@@ -761,22 +761,33 @@ definitions:
properties:
integer:
type: integer
maximum: 100
minimum: 10
int32:
type: integer
format: int32
maximum: 200
minimum: 20
int64:
type: integer
format: int64
number:
maximum: 543.2
minimum: 32.1
type: number
float:
type: number
format: float
maximum: 987.6
minimum: 54.3
double:
type: number
format: double
maximum: 123.4
minimum: 67.8
string:
type: string
pattern: /[a-z]/i
byte:
type: string
format: byte
@@ -792,6 +803,8 @@ definitions:
password:
type: string
format: password
maxLength: 64
minLength: 10
externalDocs:
description: Find out more about Swagger
url: 'http://swagger.io'

View File

@@ -22,29 +22,31 @@ GEM
ethon (0.8.1)
ffi (>= 1.3.0)
ffi (1.9.8)
hashdiff (0.3.0)
json (1.8.3)
rspec (3.2.0)
rspec-core (~> 3.2.0)
rspec-expectations (~> 3.2.0)
rspec-mocks (~> 3.2.0)
rspec-core (3.2.2)
rspec-support (~> 3.2.0)
rspec-expectations (3.2.0)
rspec (3.4.0)
rspec-core (~> 3.4.0)
rspec-expectations (~> 3.4.0)
rspec-mocks (~> 3.4.0)
rspec-core (3.4.4)
rspec-support (~> 3.4.0)
rspec-expectations (3.4.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.2.0)
rspec-mocks (3.2.1)
rspec-support (~> 3.4.0)
rspec-mocks (3.4.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.2.0)
rspec-support (3.2.2)
rspec-support (~> 3.4.0)
rspec-support (3.4.1)
safe_yaml (1.0.4)
sys-uname (0.9.2)
ffi (>= 1.0.0)
typhoeus (1.0.1)
ethon (>= 0.8.0)
vcr (2.9.3)
webmock (1.21.0)
vcr (3.0.1)
webmock (1.24.5)
addressable (>= 2.3.6)
crack (>= 0.3.2)
hashdiff
PLATFORMS
ruby
@@ -55,6 +57,6 @@ DEPENDENCIES
autotest-growl (~> 0.2, >= 0.2.16)
autotest-rails-pure (~> 4.1, >= 4.1.2)
petstore!
rspec (~> 3.2, >= 3.2.0)
vcr (~> 2.9, >= 2.9.3)
webmock (~> 1.6, >= 1.6.2)
rspec (~> 3.4, >= 3.4.0)
vcr (~> 3.0, >= 3.0.1)
webmock (~> 1.24, >= 1.24.3)

View File

@@ -8,7 +8,7 @@ This SDK is automatically generated by the [Swagger Codegen](https://github.com/
- API version: 1.0.0
- Package version: 1.0.0
- Build date: 2016-04-20T18:46:00.664+08:00
- Build date: 2016-04-25T22:22:56.750+08:00
- Build package: class io.swagger.codegen.languages.RubyClientCodegen
## Installation
@@ -26,6 +26,7 @@ Then either install the gem locally:
```shell
gem install ./petstore-1.0.0.gem
```
(for development, run `gem install --dev ./petstore-1.0.0.gem` to install the development dependencies)
or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/).

View File

@@ -10,10 +10,10 @@ Name | Type | Description | Notes
**float** | **Float** | | [optional]
**double** | **Float** | | [optional]
**string** | **String** | | [optional]
**byte** | **String** | | [optional]
**byte** | **String** | |
**binary** | **String** | | [optional]
**date** | **Date** | | [optional]
**date** | **Date** | |
**date_time** | **DateTime** | | [optional]
**password** | **String** | | [optional]
**password** | **String** | |

View File

@@ -5,5 +5,6 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **Integer** | |
**snake_case** | **Integer** | | [optional]
**property** | **String** | | [optional]

View File

@@ -45,6 +45,23 @@ module Petstore
if attributes[:'className']
self.class_name = attributes[:'className']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
if @class_name.nil?
return false
end
end
# Checks equality by comparing each attribute.

View File

@@ -53,12 +53,27 @@ module Petstore
if attributes[:'code']
self.code = attributes[:'code']
end
if attributes[:'type']
self.type = attributes[:'type']
end
if attributes[:'message']
self.message = attributes[:'message']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
end
# Checks equality by comparing each attribute.

View File

@@ -49,9 +49,27 @@ module Petstore
if attributes[:'className']
self.class_name = attributes[:'className']
end
if attributes[:'declawed']
self.declawed = attributes[:'declawed']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
if @class_name.nil?
return false
end
end
# Checks equality by comparing each attribute.

View File

@@ -49,9 +49,23 @@ module Petstore
if attributes[:'id']
self.id = attributes[:'id']
end
if attributes[:'name']
self.name = attributes[:'name']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
end
# Checks equality by comparing each attribute.

View File

@@ -49,9 +49,27 @@ module Petstore
if attributes[:'className']
self.class_name = attributes[:'className']
end
if attributes[:'breed']
self.breed = attributes[:'breed']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
if @class_name.nil?
return false
end
end
# Checks equality by comparing each attribute.

View File

@@ -89,39 +89,253 @@ module Petstore
if attributes[:'integer']
self.integer = attributes[:'integer']
end
if attributes[:'int32']
self.int32 = attributes[:'int32']
end
if attributes[:'int64']
self.int64 = attributes[:'int64']
end
if attributes[:'number']
self.number = attributes[:'number']
end
if attributes[:'float']
self.float = attributes[:'float']
end
if attributes[:'double']
self.double = attributes[:'double']
end
if attributes[:'string']
self.string = attributes[:'string']
end
if attributes[:'byte']
self.byte = attributes[:'byte']
end
if attributes[:'binary']
self.binary = attributes[:'binary']
end
if attributes[:'date']
self.date = attributes[:'date']
end
if attributes[:'dateTime']
self.date_time = attributes[:'dateTime']
end
if attributes[:'password']
self.password = attributes[:'password']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
if @integer > 100.0
return false
end
if @integer < 10.0
return false
end
if @int32 > 200.0
return false
end
if @int32 < 20.0
return false
end
if @number.nil?
return false
end
if @number > 543.2
return false
end
if @number < 32.1
return false
end
if @float > 987.6
return false
end
if @float < 54.3
return false
end
if @double > 123.4
return false
end
if @double < 67.8
return false
end
if @string !~ Regexp.new(/[a-z]/i)
return false
end
if @byte.nil?
return false
end
if @date.nil?
return false
end
if @password.nil?
return false
end
if @password.to_s.length > 64
return false
end
if @password.to_s.length < 10
return false
end
end
# Custom attribute writer method with validation
# @param [Object] integer Value to be assigned
def integer=(integer)
if integer.nil?
fail ArgumentError, "integer cannot be nil"
end
if integer > 100.0
fail ArgumentError, "invalid value for 'integer', must be smaller than or equal to 100.0."
end
if integer < 10.0
fail ArgumentError, "invalid value for 'integer', must be greater than or equal to 10.0."
end
@integer = integer
end
# Custom attribute writer method with validation
# @param [Object] int32 Value to be assigned
def int32=(int32)
if int32.nil?
fail ArgumentError, "int32 cannot be nil"
end
if int32 > 200.0
fail ArgumentError, "invalid value for 'int32', must be smaller than or equal to 200.0."
end
if int32 < 20.0
fail ArgumentError, "invalid value for 'int32', must be greater than or equal to 20.0."
end
@int32 = int32
end
# Custom attribute writer method with validation
# @param [Object] number Value to be assigned
def number=(number)
if number.nil?
fail ArgumentError, "number cannot be nil"
end
if number > 543.2
fail ArgumentError, "invalid value for 'number', must be smaller than or equal to 543.2."
end
if number < 32.1
fail ArgumentError, "invalid value for 'number', must be greater than or equal to 32.1."
end
@number = number
end
# Custom attribute writer method with validation
# @param [Object] float Value to be assigned
def float=(float)
if float.nil?
fail ArgumentError, "float cannot be nil"
end
if float > 987.6
fail ArgumentError, "invalid value for 'float', must be smaller than or equal to 987.6."
end
if float < 54.3
fail ArgumentError, "invalid value for 'float', must be greater than or equal to 54.3."
end
@float = float
end
# Custom attribute writer method with validation
# @param [Object] double Value to be assigned
def double=(double)
if double.nil?
fail ArgumentError, "double cannot be nil"
end
if double > 123.4
fail ArgumentError, "invalid value for 'double', must be smaller than or equal to 123.4."
end
if double < 67.8
fail ArgumentError, "invalid value for 'double', must be greater than or equal to 67.8."
end
@double = double
end
# Custom attribute writer method with validation
# @param [Object] string Value to be assigned
def string=(string)
if string.nil?
fail ArgumentError, "string cannot be nil"
end
if @string !~ Regexp.new(/[a-z]/i)
fail ArgumentError, "invalid value for 'string', must conform to the pattern /[a-z]/i."
end
@string = string
end
# Custom attribute writer method with validation
# @param [Object] password Value to be assigned
def password=(password)
if password.nil?
fail ArgumentError, "password cannot be nil"
end
if password.to_s.length > 64
fail ArgumentError, "invalid value for 'password', the character length must be smaller than or equal to 64."
end
if password.to_s.length < 10
fail ArgumentError, "invalid value for 'password', the character length must be great than or equal to 10."
end
@password = password
end
# Checks equality by comparing each attribute.

View File

@@ -46,6 +46,19 @@ module Petstore
if attributes[:'name']
self.name = attributes[:'name']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
end
# Checks equality by comparing each attribute.

View File

@@ -46,6 +46,19 @@ module Petstore
if attributes[:'return']
self._return = attributes[:'return']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
end
# Checks equality by comparing each attribute.

View File

@@ -23,11 +23,14 @@ module Petstore
attr_accessor :snake_case
attr_accessor :property
# Attribute mapping from ruby-style variable name to JSON key.
def self.attribute_map
{
:'name' => :'name',
:'snake_case' => :'snake_case'
:'snake_case' => :'snake_case',
:'property' => :'property'
}
end
@@ -35,7 +38,8 @@ module Petstore
def self.swagger_types
{
:'name' => :'Integer',
:'snake_case' => :'Integer'
:'snake_case' => :'Integer',
:'property' => :'String'
}
end
@@ -50,9 +54,31 @@ module Petstore
if attributes[:'name']
self.name = attributes[:'name']
end
if attributes[:'snake_case']
self.snake_case = attributes[:'snake_case']
end
if attributes[:'property']
self.property = attributes[:'property']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
if @name.nil?
return false
end
end
# Checks equality by comparing each attribute.
@@ -61,7 +87,8 @@ module Petstore
return true if self.equal?(o)
self.class == o.class &&
name == o.name &&
snake_case == o.snake_case
snake_case == o.snake_case &&
property == o.property
end
# @see the `==` method
@@ -73,7 +100,7 @@ module Petstore
# Calculates hash code according to all attributes.
# @return [Fixnum] Hash code
def hash
[name, snake_case].hash
[name, snake_case, property].hash
end
# Builds the object from hash

View File

@@ -66,23 +66,45 @@ module Petstore
if attributes[:'id']
self.id = attributes[:'id']
end
if attributes[:'petId']
self.pet_id = attributes[:'petId']
end
if attributes[:'quantity']
self.quantity = attributes[:'quantity']
end
if attributes[:'shipDate']
self.ship_date = attributes[:'shipDate']
end
if attributes[:'status']
self.status = attributes[:'status']
end
if attributes[:'complete']
self.complete = attributes[:'complete']
else
self.complete = false
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
allowed_values = ["placed", "approved", "delivered"]
if @status && !allowed_values.include?(@status)
return false
end
end
# Custom attribute writer method checking allowed values (enum).
@@ -90,7 +112,7 @@ module Petstore
def status=(status)
allowed_values = ["placed", "approved", "delivered"]
if status && !allowed_values.include?(status)
fail "invalid value for 'status', must be one of #{allowed_values}"
fail ArgumentError, "invalid value for 'status', must be one of #{allowed_values}."
end
@status = status
end

View File

@@ -66,25 +66,55 @@ module Petstore
if attributes[:'id']
self.id = attributes[:'id']
end
if attributes[:'category']
self.category = attributes[:'category']
end
if attributes[:'name']
self.name = attributes[:'name']
end
if attributes[:'photoUrls']
if (value = attributes[:'photoUrls']).is_a?(Array)
self.photo_urls = value
end
end
if attributes[:'tags']
if (value = attributes[:'tags']).is_a?(Array)
self.tags = value
end
end
if attributes[:'status']
self.status = attributes[:'status']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
if @name.nil?
return false
end
if @photo_urls.nil?
return false
end
allowed_values = ["available", "pending", "sold"]
if @status && !allowed_values.include?(@status)
return false
end
end
# Custom attribute writer method checking allowed values (enum).
@@ -92,7 +122,7 @@ module Petstore
def status=(status)
allowed_values = ["available", "pending", "sold"]
if status && !allowed_values.include?(status)
fail "invalid value for 'status', must be one of #{allowed_values}"
fail ArgumentError, "invalid value for 'status', must be one of #{allowed_values}."
end
@status = status
end

View File

@@ -45,6 +45,19 @@ module Petstore
if attributes[:'$special[property.name]']
self.special_property_name = attributes[:'$special[property.name]']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
end
# Checks equality by comparing each attribute.

View File

@@ -49,9 +49,23 @@ module Petstore
if attributes[:'id']
self.id = attributes[:'id']
end
if attributes[:'name']
self.name = attributes[:'name']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
end
# Checks equality by comparing each attribute.

View File

@@ -74,27 +74,47 @@ module Petstore
if attributes[:'id']
self.id = attributes[:'id']
end
if attributes[:'username']
self.username = attributes[:'username']
end
if attributes[:'firstName']
self.first_name = attributes[:'firstName']
end
if attributes[:'lastName']
self.last_name = attributes[:'lastName']
end
if attributes[:'email']
self.email = attributes[:'email']
end
if attributes[:'password']
self.password = attributes[:'password']
end
if attributes[:'phone']
self.phone = attributes[:'phone']
end
if attributes[:'userStatus']
self.user_status = attributes[:'userStatus']
end
end
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properies with the reasons
def list_invalid_properties
invalid_properties = Array.new
return invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
def valid?
end
# Checks equality by comparing each attribute.

View File

@@ -206,7 +206,7 @@ describe Petstore::ApiClient do
end
it "fails for invalid collection format" do
proc { api_client.build_collection_param(param, :INVALID) }.should raise_error
proc { api_client.build_collection_param(param, :INVALID) }.should raise_error(RuntimeError, 'unknown collection format: :INVALID')
end
end

View File

@@ -56,5 +56,15 @@ describe 'Name' do
end
end
describe 'test attribute "property"' do
it 'should work' do
# assertion here
# should be_a()
# should be_nil
# should ==
# should_not ==
end
end
end