From e6fcbcbde05dccef761ccbaa997fdd10e7ad1eba Mon Sep 17 00:00:00 2001 From: William Cheng Date: Sun, 26 May 2024 11:29:24 +0800 Subject: [PATCH] update crystal petstore tets (#18766) --- samples/client/petstore/crystal/pom.xml | 1 + samples/client/petstore/crystal/shard.lock | 24 +-- .../petstore/crystal/spec/models/pet_spec.cr | 2 +- .../spec/models/property_name_mapping_spec.cr | 50 ----- .../petstore/models/property_name_mapping.cr | 193 ------------------ 5 files changed, 4 insertions(+), 266 deletions(-) delete mode 100644 samples/client/petstore/crystal/spec/models/property_name_mapping_spec.cr delete mode 100644 samples/client/petstore/crystal/src/petstore/models/property_name_mapping.cr diff --git a/samples/client/petstore/crystal/pom.xml b/samples/client/petstore/crystal/pom.xml index 29b7e4bc351..2cdbf1e1739 100644 --- a/samples/client/petstore/crystal/pom.xml +++ b/samples/client/petstore/crystal/pom.xml @@ -37,6 +37,7 @@ install --ignore-crystal-version + --without-development diff --git a/samples/client/petstore/crystal/shard.lock b/samples/client/petstore/crystal/shard.lock index 6a33ec4f671..b2ac3af1d03 100644 --- a/samples/client/petstore/crystal/shard.lock +++ b/samples/client/petstore/crystal/shard.lock @@ -1,16 +1,8 @@ version: 2.0 shards: - ameba: - git: https://github.com/crystal-ameba/ameba.git - version: 0.14.3 - crest: git: https://github.com/mamantoha/crest.git - version: 0.26.8 - - exception_page: - git: https://github.com/crystal-loot/exception_page.git - version: 0.1.5 + version: 1.3.13 http-client-digest_auth: git: https://github.com/mamantoha/http-client-digest_auth.git @@ -18,17 +10,5 @@ shards: http_proxy: git: https://github.com/mamantoha/http_proxy.git - version: 0.8.0 - - kemal: - git: https://github.com/kemalcr/kemal.git - version: 0.27.0 - - kilt: - git: https://github.com/jeromegn/kilt.git - version: 0.4.1 - - radix: - git: https://github.com/luislavena/radix.git - version: 0.3.9 + version: 0.10.3 diff --git a/samples/client/petstore/crystal/spec/models/pet_spec.cr b/samples/client/petstore/crystal/spec/models/pet_spec.cr index 16117449db5..dac484057c9 100644 --- a/samples/client/petstore/crystal/spec/models/pet_spec.cr +++ b/samples/client/petstore/crystal/spec/models/pet_spec.cr @@ -19,7 +19,7 @@ describe Petstore::Pet do describe "test an instance of Pet" do it "should fail to compile if any required properties is missing" do - assert_compilation_error(path: "./pet_compilation_error_spec.cr", message: "Error: no overload matches 'Petstore::Pet.new', id: Nil, category: Nil, name: Nil, photo_urls: Array(String), tags: Nil, status: Nil") + assert_compilation_error(path: "./pet_compilation_error_spec.cr", message: "Error: expected argument 'name' to 'Petstore::Pet.new' to be String, not Nil") end it "should create an instance of Pet with only required properties" do diff --git a/samples/client/petstore/crystal/spec/models/property_name_mapping_spec.cr b/samples/client/petstore/crystal/spec/models/property_name_mapping_spec.cr deleted file mode 100644 index 2c3f56c6368..00000000000 --- a/samples/client/petstore/crystal/spec/models/property_name_mapping_spec.cr +++ /dev/null @@ -1,50 +0,0 @@ -# #OpenAPI Petstore -# -##This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. -# -#The version of the OpenAPI document: 1.0.0 -# -#Generated by: https://openapi-generator.tech -#OpenAPI Generator version: 7.0.0-SNAPSHOT -# - -require "../spec_helper" -require "json" -require "time" - -# Unit tests for Petstore::PropertyNameMapping -# Automatically generated by openapi-generator (https://openapi-generator.tech) -# Please update as you see appropriate -describe Petstore::PropertyNameMapping do - - describe "test an instance of PropertyNameMapping" do - it "should create an instance of PropertyNameMapping" do - #instance = Petstore::PropertyNameMapping.new - #expect(instance).to be_instance_of(Petstore::PropertyNameMapping) - end - end - describe "test attribute 'http_debug_operation'" do - it "should work" do - # assertion here. ref: https://crystal-lang.org/reference/guides/testing.html - end - end - - describe "test attribute '_type'" do - it "should work" do - # assertion here. ref: https://crystal-lang.org/reference/guides/testing.html - end - end - - describe "test attribute '_type'" do - it "should work" do - # assertion here. ref: https://crystal-lang.org/reference/guides/testing.html - end - end - - describe "test attribute 'type_'" do - it "should work" do - # assertion here. ref: https://crystal-lang.org/reference/guides/testing.html - end - end - -end diff --git a/samples/client/petstore/crystal/src/petstore/models/property_name_mapping.cr b/samples/client/petstore/crystal/src/petstore/models/property_name_mapping.cr deleted file mode 100644 index e9d0661b1c5..00000000000 --- a/samples/client/petstore/crystal/src/petstore/models/property_name_mapping.cr +++ /dev/null @@ -1,193 +0,0 @@ -# #OpenAPI Petstore -# -##This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. -# -#The version of the OpenAPI document: 1.0.0 -# -#Generated by: https://openapi-generator.tech -#OpenAPI Generator version: 7.0.0-SNAPSHOT -# - -require "big" -require "json" -require "time" - -module Petstore - class PropertyNameMapping - include JSON::Serializable - - # Optional properties - @[JSON::Field(key: "http_debug_operation", type: String?, nillable: true, emit_null: false)] - property http_debug_operation : String? - - @[JSON::Field(key: "_type", type: String?, nillable: true, emit_null: false)] - property _type : String? - - @[JSON::Field(key: "type", type: String?, nillable: true, emit_null: false)] - property _type : String? - - @[JSON::Field(key: "type_", type: String?, nillable: true, emit_null: false)] - property type_ : String? - - # Initializes the object - # @param [Hash] attributes Model attributes in the form of hash - def initialize(@http_debug_operation : String?, @_type : String?, @_type : String?, @type_ : String?) - end - - # Show invalid properties with the reasons. Usually used together with valid? - # @return Array for valid properties with the reasons - def list_invalid_properties - invalid_properties = Array(String).new - 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? - true - end - - # Checks equality by comparing each attribute. - # @param [Object] Object to be compared - def ==(o) - return true if self.same?(o) - self.class == o.class && - http_debug_operation == o.http_debug_operation && - _type == o._type && - _type == o._type && - type_ == o.type_ - end - - # @see the `==` method - # @param [Object] Object to be compared - def eql?(o) - self == o - end - - # Calculates hash code according to all attributes. - # @return [Integer] Hash code - def hash - [http_debug_operation, _type, _type, type_].hash - end - - # Builds the object from hash - # @param [Hash] attributes Model attributes in the form of hash - # @return [Object] Returns the model itself - def self.build_from_hash(attributes) - new.build_from_hash(attributes) - 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.openapi_types.each_pair do |key, type| - if !attributes[self.class.attribute_map[key]]? && self.class.openapi_nullable.includes?(key) - self.send("#{key}=", nil) - elsif type =~ /\AArray<(.*)>/i - # check to ensure the input is an array given that 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 - 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 :Time - Time.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 =~ /\A(true|t|yes|y|1)\z/i - true - else - false - end - when :Object - # generic object (usually a Hash), return directly - value - when /\AArray<(?.+)>\z/ - inner_type = Regexp.last_match[:inner_type] - value.map { |v| _deserialize(inner_type, v) } - when /\AHash<(?.+?), (?.+)>\z/ - k_type = Regexp.last_match[:k_type] - v_type = Regexp.last_match[:v_type] - ({} of Symbol => String).tap do |hash| - value.each do |k, v| - hash[_deserialize(k_type, k)] = _deserialize(v_type, v) - end - end - else # model - # models (e.g. Pet) or oneOf - klass = Petstore.const_get(type) - klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.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 = {} of Symbol => String - self.class.attribute_map.each_pair do |attr, param| - value = self.send(attr) - if value.nil? - is_nullable = self.class.openapi_nullable.includes?(attr) - next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) - end - - 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) - ({} of Symbol => String).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