|
74 | 74 |
|
75 | 75 | it "generates first enum value for a schema with enum" do
|
76 | 76 | link = Committee::Drivers::OpenAPI2::Link.new
|
77 |
| - link.target_schema = JsonSchema::Schema.new |
78 |
| - link.target_schema.enum = ["foo"] |
79 |
| - link.target_schema.type = ["string"] |
| 77 | + target_schema = JsonSchema::Schema.new |
| 78 | + target_schema.enum = ["foo"] |
| 79 | + target_schema.type = ["string"] |
| 80 | + link.target_schemas = { 200 => target_schema } |
80 | 81 | data, _schema = Committee::SchemaValidator::HyperSchema::ResponseGenerator.new.call(link)
|
81 | 82 | assert_equal("foo", data)
|
82 | 83 | end
|
83 | 84 |
|
84 | 85 | it "generates basic types" do
|
85 | 86 | link = Committee::Drivers::OpenAPI2::Link.new
|
86 |
| - link.target_schema = JsonSchema::Schema.new |
| 87 | + target_schema = JsonSchema::Schema.new |
| 88 | + link.target_schemas = { 200 => target_schema } |
87 | 89 |
|
88 |
| - link.target_schema.type = ["integer"] |
| 90 | + target_schema.type = ["integer"] |
89 | 91 | data, _schema = Committee::SchemaValidator::HyperSchema::ResponseGenerator.new.call(link)
|
90 | 92 | assert_equal 0, data
|
91 | 93 |
|
92 |
| - link.target_schema.type = ["null"] |
| 94 | + target_schema.type = ["null"] |
93 | 95 | data, _schema = Committee::SchemaValidator::HyperSchema::ResponseGenerator.new.call(link)
|
94 | 96 | assert_nil data
|
95 | 97 |
|
96 |
| - link.target_schema.type = ["string"] |
| 98 | + target_schema.type = ["string"] |
97 | 99 | data, _schema = Committee::SchemaValidator::HyperSchema::ResponseGenerator.new.call(link)
|
98 | 100 | assert_equal "", data
|
99 | 101 | end
|
100 | 102 |
|
101 | 103 | it "generates an empty array for an array type" do
|
102 | 104 | link = Committee::Drivers::OpenAPI2::Link.new
|
103 |
| - link.target_schema = JsonSchema::Schema.new |
104 |
| - link.target_schema.type = ["array"] |
| 105 | + target_schema = JsonSchema::Schema.new |
| 106 | + link.target_schemas = { 200 => target_schema } |
| 107 | + target_schema.type = ["array"] |
105 | 108 | data, _schema = Committee::SchemaValidator::HyperSchema::ResponseGenerator.new.call(link)
|
106 | 109 | assert_equal([], data)
|
107 | 110 | end
|
108 | 111 |
|
109 | 112 | it "generates an empty object for an object with no fields" do
|
110 | 113 | link = Committee::Drivers::OpenAPI2::Link.new
|
111 |
| - link.target_schema = JsonSchema::Schema.new |
112 |
| - link.target_schema.type = ["object"] |
| 114 | + target_schema = JsonSchema::Schema.new |
| 115 | + link.target_schemas = { 200 => target_schema } |
| 116 | + target_schema.type = ["object"] |
113 | 117 | data, _schema = Committee::SchemaValidator::HyperSchema::ResponseGenerator.new.call(link)
|
114 | 118 | assert_equal({}, data)
|
115 | 119 | end
|
116 | 120 |
|
117 | 121 | it "prefers an example to a built-in value" do
|
118 | 122 | link = Committee::Drivers::OpenAPI2::Link.new
|
119 |
| - link.target_schema = JsonSchema::Schema.new |
| 123 | + target_schema = JsonSchema::Schema.new |
| 124 | + link.target_schemas = { 200 => target_schema } |
120 | 125 |
|
121 |
| - link.target_schema.data = { "example" => 123 } |
122 |
| - link.target_schema.type = ["integer"] |
| 126 | + target_schema.data = { "example" => 123 } |
| 127 | + target_schema.type = ["integer"] |
123 | 128 |
|
124 | 129 | data, _schema = Committee::SchemaValidator::HyperSchema::ResponseGenerator.new.call(link)
|
125 | 130 | assert_equal 123, data
|
126 | 131 | end
|
127 | 132 |
|
128 | 133 | it "prefers non-null types to null types" do
|
129 | 134 | link = Committee::Drivers::OpenAPI2::Link.new
|
130 |
| - link.target_schema = JsonSchema::Schema.new |
| 135 | + target_schema = JsonSchema::Schema.new |
| 136 | + link.target_schemas = { 200 => target_schema } |
131 | 137 |
|
132 |
| - link.target_schema.type = ["null", "integer"] |
| 138 | + target_schema.type = ["null", "integer"] |
133 | 139 | data, _schema = Committee::SchemaValidator::HyperSchema::ResponseGenerator.new.call(link)
|
134 | 140 | assert_equal 0, data
|
135 | 141 | end
|
|
0 commit comments