Search in sources :

Example 26 with ListType

use of net.geoprism.registry.ListType in project geoprism-registry by terraframe.

the class ListTypeTest method dataTest.

private void dataTest(Boolean includeGeometries) {
    GeoJSONReader reader = new GeoJSONReader();
    TestDataSet.runAsUser(USATestData.USER_ADMIN, (request, adapter) -> {
        ListTypeBuilder.Hierarchy hierarchy = new ListTypeBuilder.Hierarchy();
        hierarchy.setType(USATestData.HIER_ADMIN);
        hierarchy.setParents(USATestData.COUNTRY, USATestData.STATE, USATestData.DISTRICT);
        hierarchy.setSubtypeHierarchies(USATestData.HIER_REPORTS_TO);
        ListTypeBuilder builder = new ListTypeBuilder();
        builder.setOrg(USATestData.ORG_NPS.getServerObject());
        builder.setInfo(USATestData.HEALTH_FACILITY);
        builder.setHts(hierarchy);
        ListType test = builder.build();
        try {
            ListTypeEntry entry = test.createEntry(TestDataSet.DEFAULT_OVER_TIME_DATE);
            try {
                entry.publish(createVersionMetadata().toString());
                List<ListTypeVersion> versions = entry.getVersions();
                Assert.assertEquals(2, versions.size());
                ListTypeVersion version = versions.get(0);
                MdBusinessDAOIF mdTable = MdBusinessDAO.get(version.getMdBusinessOid());
                Assert.assertNotNull(mdTable);
                Page<JsonSerializable> data = version.data(new JsonObject(), true, includeGeometries);
                // Entries should be HP_1, HP_2, HS_1, HS_2
                Assert.assertEquals(new Long(4), data.getCount());
                List<JsonSerializable> results = data.getResults();
                for (int i = 0; i < results.size(); i++) {
                    JsonObject result = results.get(i).toJSON().getAsJsonObject();
                    String code = result.get("code").getAsString();
                    if (code.equals(USATestData.HS_ONE.getCode())) {
                        String reportsTo = result.get("usatestdatareportstocode").getAsString();
                        Assert.assertEquals(USATestData.HP_ONE.getCode(), reportsTo);
                    } else if (code.equals(USATestData.HS_TWO.getCode())) {
                        String reportsTo = result.get("usatestdatareportstocode").getAsString();
                        Assert.assertEquals(USATestData.HP_TWO.getCode(), reportsTo);
                    }
                    if (includeGeometries != null && includeGeometries.equals(Boolean.TRUE)) {
                        Assert.assertEquals(true, result.has("geometry"));
                        JsonObject geometries = result.get("geometry").getAsJsonObject();
                        Geometry jtsGeom = reader.read(geometries.toString());
                        Assert.assertTrue(jtsGeom.isValid());
                    } else {
                        Assert.assertEquals(false, result.has("geometry"));
                    }
                }
            } finally {
                entry.delete();
            }
        } catch (Throwable t) {
            t.printStackTrace();
            throw new RuntimeException(t);
        } finally {
            test.delete();
        }
    });
}
Also used : MdBusinessDAOIF(com.runwaysdk.dataaccess.MdBusinessDAOIF) ListTypeEntry(net.geoprism.registry.ListTypeEntry) JsonSerializable(net.geoprism.registry.view.JsonSerializable) JsonObject(com.google.gson.JsonObject) ListTypeVersion(net.geoprism.registry.ListTypeVersion) Geometry(com.vividsolutions.jts.geom.Geometry) GeoJSONReader(org.wololo.jts2geojson.GeoJSONReader) SingleListType(net.geoprism.registry.SingleListType) IntervalListType(net.geoprism.registry.IntervalListType) ListType(net.geoprism.registry.ListType) IncrementalListType(net.geoprism.registry.IncrementalListType) ListTypeBuilder(net.geoprism.registry.ListTypeBuilder)

Example 27 with ListType

use of net.geoprism.registry.ListType in project geoprism-registry by terraframe.

the class ListTypeTest method testFailMarkAsInvalidByType.

@Test
@Request
public void testFailMarkAsInvalidByType() {
    JsonObject json = getJson(USATestData.ORG_NPS.getServerObject(), USATestData.HIER_ADMIN, USATestData.DISTRICT, USATestData.COUNTRY, USATestData.STATE);
    ListType masterlist = ListType.apply(json);
    try {
        masterlist.markAsInvalid(USATestData.HIER_ADMIN.getServerObject(), USATestData.COUNTY.getServerObject());
        Assert.assertTrue(masterlist.isValid());
    } catch (DuplicateDataDatabaseException e) {
        masterlist.delete();
    }
}
Also used : SingleListType(net.geoprism.registry.SingleListType) IntervalListType(net.geoprism.registry.IntervalListType) ListType(net.geoprism.registry.ListType) IncrementalListType(net.geoprism.registry.IncrementalListType) JsonObject(com.google.gson.JsonObject) DuplicateDataDatabaseException(com.runwaysdk.dataaccess.database.DuplicateDataDatabaseException) ClassificationTypeTest(net.geoprism.registry.classification.ClassificationTypeTest) Test(org.junit.Test) Request(com.runwaysdk.session.Request)

Example 28 with ListType

use of net.geoprism.registry.ListType in project geoprism-registry by terraframe.

the class ListTypeTest method testFailMarkAsInvalidByHierarchy.

@Test
@Request
public void testFailMarkAsInvalidByHierarchy() {
    JsonObject json = getJson(USATestData.ORG_NPS.getServerObject(), USATestData.HIER_ADMIN, USATestData.DISTRICT, USATestData.COUNTRY, USATestData.STATE);
    ListType masterlist = ListType.apply(json);
    try {
        masterlist.markAsInvalid(USATestData.HIER_SCHOOL.getServerObject(), USATestData.DISTRICT.getServerObject());
        Assert.assertTrue(masterlist.isValid());
    } catch (DuplicateDataDatabaseException e) {
        masterlist.delete();
    }
}
Also used : SingleListType(net.geoprism.registry.SingleListType) IntervalListType(net.geoprism.registry.IntervalListType) ListType(net.geoprism.registry.ListType) IncrementalListType(net.geoprism.registry.IncrementalListType) JsonObject(com.google.gson.JsonObject) DuplicateDataDatabaseException(com.runwaysdk.dataaccess.database.DuplicateDataDatabaseException) ClassificationTypeTest(net.geoprism.registry.classification.ClassificationTypeTest) Test(org.junit.Test) Request(com.runwaysdk.session.Request)

Aggregations

ListType (net.geoprism.registry.ListType)28 Request (com.runwaysdk.session.Request)21 JsonObject (com.google.gson.JsonObject)19 ListTypeVersion (net.geoprism.registry.ListTypeVersion)11 Test (org.junit.Test)10 IncrementalListType (net.geoprism.registry.IncrementalListType)9 IntervalListType (net.geoprism.registry.IntervalListType)9 SingleListType (net.geoprism.registry.SingleListType)9 DuplicateDataDatabaseException (com.runwaysdk.dataaccess.database.DuplicateDataDatabaseException)8 ClassificationTypeTest (net.geoprism.registry.classification.ClassificationTypeTest)8 ServerGeoObjectType (net.geoprism.registry.model.ServerGeoObjectType)8 JsonArray (com.google.gson.JsonArray)5 ListTypeEntry (net.geoprism.registry.ListTypeEntry)5 QueryFactory (com.runwaysdk.query.QueryFactory)4 Session (com.runwaysdk.session.Session)4 MdBusinessDAOIF (com.runwaysdk.dataaccess.MdBusinessDAOIF)3 InvalidMasterListException (net.geoprism.registry.InvalidMasterListException)3 ListTypeVersionQuery (net.geoprism.registry.ListTypeVersionQuery)3 Geometry (com.vividsolutions.jts.geom.Geometry)2 Organization (net.geoprism.registry.Organization)2