1
0
mirror of https://github.com/octoleo/plantuml.git synced 2024-06-12 13:12:25 +00:00

Compare commits

..

No commits in common. "34e3cfc9f4b4146410746e090f0c99397d603190" and "81e7e76c5083aebb1866e401fb7c40e0b9f26bc6" have entirely different histories.

4 changed files with 9 additions and 80 deletions

View File

@ -36,7 +36,6 @@ package net.sourceforge.plantuml.tim.expression;
import java.util.Objects;
import net.sourceforge.plantuml.json.Json;
import net.sourceforge.plantuml.json.JsonValue;
public final class TValue {
@ -222,13 +221,4 @@ public final class TValue {
return jsonValue;
}
public JsonValue toJsonValue() {
if (isNumber()) {
return Json.value(this.intValue);
}
if (isString()) {
return Json.value(this.stringValue);
}
return this.jsonValue;
}
}

View File

@ -72,15 +72,17 @@ public class JsonAdd extends SimpleReturnFunction {
if (!json.isArray() && !json.isObject())
return data;
if (json.isArray()) {
final JsonValue value = values.get(1).toJsonValue();
json.asArray().add(value);
return TValue.fromJson(json);
final JsonValue value = values.get(1).toJson();
final JsonArray array = (JsonArray) json;
array.add(value);
return TValue.fromJson(array);
}
if (json.isObject()) {
final String name = values.get(1).toString();
final JsonValue value = values.get(2).toJsonValue();
json.asObject().add(name, value);
return TValue.fromJson(json);
final JsonValue value = values.get(2).toJson();
final JsonObject object = (JsonObject) json;
object.add(name, value);
return TValue.fromJson(object);
}
throw new EaterException("Bad JSON type", location);
}

View File

@ -83,18 +83,4 @@ public class TimTestUtils {
assertEquals(expected, tValue.toString());
}
// Tfunc: (JsonValue, String, String) -> (String)
public static void assertTimExpectedOutputFromInput(TFunction func, JsonValue input1, String input2, String input3, String expected) throws EaterException {
final List<TValue> values = Arrays.asList(TValue.fromJson(input1), TValue.fromString(input2), TValue.fromString(input3));
final TValue tValue = func.executeReturnFunction(null, null, null, values, null);
assertEquals(expected, tValue.toString());
}
// Tfunc: (JsonValue, String, Int) -> (String)
public static void assertTimExpectedOutputFromInput(TFunction func, JsonValue input1, String input2, Integer input3, String expected) throws EaterException {
final List<TValue> values = Arrays.asList(TValue.fromJson(input1), TValue.fromString(input2), TValue.fromInt(input3));
final TValue tValue = func.executeReturnFunction(null, null, null, values, null);
assertEquals(expected, tValue.toString());
}
}

View File

@ -38,35 +38,7 @@ class JsonAddTest {
void Test_with_Array_Json(@ConvertWith(StringJsonConverter.class) JsonValue input1, @ConvertWith(StringJsonConverter.class) JsonValue input2, String expected) throws EaterException {
assertTimExpectedOutputFromInput(cut, input1, input2, expected);
}
@ParameterizedTest(name = paramTestName)
@CsvSource(value = {
" [], -1, '[\"-1\"]' ",
" [], 1, '[\"1\"]' ",
" [0], 123, '[0,\"123\"]' ",
" [0], a, '[0,\"a\"]' ",
" [0], \"a\", '[0,\"\\\"a\\\"\"]' ",
" [0], a b c, '[0,\"a b c\"]' ",
" [0], \"a b c\", '[0,\"\\\"a b c\\\"\"]' ",
" '[{\"a\":[1, 2]}]', 1, '[{\"a\":[1,2]},\"1\"]' ",
" '[{\"a\":[1, 2]}]', a, '[{\"a\":[1,2]},\"a\"]' ",
})
void Test_with_Array_Json_add_Str(@ConvertWith(StringJsonConverter.class) JsonValue input1, String input2, String expected) throws EaterException {
assertTimExpectedOutputFromInput(cut, input1, input2, expected);
}
@ParameterizedTest(name = paramTestName)
@CsvSource(value = {
" [], -1, [-1]",
" [], 1, [1]",
" [0], 123, '[0,123]' ",
" '[{\"a\":[1, 2]}]', 1, '[{\"a\":[1,2]},1]' ",
" '[{\"a\":[1, 2]}]', 123, '[{\"a\":[1,2]},123]' ",
})
void Test_with_Array_Json_add_Int(@ConvertWith(StringJsonConverter.class) JsonValue input1, Integer input2, String expected) throws EaterException {
assertTimExpectedOutputFromInput(cut, input1, input2, expected);
}
@ParameterizedTest(name = "[{index}] " + cutName + "({0}, {1}, {2}) = {3}")
@CsvSource(value = {
" {}, a, 1, {\"a\":1}",
@ -85,27 +57,6 @@ class JsonAddTest {
assertTimExpectedOutputFromInput(cut, input1, input2, input3, expected);
}
@ParameterizedTest(name = "[{index}] " + cutName + "({0}, {1}, {2}) = {3}")
@CsvSource(value = {
" {}, a, 1, {\"a\":\"1\"}",
" {}, a, 'abc', '{\"a\":\"abc\"}'",
" {}, a, 'a b c', '{\"a\":\"a b c\"}'",
" {\"age\" : 30}, name, Sally, '{\"age\":30,\"name\":\"Sally\"}'",
})
void Test_with_Object_Json_add_Str(@ConvertWith(StringJsonConverter.class) JsonValue input1, String input2, String input3, String expected) throws EaterException {
assertTimExpectedOutputFromInput(cut, input1, input2, input3, expected);
}
@ParameterizedTest(name = "[{index}] " + cutName + "({0}, {1}, {2}) = {3}")
@CsvSource(value = {
" {}, a, 1, {\"a\":1}",
" {}, a, 123, '{\"a\":123}'",
" {\"age\" : 30}, name, 123, '{\"age\":30,\"name\":123}'",
})
void Test_with_Object_Json_add_Int(@ConvertWith(StringJsonConverter.class) JsonValue input1, String input2, Integer input3, String expected) throws EaterException {
assertTimExpectedOutputFromInput(cut, input1, input2, input3, expected);
}
@Nested
class Not_Nominal_Test {
@ParameterizedTest(name = paramTestName)