Skip to content

Commit f0ce7e1

Browse files
authored
add tests for plain default string values (#44)
Adding tests for correct model generation when the default value for a member is set to a plain string value.
1 parent a12ba5a commit f0ce7e1

File tree

6 files changed

+42
-7
lines changed

6 files changed

+42
-7
lines changed

test/modelgen/ModelGenClient/docs/TestModel.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Name | Type | Description | Notes
88
**default_date** | **Date** | | [optional] [default to OpenAPI.str2date("2011-11-11")]
99
**default_datetime** | **ZonedDateTime** | | [optional] [default to OpenAPI.str2zoneddatetime("2011-11-11T11:11:11Z")]
1010
**max_val** | **Int64** | | [optional] [default to 100]
11+
**message** | **String** | | [optional] [default to "success"]
12+
**name** | **String** | | [default to "new"]
1113
**compute** | [***ComputeType**](ComputeType.md) | | [optional] [default to nothing]
1214

1315

test/modelgen/ModelGenClient/src/models/model_TestModel.jl

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,36 +9,45 @@
99
default_date=OpenAPI.str2date("2011-11-11"),
1010
default_datetime=OpenAPI.str2zoneddatetime("2011-11-11T11:11:11Z"),
1111
max_val=100,
12+
message="success",
13+
name="new",
1214
compute=nothing,
1315
)
1416
1517
- limited_by::String
1618
- default_date::Date
1719
- default_datetime::ZonedDateTime
1820
- max_val::Int64
21+
- message::String
22+
- name::String
1923
- compute::ComputeType
2024
"""
2125
Base.@kwdef mutable struct TestModel <: OpenAPI.APIModel
2226
limited_by::Union{Nothing, String} = "time"
2327
default_date::Union{Nothing, Date} = OpenAPI.str2date("2011-11-11")
2428
default_datetime::Union{Nothing, ZonedDateTime} = OpenAPI.str2zoneddatetime("2011-11-11T11:11:11Z")
2529
max_val::Union{Nothing, Int64} = 100
30+
message::Union{Nothing, String} = "success"
31+
name::Union{Nothing, String} = "new"
2632
compute = nothing # spec type: Union{ Nothing, ComputeType }
2733

28-
function TestModel(limited_by, default_date, default_datetime, max_val, compute, )
34+
function TestModel(limited_by, default_date, default_datetime, max_val, message, name, compute, )
2935
OpenAPI.validate_property(TestModel, Symbol("limited_by"), limited_by)
3036
OpenAPI.validate_property(TestModel, Symbol("default_date"), default_date)
3137
OpenAPI.validate_property(TestModel, Symbol("default_datetime"), default_datetime)
3238
OpenAPI.validate_property(TestModel, Symbol("max_val"), max_val)
39+
OpenAPI.validate_property(TestModel, Symbol("message"), message)
40+
OpenAPI.validate_property(TestModel, Symbol("name"), name)
3341
OpenAPI.validate_property(TestModel, Symbol("compute"), compute)
34-
return new(limited_by, default_date, default_datetime, max_val, compute, )
42+
return new(limited_by, default_date, default_datetime, max_val, message, name, compute, )
3543
end
3644
end # type TestModel
3745

38-
const _property_types_TestModel = Dict{Symbol,String}(Symbol("limited_by")=>"String", Symbol("default_date")=>"Date", Symbol("default_datetime")=>"ZonedDateTime", Symbol("max_val")=>"Int64", Symbol("compute")=>"ComputeType", )
46+
const _property_types_TestModel = Dict{Symbol,String}(Symbol("limited_by")=>"String", Symbol("default_date")=>"Date", Symbol("default_datetime")=>"ZonedDateTime", Symbol("max_val")=>"Int64", Symbol("message")=>"String", Symbol("name")=>"String", Symbol("compute")=>"ComputeType", )
3947
OpenAPI.property_type(::Type{ TestModel }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_TestModel[name]))}
4048

4149
function check_required(o::TestModel)
50+
o.name === nothing && (return false)
4251
true
4352
end
4453

test/modelgen/ModelGenServer/docs/TestModel.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Name | Type | Description | Notes
88
**default_date** | **Date** | | [optional] [default to OpenAPI.str2date("2011-11-11")]
99
**default_datetime** | **ZonedDateTime** | | [optional] [default to OpenAPI.str2zoneddatetime("2011-11-11T11:11:11Z")]
1010
**max_val** | **Int64** | | [optional] [default to 100]
11+
**message** | **String** | | [optional] [default to "success"]
12+
**name** | **String** | | [default to "new"]
1113
**compute** | [***ComputeType**](ComputeType.md) | | [optional] [default to nothing]
1214

1315

test/modelgen/ModelGenServer/src/models/model_TestModel.jl

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,36 +9,45 @@
99
default_date=OpenAPI.str2date("2011-11-11"),
1010
default_datetime=OpenAPI.str2zoneddatetime("2011-11-11T11:11:11Z"),
1111
max_val=100,
12+
message="success",
13+
name="new",
1214
compute=nothing,
1315
)
1416
1517
- limited_by::String
1618
- default_date::Date
1719
- default_datetime::ZonedDateTime
1820
- max_val::Int64
21+
- message::String
22+
- name::String
1923
- compute::ComputeType
2024
"""
2125
Base.@kwdef mutable struct TestModel <: OpenAPI.APIModel
2226
limited_by::Union{Nothing, String} = "time"
2327
default_date::Union{Nothing, Date} = OpenAPI.str2date("2011-11-11")
2428
default_datetime::Union{Nothing, ZonedDateTime} = OpenAPI.str2zoneddatetime("2011-11-11T11:11:11Z")
2529
max_val::Union{Nothing, Int64} = 100
30+
message::Union{Nothing, String} = "success"
31+
name::Union{Nothing, String} = "new"
2632
compute = nothing # spec type: Union{ Nothing, ComputeType }
2733

28-
function TestModel(limited_by, default_date, default_datetime, max_val, compute, )
34+
function TestModel(limited_by, default_date, default_datetime, max_val, message, name, compute, )
2935
OpenAPI.validate_property(TestModel, Symbol("limited_by"), limited_by)
3036
OpenAPI.validate_property(TestModel, Symbol("default_date"), default_date)
3137
OpenAPI.validate_property(TestModel, Symbol("default_datetime"), default_datetime)
3238
OpenAPI.validate_property(TestModel, Symbol("max_val"), max_val)
39+
OpenAPI.validate_property(TestModel, Symbol("message"), message)
40+
OpenAPI.validate_property(TestModel, Symbol("name"), name)
3341
OpenAPI.validate_property(TestModel, Symbol("compute"), compute)
34-
return new(limited_by, default_date, default_datetime, max_val, compute, )
42+
return new(limited_by, default_date, default_datetime, max_val, message, name, compute, )
3543
end
3644
end # type TestModel
3745

38-
const _property_types_TestModel = Dict{Symbol,String}(Symbol("limited_by")=>"String", Symbol("default_date")=>"Date", Symbol("default_datetime")=>"ZonedDateTime", Symbol("max_val")=>"Int64", Symbol("compute")=>"ComputeType", )
46+
const _property_types_TestModel = Dict{Symbol,String}(Symbol("limited_by")=>"String", Symbol("default_date")=>"Date", Symbol("default_datetime")=>"ZonedDateTime", Symbol("max_val")=>"Int64", Symbol("message")=>"String", Symbol("name")=>"String", Symbol("compute")=>"ComputeType", )
3947
OpenAPI.property_type(::Type{ TestModel }, name::Symbol) = Union{Nothing,eval(Base.Meta.parse(_property_types_TestModel[name]))}
4048

4149
function check_required(o::TestModel)
50+
o.name === nothing && (return false)
4251
true
4352
end
4453

test/modelgen/testmodelgen.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ module TestModelGen
1111
@test testmodel.default_datetime == OpenAPI.str2zoneddatetime("2011-11-11T11:11:11Z")
1212
@test testmodel.max_val == 100
1313
@test testmodel.compute in ["cpu", "gpu"]
14+
@test testmodel.message == "success"
15+
@test testmodel.name == "new"
1416
end
1517

1618
function runtests()

test/specs/modelgen.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,21 @@
5252
"default": 100,
5353
"enum": [100, 200, 300]
5454
},
55+
"message": {
56+
"type": "string",
57+
"default": "success"
58+
},
59+
"name": {
60+
"type": "string",
61+
"default": "new"
62+
},
5563
"compute": {
5664
"$ref": "#/components/schemas/ComputeType"
5765
}
58-
}
66+
},
67+
"required": [
68+
"name"
69+
]
5970
},
6071
"ComputeType": {
6172
"type": "string",

0 commit comments

Comments
 (0)