Skip to content

Commit 465dc03

Browse files
committed
15 failures
1 parent 22c815a commit 465dc03

File tree

7 files changed

+66
-51
lines changed

7 files changed

+66
-51
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ dependencies {
4747
api("com.fasterxml.jackson.core:jackson-databind:2.20.0")
4848
api("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.20.0")
4949

50-
api("com.github.erosb:json-sKema:0.0.1-SNAPSHOT")
50+
api("com.github.erosb:json-sKema:0.0.2-SNAPSHOT")
5151

5252
testImplementation("junit:junit:4.13.2")
5353
testImplementation("org.skyscreamer:jsonassert:1.5.0")

src/main/java/com/github/erosb/kappa/operation/validator/util/convert/ParameterConverter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ public static <M extends OpenApiSchema<M>> Map<String, IJsonValue> headersToNode
179179
} else {
180180
Collection<String> headerValues = headers.get(paramName);
181181
if (headerValues != null) {
182+
System.out.println("headerValues = " + headerValues);
182183
if (param.getSchema() != null) {
183184
convertedValue = SimpleStyleConverter.instance().convert(context, param, paramName, String.join(",", headerValues));
184185
} else {

src/main/java/com/github/erosb/kappa/operation/validator/util/convert/TypeConverter.java

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@ public static TypeConverter instance() {
3434
return INSTANCE;
3535
}
3636

37-
public IJsonValue convertObject(final OAIContext context,
38-
final Schema schema,
39-
final Map<String, Object> content) {
37+
public <T extends JsonValue> T convertObject(final OAIContext context,
38+
final Schema schema,
39+
final Map<String, IJsonValue> content) {
4040
if (schema == null || content == null) {
41-
return new JsonNull();
41+
return (T) new JsonNull();
4242
}
4343

4444
Map<String, Schema> properties = schema.getProperties();
4545
if (properties == null || properties.isEmpty()) {
46-
return new JsonNull();
46+
return (T) new JsonNull();
4747
}
4848

4949
Map<IJsonString, IJsonValue> convertedContent = new HashMap<>();
@@ -55,34 +55,36 @@ public IJsonValue convertObject(final OAIContext context,
5555
continue;
5656
}
5757

58-
Object value = content.get(entryKey);
58+
IJsonValue value = content.get(entryKey);
5959

6060
Schema flatSchema = entry.getValue();
6161
switch (flatSchema.getSupposedType(context)) {
6262
case OAI3SchemaKeywords.TYPE_OBJECT:
6363
convertedContent.put(new JsonString(entryKey), convertObject(context, flatSchema, castMap(value)));
6464
break;
6565
case OAI3SchemaKeywords.TYPE_ARRAY:
66-
convertedContent.put(new JsonString(entryKey), convertArray(context, flatSchema.getItemsSchema(), castList(value)));
67-
break;
66+
throw new UnsupportedOperationException("todo");
67+
// convertedContent.put(new JsonString(entryKey), convertArray(context, flatSchema.getItemsSchema(), castList(value)));
68+
// break;
6869
default:
69-
convertedContent.put(new JsonString(entryKey), convertPrimitive(context, flatSchema, value));
70+
convertedContent.put(new JsonString(entryKey), value /* convertPrimitive(context, flatSchema, value)*/);
7071
break;
7172
}
7273
}
73-
74-
return new JsonObject(convertedContent);
74+
// Map<JsonString, ? extends JsonValue> propz = new HashMap<>();
75+
// new JsonObject(propz);
76+
return (T) new JsonObject(convertedContent);
7577
}
7678

77-
public IJsonValue convertArray(final OAIContext context,
78-
final Schema schema,
79-
final Collection<Object> content) {
79+
public JsonValue convertArray(final OAIContext context,
80+
final Schema schema,
81+
final Collection<Object> content) {
8082

8183
if (schema == null || content == null) {
8284
return new JsonNull();
8385
}
8486

85-
List<IJsonValue> convertedContent = new ArrayList<>();
87+
List<JsonValue> convertedContent = new ArrayList<>();
8688

8789
switch (schema.getSupposedType(context)) {
8890
case OAI3SchemaKeywords.TYPE_OBJECT:
@@ -92,7 +94,8 @@ public IJsonValue convertArray(final OAIContext context,
9294
break;
9395
case OAI3SchemaKeywords.TYPE_ARRAY:
9496
for (Object value : content) {
95-
convertedContent.add(convertArray(context, schema.getItemsSchema(), castList(value)));
97+
throw new UnsupportedOperationException("todo");
98+
// convertedContent.add(convertArray(context, schema.getItemsSchema(), castList(value)));
9699
}
97100
break;
98101
default:
@@ -105,12 +108,13 @@ public IJsonValue convertArray(final OAIContext context,
105108
return new JsonArray(convertedContent);
106109
}
107110

108-
public IJsonValue convertPrimitive(final OAIContext context,
109-
final Schema schema,
110-
Object value) {
111+
public JsonValue convertPrimitive(final OAIContext context,
112+
final Schema schema,
113+
Object value) {
111114
if (value == null) {
112115
return new JsonNull();
113116
}
117+
System.out.println("converting " + value);
114118
return new JsonString(value.toString());
115119
}
116120

@@ -133,18 +137,18 @@ private boolean parseBoolean(String value) {
133137
}
134138

135139
@SuppressWarnings("unchecked")
136-
private Map<String, Object> castMap(Object obj) {
140+
private Map<String, IJsonValue> castMap(Object obj) {
137141
try {
138-
return (Map<String, Object>) obj;
142+
return (Map<String, IJsonValue>) obj;
139143
} catch (ClassCastException ex) {
140144
return null;
141145
}
142146
}
143147

144148
@SuppressWarnings("unchecked")
145-
private Collection<Object> castList(Object obj) {
149+
private Collection<JsonValue> castList(Object obj) {
146150
try {
147-
return (Collection<Object>) obj;
151+
return (Collection<JsonValue>) obj;
148152
} catch (ClassCastException ex) {
149153
return null;
150154
}

src/main/java/com/github/erosb/kappa/operation/validator/util/convert/style/SimpleStyleConverter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public static SimpleStyleConverter instance() {
2121
@Override
2222
public IJsonValue convert(OAIContext context, AbsParameter<?> param, String paramName, String rawValue) {
2323
final Map<String, IJsonValue> paramValues = getParameterValues(context, param, paramName, rawValue, ",");
24+
System.out.println("paramValues = " + paramValues);
2425
return convert(context, param, paramName, paramValues);
2526
}
2627
}

src/main/java/com/github/erosb/kappa/operation/validator/util/convert/style/StyleConverter.java

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import com.fasterxml.jackson.databind.JsonNode;
44
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
5+
import com.github.erosb.jsonsKema.IJsonArray;
56
import com.github.erosb.jsonsKema.IJsonValue;
7+
import com.github.erosb.jsonsKema.JsonNull;
68
import com.github.erosb.kappa.core.model.OAIContext;
79
import com.github.erosb.kappa.core.model.v3.OAI3SchemaKeywords;
810
import com.github.erosb.kappa.parser.model.v3.AbsParameter;
@@ -20,19 +22,23 @@ default IJsonValue convert(OAIContext context, AbsParameter<?> param, String par
2022
if (paramValues == null || paramValues.isEmpty()) {
2123
return null;
2224
}
23-
return paramValues.get(paramName);
24-
//
25-
// String style = param.getSchema().getSupposedType(context);
26-
// Schema schema = param.getSchema();
27-
// if (OAI3SchemaKeywords.TYPE_OBJECT.equals(style)) {
28-
// return TypeConverter.instance().convertObject(context, schema, paramValues);
29-
// } else if (OAI3SchemaKeywords.TYPE_ARRAY.equals(style)) {
30-
// Object value = paramValues.get(paramName);
31-
// return (value instanceof Collection)
32-
// ? TypeConverter.instance().convertArray(context, schema.getItemsSchema(), (Collection<Object>) value)
33-
// : JsonNodeFactory.instance.nullNode();
34-
// } else {
35-
// return TypeConverter.instance().convertPrimitive(context, schema, paramValues.get(paramName));
36-
// }
25+
System.out.println("paramValues = " + paramValues);
26+
System.out.println("paramName = " + paramName);
27+
// return paramValues.get(paramName);
28+
29+
String style = param.getSchema().getSupposedType(context);
30+
Schema schema = param.getSchema();
31+
if (OAI3SchemaKeywords.TYPE_OBJECT.equals(style)) {
32+
return TypeConverter.instance().convertObject(context, schema, paramValues);
33+
} else if (OAI3SchemaKeywords.TYPE_ARRAY.equals(style)) {
34+
IJsonValue value = paramValues.get(paramName);
35+
System.out.println("value = " + value);
36+
37+
return (value instanceof IJsonArray)
38+
? value //TypeConverter.instance().convertArray(context, schema.getItemsSchema(), (Collection<Object>) value)
39+
: new JsonNull();
40+
} else {
41+
return paramValues.get(paramName);//TypeConverter.instance().convertPrimitive(context, schema, paramValues.get(paramName));
42+
}
3743
}
3844
}

src/test/java/com/github/erosb/kappa/operation/validator/convert/TypeConverterTest.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import static org.junit.Assert.assertEquals;
2020
import static org.junit.Assert.assertTrue;
21+
import static org.junit.Assert.fail;
2122

2223
public class TypeConverterTest {
2324
@Test
@@ -46,10 +47,10 @@ public void convertObjectNullNode() {
4647
value.put("bar", 1);
4748
Map<String, Object> rootValue = new HashMap<>();
4849
rootValue.put("foo", value);
49-
50-
JSONAssert.assertEquals(
51-
"{\"foo\":{\"bar\":\"1\"}}",
52-
TypeConverter.instance().convertObject(null, schema, rootValue).toString(), false);
50+
fail("TODO");
51+
// JSONAssert.assertEquals(
52+
// "{\"foo\":{\"bar\":\"1\"}}",
53+
// TypeConverter.instance().convertObject(null, schema, rootValue).toString(), false);
5354
}
5455

5556
@Test
@@ -65,15 +66,16 @@ public void convertObjectOfObject() {
6566
Map<String, Object> foo = new HashMap<>();
6667
foo.put("foo", bar);
6768

68-
JSONAssert.assertEquals(
69-
"{\"foo\":{\"bar\":\"1\"}}",
70-
TypeConverter.instance().convertObject(null, schema, foo).toString(), false);
71-
72-
// wrong value
73-
foo.put("foo", "bar");
74-
JSONAssert.assertEquals(
75-
"{\"foo\":null}",
76-
TypeConverter.instance().convertObject(null, schema, foo).toString(), false);
69+
fail("TODO");
70+
// JSONAssert.assertEquals(
71+
// "{\"foo\":{\"bar\":\"1\"}}",
72+
// TypeConverter.instance().convertObject(null, schema, foo).toString(), false);
73+
//
74+
// // wrong value
75+
// foo.put("foo", "bar");
76+
// JSONAssert.assertEquals(
77+
// "{\"foo\":null}",
78+
// TypeConverter.instance().convertObject(null, schema, foo).toString(), false);
7779
}
7880

7981
@Test

src/test/java/com/github/erosb/kappa/operation/validator/validation/RequestValidatorTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ private void checkRequest(OpenApi3 api, String opId, RequestValidator requestVal
223223
requestValidator.validate(rq);
224224
} catch (ValidationException e) {
225225
if (shouldBeValid) {
226+
e.printStackTrace();
226227
fail();
227228
}
228229
}

0 commit comments

Comments
 (0)