forked from loafle/openapi-generator-original
		
	new test case to cover model with array properties
This commit is contained in:
		
							parent
							
								
									d0770d25f5
								
							
						
					
					
						commit
						105b4b9199
					
				@ -971,6 +971,25 @@ definitions:
 | 
			
		||||
        readOnly: true
 | 
			
		||||
      baz:
 | 
			
		||||
        type: string
 | 
			
		||||
  ArrayTest:
 | 
			
		||||
    type: object
 | 
			
		||||
    array_of_string:
 | 
			
		||||
      type: array
 | 
			
		||||
      items:
 | 
			
		||||
        type: string
 | 
			
		||||
    array_array_of_integer:
 | 
			
		||||
      type: array
 | 
			
		||||
      items:
 | 
			
		||||
        type: array
 | 
			
		||||
        items:
 | 
			
		||||
          type: integer
 | 
			
		||||
          format: int64
 | 
			
		||||
    array_array_of_model:
 | 
			
		||||
      type: array
 | 
			
		||||
      items:
 | 
			
		||||
        type: array
 | 
			
		||||
        items:
 | 
			
		||||
          $ref: '#/definitions/ReadOnlyFirst'
 | 
			
		||||
externalDocs:
 | 
			
		||||
  description: Find out more about Swagger
 | 
			
		||||
  url: 'http://swagger.io'
 | 
			
		||||
 | 
			
		||||
@ -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-05-24T23:13:57.542+08:00
 | 
			
		||||
- Build date: 2016-05-25T01:17:54.676+08:00
 | 
			
		||||
- Build package: class io.swagger.codegen.languages.RubyClientCodegen
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
@ -120,6 +120,7 @@ Class | Method | HTTP request | Description
 | 
			
		||||
 - [Petstore::Animal](docs/Animal.md)
 | 
			
		||||
 - [Petstore::AnimalFarm](docs/AnimalFarm.md)
 | 
			
		||||
 - [Petstore::ApiResponse](docs/ApiResponse.md)
 | 
			
		||||
 - [Petstore::ArrayTest](docs/ArrayTest.md)
 | 
			
		||||
 - [Petstore::Cat](docs/Cat.md)
 | 
			
		||||
 - [Petstore::Category](docs/Category.md)
 | 
			
		||||
 - [Petstore::Dog](docs/Dog.md)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										7
									
								
								samples/client/petstore/ruby/docs/ArrayTest.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								samples/client/petstore/ruby/docs/ArrayTest.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,7 @@
 | 
			
		||||
# Petstore::ArrayTest
 | 
			
		||||
 | 
			
		||||
## Properties
 | 
			
		||||
Name | Type | Description | Notes
 | 
			
		||||
------------ | ------------- | ------------- | -------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -32,6 +32,7 @@ require 'petstore/models/additional_properties_class'
 | 
			
		||||
require 'petstore/models/animal'
 | 
			
		||||
require 'petstore/models/animal_farm'
 | 
			
		||||
require 'petstore/models/api_response'
 | 
			
		||||
require 'petstore/models/array_test'
 | 
			
		||||
require 'petstore/models/cat'
 | 
			
		||||
require 'petstore/models/category'
 | 
			
		||||
require 'petstore/models/dog'
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										188
									
								
								samples/client/petstore/ruby/lib/petstore/models/array_test.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										188
									
								
								samples/client/petstore/ruby/lib/petstore/models/array_test.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,188 @@
 | 
			
		||||
=begin
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
you may not use this file except in compliance with the License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
 | 
			
		||||
http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 | 
			
		||||
Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
See the License for the specific language governing permissions and
 | 
			
		||||
limitations under the License.
 | 
			
		||||
 | 
			
		||||
=end
 | 
			
		||||
 | 
			
		||||
require 'date'
 | 
			
		||||
 | 
			
		||||
module Petstore
 | 
			
		||||
 | 
			
		||||
  class ArrayTest
 | 
			
		||||
    # Attribute mapping from ruby-style variable name to JSON key.
 | 
			
		||||
    def self.attribute_map
 | 
			
		||||
      {
 | 
			
		||||
      }
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Attribute type mapping.
 | 
			
		||||
    def self.swagger_types
 | 
			
		||||
      {
 | 
			
		||||
      }
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Initializes the object
 | 
			
		||||
    # @param [Hash] attributes Model attributes in the form of hash
 | 
			
		||||
    def initialize(attributes = {})
 | 
			
		||||
      return unless attributes.is_a?(Hash)
 | 
			
		||||
 | 
			
		||||
      # convert string to symbol for hash key
 | 
			
		||||
      attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
 | 
			
		||||
 | 
			
		||||
    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.
 | 
			
		||||
    # @param [Object] Object to be compared
 | 
			
		||||
    def ==(o)
 | 
			
		||||
      return true if self.equal?(o)
 | 
			
		||||
      self.class == o.class
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # @see the `==` method
 | 
			
		||||
    # @param [Object] Object to be compared
 | 
			
		||||
    def eql?(o)
 | 
			
		||||
      self == o
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Calculates hash code according to all attributes.
 | 
			
		||||
    # @return [Fixnum] Hash code
 | 
			
		||||
    def hash
 | 
			
		||||
      [].hash
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Builds the object from hash
 | 
			
		||||
    # @param [Hash] attributes Model attributes in the form of hash
 | 
			
		||||
    # @return [Object] Returns the model itself
 | 
			
		||||
    def build_from_hash(attributes)
 | 
			
		||||
      return nil unless attributes.is_a?(Hash)
 | 
			
		||||
      self.class.swagger_types.each_pair do |key, type|
 | 
			
		||||
        if type =~ /^Array<(.*)>/i
 | 
			
		||||
          # check to ensure the input is an array given that the the attribute
 | 
			
		||||
          # is documented as an array but the input is not
 | 
			
		||||
          if attributes[self.class.attribute_map[key]].is_a?(Array)
 | 
			
		||||
            self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
 | 
			
		||||
          end
 | 
			
		||||
        elsif !attributes[self.class.attribute_map[key]].nil?
 | 
			
		||||
          self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
 | 
			
		||||
        end # or else data not found in attributes(hash), not an issue as the data can be optional
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      self
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Deserializes the data based on type
 | 
			
		||||
    # @param string type Data type
 | 
			
		||||
    # @param string value Value to be deserialized
 | 
			
		||||
    # @return [Object] Deserialized data
 | 
			
		||||
    def _deserialize(type, value)
 | 
			
		||||
      case type.to_sym
 | 
			
		||||
      when :DateTime
 | 
			
		||||
        DateTime.parse(value)
 | 
			
		||||
      when :Date
 | 
			
		||||
        Date.parse(value)
 | 
			
		||||
      when :String
 | 
			
		||||
        value.to_s
 | 
			
		||||
      when :Integer
 | 
			
		||||
        value.to_i
 | 
			
		||||
      when :Float
 | 
			
		||||
        value.to_f
 | 
			
		||||
      when :BOOLEAN
 | 
			
		||||
        if value.to_s =~ /^(true|t|yes|y|1)$/i
 | 
			
		||||
          true
 | 
			
		||||
        else
 | 
			
		||||
          false
 | 
			
		||||
        end
 | 
			
		||||
      when :Object
 | 
			
		||||
        # generic object (usually a Hash), return directly
 | 
			
		||||
        value
 | 
			
		||||
      when /\AArray<(?<inner_type>.+)>\z/
 | 
			
		||||
        inner_type = Regexp.last_match[:inner_type]
 | 
			
		||||
        value.map { |v| _deserialize(inner_type, v) }
 | 
			
		||||
      when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
 | 
			
		||||
        k_type = Regexp.last_match[:k_type]
 | 
			
		||||
        v_type = Regexp.last_match[:v_type]
 | 
			
		||||
        {}.tap do |hash|
 | 
			
		||||
          value.each do |k, v|
 | 
			
		||||
            hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
 | 
			
		||||
          end
 | 
			
		||||
        end
 | 
			
		||||
      else # model
 | 
			
		||||
        temp_model = Petstore.const_get(type).new
 | 
			
		||||
        temp_model.build_from_hash(value)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Returns the string representation of the object
 | 
			
		||||
    # @return [String] String presentation of the object
 | 
			
		||||
    def to_s
 | 
			
		||||
      to_hash.to_s
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # to_body is an alias to to_hash (backward compatibility)
 | 
			
		||||
    # @return [Hash] Returns the object in the form of hash
 | 
			
		||||
    def to_body
 | 
			
		||||
      to_hash
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Returns the object in the form of hash
 | 
			
		||||
    # @return [Hash] Returns the object in the form of hash
 | 
			
		||||
    def to_hash
 | 
			
		||||
      hash = {}
 | 
			
		||||
      self.class.attribute_map.each_pair do |attr, param|
 | 
			
		||||
        value = self.send(attr)
 | 
			
		||||
        next if value.nil?
 | 
			
		||||
        hash[param] = _to_hash(value)
 | 
			
		||||
      end
 | 
			
		||||
      hash
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    # Outputs non-array value in the form of hash
 | 
			
		||||
    # For object, use to_hash. Otherwise, just return the value
 | 
			
		||||
    # @param [Object] value Any valid value
 | 
			
		||||
    # @return [Hash] Returns the value in the form of hash
 | 
			
		||||
    def _to_hash(value)
 | 
			
		||||
      if value.is_a?(Array)
 | 
			
		||||
        value.compact.map{ |v| _to_hash(v) }
 | 
			
		||||
      elsif value.is_a?(Hash)
 | 
			
		||||
        {}.tap do |hash|
 | 
			
		||||
          value.each { |k, v| hash[k] = _to_hash(v) }
 | 
			
		||||
        end
 | 
			
		||||
      elsif value.respond_to? :to_hash
 | 
			
		||||
        value.to_hash
 | 
			
		||||
      else
 | 
			
		||||
        value
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										47
									
								
								samples/client/petstore/ruby/spec/models/array_test_spec.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								samples/client/petstore/ruby/spec/models/array_test_spec.rb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,47 @@
 | 
			
		||||
=begin
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
you may not use this file except in compliance with the License.
 | 
			
		||||
You may obtain a copy of the License at
 | 
			
		||||
 | 
			
		||||
http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 | 
			
		||||
Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
See the License for the specific language governing permissions and
 | 
			
		||||
limitations under the License.
 | 
			
		||||
 | 
			
		||||
=end
 | 
			
		||||
 | 
			
		||||
require 'spec_helper'
 | 
			
		||||
require 'json'
 | 
			
		||||
require 'date'
 | 
			
		||||
 | 
			
		||||
# Unit tests for Petstore::ArrayTest
 | 
			
		||||
# Automatically generated by swagger-codegen (github.com/swagger-api/swagger-codegen)
 | 
			
		||||
# Please update as you see appropriate
 | 
			
		||||
describe 'ArrayTest' do
 | 
			
		||||
  before do
 | 
			
		||||
    # run before each test
 | 
			
		||||
    @instance = Petstore::ArrayTest.new
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  after do
 | 
			
		||||
    # run after each test
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe 'test an instance of ArrayTest' do
 | 
			
		||||
    it 'should create an instact of ArrayTest' do
 | 
			
		||||
      expect(@instance).to be_instance_of(Petstore::ArrayTest)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user