Search in sources :

Example 21 with JsonWriter

use of com.serotonin.json.JsonWriter in project ma-core-public by infiniteautomation.

the class StoreLatestSnapshotTest method testThreeTwoDevelopmentVersion.

// @Test
public void testThreeTwoDevelopmentVersion() throws JsonException, IOException, HttpException {
    // Setup json
    json.put("upgradeVersionState", UpgradeVersionState.DEVELOPMENT);
    json.put("currentVersionState", UpgradeVersionState.DEVELOPMENT);
    jsonModules.put("core", "3.2.2-SNAPSHOT");
    jsonModules.put("mangoApi", "3.2.3-SNAPSHOT");
    String url = baseUrl + "/servlet/versionCheck";
    HttpPost post = new HttpPost(url);
    StringWriter stringWriter = new StringWriter();
    new JsonWriter(JSON_CONTEXT, stringWriter).writeObject(json);
    String requestData = stringWriter.toString();
    post.setEntity(new StringEntity(requestData));
    String responseData = HttpUtils4.getTextContent(getHttpClient(30000), post, 1);
    JsonTypeReader jsonReader = new JsonTypeReader(responseData);
    JsonValue response = jsonReader.read();
    printResponse(response);
    Assert.assertNotNull(response.getJsonValue("versionState"));
    Assert.assertEquals("DEVELOPMENT", response.getJsonValue("versionState").toString());
    // Assert newInstalls-oldCore should be empty
    Assert.assertNotNull(response.getJsonValue("newInstalls-oldCore"));
    JsonArray newInstallsOldCore = response.getJsonValue("newInstalls-oldCore").toJsonArray();
    Assert.assertEquals(true, newInstallsOldCore.size() == 0);
    // Assert update-versionState
    Assert.assertNull(response.getJsonValue("update-versionState"));
    // Assert updates for this core iff major upgrade available
    Assert.assertNotNull(response.getJsonValue("updates"));
    JsonArray updates = response.getJsonValue("updates").toJsonArray();
    Assert.assertEquals(true, updates.size() == 0);
    // Assert upgrades
    Assert.assertNotNull(response.getJsonValue("upgrades"));
    JsonArray upgrades = response.getJsonValue("upgrades").toJsonArray();
    Assert.assertEquals(true, upgrades.size() > 0);
    for (JsonValue upgrade : upgrades) {
        Assert.assertEquals(true, upgrade.getJsonValue("fullVersion").toString().startsWith(latestDevelopmentCorePrefix));
    }
    // Assert newInstalls should be for latest production core
    Assert.assertNotNull(response.getJsonValue("newInstalls"));
    JsonArray newInstalls = response.getJsonValue("newInstalls").toJsonArray();
    Assert.assertEquals(true, newInstalls.size() > 0);
    for (JsonValue install : newInstalls) {
        Assert.assertEquals(true, install.getJsonValue("fullVersion").toString().startsWith(latestDevelopmentCorePrefix));
    }
}
Also used : JsonArray(com.serotonin.json.type.JsonArray) HttpPost(org.apache.http.client.methods.HttpPost) StringEntity(org.apache.http.entity.StringEntity) StringWriter(java.io.StringWriter) JsonValue(com.serotonin.json.type.JsonValue) JsonWriter(com.serotonin.json.JsonWriter) JsonTypeReader(com.serotonin.json.type.JsonTypeReader)

Example 22 with JsonWriter

use of com.serotonin.json.JsonWriter in project ma-core-public by infiniteautomation.

the class StoreLatestSnapshotTest method printResponse.

/**
 * Helper to print the json neatly
 * @param response
 * @throws IOException
 * @throws JsonException
 */
protected void printResponse(JsonValue response) throws IOException, JsonException {
    StringWriter stringWriter = new StringWriter();
    JsonWriter jsonWriter = new JsonWriter(JSON_CONTEXT, stringWriter);
    jsonWriter.setPrettyOutput(true);
    jsonWriter.setPrettyIndent(4);
    jsonWriter.writeObject(response);
    System.out.print(stringWriter.toString());
}
Also used : StringWriter(java.io.StringWriter) JsonWriter(com.serotonin.json.JsonWriter)

Example 23 with JsonWriter

use of com.serotonin.json.JsonWriter in project ma-core-public by infiniteautomation.

the class StoreLatestSnapshotTest method testTwoEightEightReleaseVersion.

// @Test
public void testTwoEightEightReleaseVersion() throws JsonException, IOException, HttpException {
    // Setup json
    json.put("upgradeVersionState", UpgradeVersionState.PRODUCTION);
    json.put("currentVersionState", UpgradeVersionState.PRODUCTION);
    jsonModules.put("core", "2.8.8");
    jsonModules.put("mangoApi", "1.2.0");
    String url = baseUrl + "/servlet/versionCheck";
    HttpPost post = new HttpPost(url);
    StringWriter stringWriter = new StringWriter();
    new JsonWriter(JSON_CONTEXT, stringWriter).writeObject(json);
    String requestData = stringWriter.toString();
    post.setEntity(new StringEntity(requestData));
    String responseData = HttpUtils4.getTextContent(getHttpClient(30000), post, 1);
    JsonTypeReader jsonReader = new JsonTypeReader(responseData);
    JsonValue response = jsonReader.read();
    // printResponse(response);
    Assert.assertNotNull(response.getJsonValue("versionState"));
    Assert.assertEquals("PRODUCTION", response.getJsonValue("versionState").toString());
    // Assert newInstalls-oldCore should be for 2.8
    Assert.assertNotNull(response.getJsonValue("newInstalls-oldCore"));
    JsonArray newInstallsOldCore = response.getJsonValue("newInstalls-oldCore").toJsonArray();
    Assert.assertEquals(true, newInstallsOldCore.size() > 0);
    for (JsonValue nioc : newInstallsOldCore) {
        if (nioc.getJsonValue("name").toString().equals("meta"))
            Assert.assertEquals(true, nioc.getJsonValue("fullVersion").toString().equals("2.3.0"));
    }
    // Assert update-versionState
    Assert.assertNotNull(response.getJsonValue("update-versionState"));
    Assert.assertEquals("PRODUCTION", response.getJsonValue("update-versionState").toString());
    // Assert updates for current core
    Assert.assertNotNull(response.getJsonValue("updates"));
    JsonArray updates = response.getJsonValue("updates").toJsonArray();
    Assert.assertEquals(true, updates.size() > 0);
    for (JsonValue upgrade : updates) {
        if (upgrade.getJsonValue("name").toString().equals("mangoApi"))
            Assert.assertEquals(true, upgrade.getJsonValue("fullVersion").toString().equals("1.2.1"));
    }
    // Assert upgrades
    Assert.assertNotNull(response.getJsonValue("upgrades"));
    JsonArray upgrades = response.getJsonValue("upgrades").toJsonArray();
    Assert.assertEquals(true, upgrades.size() > 0);
    for (JsonValue upgrade : upgrades) {
        if (upgrade.getJsonValue("name").toString().equals("core")) {
            Assert.assertEquals(true, upgrade.getJsonValue("fullVersion").toString().startsWith(latestProductionCore));
        } else {
            Assert.assertEquals(true, upgrade.getJsonValue("fullVersion").toString().startsWith(latestProductionCorePrefix));
        }
    }
    // Assert newInstalls should be for latest production core
    Assert.assertNotNull(response.getJsonValue("newInstalls"));
    JsonArray newInstalls = response.getJsonValue("newInstalls").toJsonArray();
    Assert.assertEquals(true, newInstalls.size() > 0);
    for (JsonValue install : newInstalls) {
        Assert.assertEquals(true, install.getJsonValue("fullVersion").toString().startsWith(latestProductionCorePrefix));
    }
}
Also used : JsonArray(com.serotonin.json.type.JsonArray) HttpPost(org.apache.http.client.methods.HttpPost) StringEntity(org.apache.http.entity.StringEntity) StringWriter(java.io.StringWriter) JsonValue(com.serotonin.json.type.JsonValue) JsonWriter(com.serotonin.json.JsonWriter) JsonTypeReader(com.serotonin.json.type.JsonTypeReader)

Example 24 with JsonWriter

use of com.serotonin.json.JsonWriter in project ma-core-public by infiniteautomation.

the class StoreLatestSnapshotTest method testThreeTwoReleaseVersion.

// @Test
public void testThreeTwoReleaseVersion() throws JsonException, IOException, HttpException {
    // Setup json
    json.put("upgradeVersionState", UpgradeVersionState.PRODUCTION);
    json.put("currentVersionState", UpgradeVersionState.PRODUCTION);
    jsonModules.put("core", "3.2.1");
    jsonModules.put("mangoApi", "3.2.1");
    String url = baseUrl + "/servlet/versionCheck";
    HttpPost post = new HttpPost(url);
    StringWriter stringWriter = new StringWriter();
    new JsonWriter(JSON_CONTEXT, stringWriter).writeObject(json);
    String requestData = stringWriter.toString();
    post.setEntity(new StringEntity(requestData));
    String responseData = HttpUtils4.getTextContent(getHttpClient(30000), post, 1);
    JsonTypeReader jsonReader = new JsonTypeReader(responseData);
    JsonValue response = jsonReader.read();
    printResponse(response);
    Assert.assertNull(response.getJsonValue("versionState"));
    // Assert newInstalls-oldCore should be empty
    Assert.assertNotNull(response.getJsonValue("newInstalls-oldCore"));
    JsonArray newInstallsOldCore = response.getJsonValue("newInstalls-oldCore").toJsonArray();
    Assert.assertEquals(true, newInstallsOldCore.size() == 0);
    // Assert update-versionState
    Assert.assertNull(response.getJsonValue("update-versionState"));
    // Assert updates for this core iff major upgrade available
    Assert.assertNotNull(response.getJsonValue("updates"));
    JsonArray updates = response.getJsonValue("updates").toJsonArray();
    Assert.assertEquals(true, updates.size() == 0);
    // Assert upgrades
    Assert.assertNotNull(response.getJsonValue("upgrades"));
    JsonArray upgrades = response.getJsonValue("upgrades").toJsonArray();
    Assert.assertEquals(true, upgrades.size() == 1);
    Assert.assertEquals(true, upgrades.get(0).getJsonValue("name").toString().equals("mangoApi"));
    Assert.assertEquals(true, upgrades.get(0).getJsonValue("fullVersion").toString().equals("3.2.2"));
    // Assert newInstalls should be for latest production core
    Assert.assertNotNull(response.getJsonValue("newInstalls"));
    JsonArray newInstalls = response.getJsonValue("newInstalls").toJsonArray();
    Assert.assertEquals(true, newInstalls.size() > 0);
    for (JsonValue install : newInstalls) {
        Assert.assertEquals(true, install.getJsonValue("fullVersion").toString().startsWith(latestProductionCorePrefix));
    }
}
Also used : JsonArray(com.serotonin.json.type.JsonArray) HttpPost(org.apache.http.client.methods.HttpPost) StringEntity(org.apache.http.entity.StringEntity) StringWriter(java.io.StringWriter) JsonValue(com.serotonin.json.type.JsonValue) JsonWriter(com.serotonin.json.JsonWriter) JsonTypeReader(com.serotonin.json.type.JsonTypeReader)

Example 25 with JsonWriter

use of com.serotonin.json.JsonWriter in project ma-core-public by infiniteautomation.

the class AnnotationsTest method testSample.

public void testSample() throws Exception {
    StringWriter out = new StringWriter();
    JsonWriter writer = new JsonWriter(out);
    writer.writeObject(new SomeAnnotations());
    String json = out.toString();
    assertEquals(json, "{\"id\":0}");
}
Also used : StringWriter(java.io.StringWriter) SomeAnnotations(com.serotonin.json.junit.vo.SomeAnnotations) JsonWriter(com.serotonin.json.JsonWriter)

Aggregations

JsonWriter (com.serotonin.json.JsonWriter)29 StringWriter (java.io.StringWriter)26 JsonTypeReader (com.serotonin.json.type.JsonTypeReader)12 HttpPost (org.apache.http.client.methods.HttpPost)12 StringEntity (org.apache.http.entity.StringEntity)12 JsonArray (com.serotonin.json.type.JsonArray)10 JsonValue (com.serotonin.json.type.JsonValue)10 IOException (java.io.IOException)7 JsonException (com.serotonin.json.JsonException)6 ShouldNeverHappenException (com.serotonin.ShouldNeverHappenException)5 HashMap (java.util.HashMap)4 Version (com.github.zafarkhaja.semver.Version)2 JsonContext (com.serotonin.json.JsonContext)2 JsonReader (com.serotonin.json.JsonReader)2 JsonObject (com.serotonin.json.type.JsonObject)2 JsonString (com.serotonin.json.type.JsonString)2 Module (com.serotonin.m2m2.module.Module)2 DwrPermission (com.serotonin.m2m2.web.dwr.util.DwrPermission)2 OutputStreamWriter (java.io.OutputStreamWriter)2 JsonRawValue (com.fasterxml.jackson.annotation.JsonRawValue)1