feat: added static methods to JSON for configuration deserialization

This commit is contained in:
2021-06-04 18:44:54 +02:00
parent 672e5e7727
commit d74cd114cc
2 changed files with 125 additions and 0 deletions

View File

@ -56,6 +56,65 @@ class JSONTest {
// >>>>>>> Deserialization tests <<<<<<<
// =============================================================================
@Test
void scenarioConfigDeserializationTest() {
var jsonRepresentingConfig = """
{
"scenario":[
["GRASS", "GRASS", "GRASS", "GRASS", "GRASS"],
["GRASS", "GRASS", "GRASS", "GRASS", "GRASS"],
["GRASS", "GRASS", "ROCK", "GRASS", "GRASS"],
["GRASS", "GRASS", "ROCK", "GRASS", "GRASS"],
["GRASS", "GRASS", "ROCK", "ROCK", "GRASS"],
["GRASS", "GRASS", "ROCK", "GRASS", "GRASS"],
["GRASS", "GRASS", "ROCK", "GRASS", "GRASS"],
["GRASS", "GRASS", "ROCK", "GRASS", "GRASS"],
["GRASS", "GRASS", "ROCK", "GRASS", "GRASS"],
["GRASS", "GRASS", "ROCK", "GRASS", "GRASS"],
["GRASS", "GRASS", "ROCK", "GRASS", "GRASS"],
["GRASS", "GRASS", "ROCK", "GRASS", "GRASS"],
["GRASS", "GRASS", "ROCK", "GRASS", "GRASS"],
["GRASS", "GRASS", "ROCK", "GRASS", "GRASS"],
["GRASS", "GRASS", "ROCK", "GRASS", "GRASS"],
["ROCK", "GRASS", "ROCK", "GRASS", "GRASS"],
["ROCK", "GRASS", "ROCK", "ROCK", "GRASS"],
["ROCK", "ROCK", "ROCK", "ROCK", "GRASS"]
],
"author": "jakobmh",
"name": "avengerstower"
}
""";
var result = JSON.parseScenarioConfig(jsonRepresentingConfig).get();
var actual = new ScenarioConfig();
actual.scenario = new FieldType[][] {
{FieldType.GRASS, FieldType.GRASS, FieldType.GRASS, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.GRASS, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.ROCK, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.GRASS, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.ROCK, FieldType.GRASS, FieldType.ROCK, FieldType.GRASS, FieldType.GRASS},
{FieldType.ROCK, FieldType.GRASS, FieldType.ROCK, FieldType.ROCK, FieldType.GRASS},
{FieldType.ROCK, FieldType.ROCK, FieldType.ROCK, FieldType.ROCK, FieldType.GRASS}
};
actual.author = "jakobmh";
actual.name = "avengerstower";
assertThat(result).isEqualTo(actual);
}
@Test
void characterSelectionDeserializationParseTest() throws JsonProcessingException {
var jsonRepresentingMessage = """