Commit f4d3cb7f authored by Riegel's avatar Riegel
Browse files

Test: Unify datastructure testcases

parent 3539192a
Pipeline #11068 passed with stage
in 1 minute and 26 seconds
...@@ -52,8 +52,6 @@ import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; ...@@ -52,8 +52,6 @@ import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
public class AbstractBuildingTest { public class AbstractBuildingTest {
//TODO: Restructure test with new Visitors
@Test @Test
public void testAccept() { public void testAccept() {
...@@ -128,8 +126,13 @@ public class AbstractBuildingTest { ...@@ -128,8 +126,13 @@ public class AbstractBuildingTest {
public void testContainsError() { public void testContainsError() {
AbstractBuilding ab = createAbstractBuilding(); AbstractBuilding ab = createAbstractBuilding();
assertFalse(ab.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); assertFalse(ab.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(ab.containsError(CheckId.C_GE_P_NON_PLANAR));
ab.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); ab.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(ab.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); assertTrue(ab.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(ab.containsError(CheckId.C_GE_P_NON_PLANAR));
ab.addCheckResult(new CheckResult(CheckId.C_GE_P_NON_PLANAR, ResultStatus.OK, mock(CheckError.class)));
assertTrue(ab.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(ab.containsError(CheckId.C_GE_P_NON_PLANAR));
} }
...@@ -267,22 +270,9 @@ public class AbstractBuildingTest { ...@@ -267,22 +270,9 @@ public class AbstractBuildingTest {
@Test @Test
public void testUnsetGmlGeometries() { public void testUnsetGmlGeometries() {
Installation biMock = mock(Installation.class);
doAnswer(invocation -> {
biMock.unsetGmlGeometries();
return null;
}).when(biMock).accept(any(UnsetGeometriesVisitor.class));
BoundarySurface bsMock = mock(BoundarySurface.class);
doAnswer(invocation -> {
bsMock.unsetGmlGeometries();
return null;
}).when(bsMock).accept(any(UnsetGeometriesVisitor.class));
AbstractBuilding ab = createAbstractBuilding(); AbstractBuilding ab = createAbstractBuilding();
ab.addBoundarySurface(bsMock);
ab.addBuildingInstallation(biMock);
org.citygml4j.core.model.building.AbstractBuilding gmlAb = new org.citygml4j.core.model.building.Building(); org.citygml4j.core.model.building.AbstractBuilding gmlAb = new org.citygml4j.core.model.building.Building();
ab.setCityGmlBuilding(gmlAb);
gmlAb.setLod1Solid(new SolidProperty()); gmlAb.setLod1Solid(new SolidProperty());
gmlAb.setLod2Solid(new SolidProperty()); gmlAb.setLod2Solid(new SolidProperty());
...@@ -292,15 +282,9 @@ public class AbstractBuildingTest { ...@@ -292,15 +282,9 @@ public class AbstractBuildingTest {
gmlAb.setLod2MultiSurface(new MultiSurfaceProperty()); gmlAb.setLod2MultiSurface(new MultiSurfaceProperty());
gmlAb.setLod3MultiSurface(new MultiSurfaceProperty()); gmlAb.setLod3MultiSurface(new MultiSurfaceProperty());
gmlAb.getDeprecatedProperties().setLod4MultiSurface(new MultiSurfaceProperty()); gmlAb.getDeprecatedProperties().setLod4MultiSurface(new MultiSurfaceProperty());
ab.setCityGmlBuilding(gmlAb);
ab.clearGmlGeometries(); ab.clearGmlGeometries();
verify(biMock).accept(any(UnsetGeometriesVisitor.class));
verify(bsMock).accept(any(UnsetGeometriesVisitor.class));
verify(biMock).unsetGmlGeometries();
verify(bsMock).unsetGmlGeometries();
assertNull(gmlAb.getLod1Solid()); assertNull(gmlAb.getLod1Solid());
assertNull(gmlAb.getLod2Solid()); assertNull(gmlAb.getLod2Solid());
assertNull(gmlAb.getLod3Solid()); assertNull(gmlAb.getLod3Solid());
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.model.core.AbstractSpaceBoundary; import org.citygml4j.core.model.core.AbstractSpaceBoundary;
import org.citygml4j.core.util.geometry.GeometryFactory; import org.citygml4j.core.util.geometry.GeometryFactory;
...@@ -8,22 +12,26 @@ import org.citygml4j.core.visitor.ObjectVisitor; ...@@ -8,22 +12,26 @@ import org.citygml4j.core.visitor.ObjectVisitor;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.mockito.Mockito; import org.mockito.Mockito;
import org.xmlobjects.gml.model.geometry.aggregates.MultiCurveProperty;
import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty; import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty;
import org.xmlobjects.gml.model.geometry.primitives.SolidProperty; import org.xmlobjects.gml.model.geometry.primitives.SolidProperty;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
public class AbstractRoomTest { public class AbstractRoomTest {
AbstractRoom ab; AbstractRoom abRoom;
@Before @Before
public void setUp() { public void setUp() {
ab = new AbstractRoom() { abRoom = new AbstractRoom() {
@Override @Override
public CityObject getTopLevelCityObject() { public CityObject getTopLevelCityObject() {
return null; return null;
...@@ -38,19 +46,58 @@ public class AbstractRoomTest { ...@@ -38,19 +46,58 @@ public class AbstractRoomTest {
BoundarySurface mockBoundarySurface = Mockito.mock(BoundarySurface.class); BoundarySurface mockBoundarySurface = Mockito.mock(BoundarySurface.class);
Geometry geometry = Mockito.mock(Geometry.class); Geometry geometry = Mockito.mock(Geometry.class);
ab.addRoomInstallation(mockInstallation); abRoom.addRoomInstallation(mockInstallation);
ab.addBoundarySurface(mockBoundarySurface); abRoom.addBoundarySurface(mockBoundarySurface);
ab.addGeometry(geometry); abRoom.addGeometry(geometry);
AbstractCheck c = new AbstractCheck() { AbstractCheck c = new AbstractCheck() {
}; };
ab.accept(c); abRoom.accept(c);
Mockito.verify(mockInstallation).accept(c); Mockito.verify(mockInstallation).accept(c);
Mockito.verify(mockBoundarySurface).accept(c); Mockito.verify(mockBoundarySurface).accept(c);
Mockito.verify(geometry).accept(c); Mockito.verify(geometry).accept(c);
} }
@Test
public void testContainsError() {
assertFalse(abRoom.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(abRoom.containsError(CheckId.C_GE_P_NON_PLANAR));
abRoom.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(abRoom.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(abRoom.containsError(CheckId.C_GE_P_NON_PLANAR));
abRoom.addCheckResult(new CheckResult(CheckId.C_GE_P_NON_PLANAR, ResultStatus.OK, mock(CheckError.class)));
assertTrue(abRoom.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(abRoom.containsError(CheckId.C_GE_P_NON_PLANAR));
}
@Test
public void testClearAllContainedCheckResults() {
abRoom.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertEquals(1, abRoom.getAllCheckResults().size());
abRoom.clearAllContainedCheckResults();
assertTrue(abRoom.getAllCheckResults().isEmpty());
}
@Test
public void testContainsAnyError() {
assertFalse(abRoom.containsAnyError());
abRoom.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(abRoom.containsAnyError());
abRoom.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(abRoom.containsAnyError());
}
@Test
public void testCollectContainedErrors() {
abRoom.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
List<CheckError> errors = new ArrayList<>();
abRoom.collectContainedErrors(errors);
assertEquals(1, errors.size());
}
@Test @Test
public void testUnsetGmlGeometries() { public void testUnsetGmlGeometries() {
org.citygml4j.core.model.core.AbstractUnoccupiedSpace gmlAUS = new org.citygml4j.core.model.core.AbstractUnoccupiedSpace() { org.citygml4j.core.model.core.AbstractUnoccupiedSpace gmlAUS = new org.citygml4j.core.model.core.AbstractUnoccupiedSpace() {
...@@ -72,8 +119,8 @@ public class AbstractRoomTest { ...@@ -72,8 +119,8 @@ public class AbstractRoomTest {
gmlAUS.setLod2MultiSurface(new MultiSurfaceProperty()); gmlAUS.setLod2MultiSurface(new MultiSurfaceProperty());
gmlAUS.setLod3MultiSurface(new MultiSurfaceProperty()); gmlAUS.setLod3MultiSurface(new MultiSurfaceProperty());
ab.cgmlRoom = gmlAUS; abRoom.cgmlRoom = gmlAUS;
ab.clearGmlGeometries(); abRoom.clearGmlGeometries();
assertNull(gmlAUS.getLod1Solid()); assertNull(gmlAUS.getLod1Solid());
assertNull(gmlAUS.getLod2Solid()); assertNull(gmlAUS.getLod2Solid());
...@@ -97,14 +144,14 @@ public class AbstractRoomTest { ...@@ -97,14 +144,14 @@ public class AbstractRoomTest {
} }
}; };
ab.cgmlRoom = gmlAUS; abRoom.cgmlRoom = gmlAUS;
ab.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.SOLID, Lod.LOD1)); abRoom.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.SOLID, Lod.LOD1));
ab.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.SOLID, Lod.LOD2)); abRoom.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.SOLID, Lod.LOD2));
ab.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.SOLID, Lod.LOD3)); abRoom.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.SOLID, Lod.LOD3));
GeometryFactory factory = GeometryFactory.newInstance(); GeometryFactory factory = GeometryFactory.newInstance();
ParserConfiguration config = new ParserConfiguration(8, false); ParserConfiguration config = new ParserConfiguration(8, false);
ab.reCreateGeometries(factory, config); abRoom.reCreateGeometries(factory, config);
GeometryTestUtils.assertSolidMatchesExpectedValues(gmlAUS.getLod1Solid().getObject()); GeometryTestUtils.assertSolidMatchesExpectedValues(gmlAUS.getLod1Solid().getObject());
GeometryTestUtils.assertSolidMatchesExpectedValues(gmlAUS.getLod2Solid().getObject()); GeometryTestUtils.assertSolidMatchesExpectedValues(gmlAUS.getLod2Solid().getObject());
GeometryTestUtils.assertSolidMatchesExpectedValues(gmlAUS.getLod3Solid().getObject()); GeometryTestUtils.assertSolidMatchesExpectedValues(gmlAUS.getLod3Solid().getObject());
...@@ -123,14 +170,14 @@ public class AbstractRoomTest { ...@@ -123,14 +170,14 @@ public class AbstractRoomTest {
return false; return false;
} }
}; };
ab.cgmlRoom = gmlAUS; abRoom.cgmlRoom = gmlAUS;
ab.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD0)); abRoom.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD0));
ab.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); abRoom.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2));
ab.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD3)); abRoom.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD3));
GeometryFactory factory = GeometryFactory.newInstance(); GeometryFactory factory = GeometryFactory.newInstance();
ParserConfiguration config = new ParserConfiguration(8, false); ParserConfiguration config = new ParserConfiguration(8, false);
ab.reCreateGeometries(factory, config); abRoom.reCreateGeometries(factory, config);
assertNotNull(gmlAUS.getLod0MultiSurface()); assertNotNull(gmlAUS.getLod0MultiSurface());
assertNotNull(gmlAUS.getLod0MultiSurface().getObject()); assertNotNull(gmlAUS.getLod0MultiSurface().getObject());
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.util.geometry.GeometryFactory; import org.citygml4j.core.util.geometry.GeometryFactory;
import org.citygml4j.core.visitor.ObjectVisitor; import org.citygml4j.core.visitor.ObjectVisitor;
...@@ -9,6 +13,9 @@ import org.junit.Test; ...@@ -9,6 +13,9 @@ import org.junit.Test;
import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty; import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty;
import org.xmlobjects.gml.model.geometry.primitives.SolidProperty; import org.xmlobjects.gml.model.geometry.primitives.SolidProperty;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
...@@ -58,6 +65,45 @@ public class AbstractTunnelTest { ...@@ -58,6 +65,45 @@ public class AbstractTunnelTest {
verify(mockGeometry).accept(c); verify(mockGeometry).accept(c);
} }
@Test
public void testContainsError() {
assertFalse(at.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(at.containsError(CheckId.C_GE_P_NON_PLANAR));
at.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(at.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(at.containsError(CheckId.C_GE_P_NON_PLANAR));
at.addCheckResult(new CheckResult(CheckId.C_GE_P_NON_PLANAR, ResultStatus.OK, mock(CheckError.class)));
assertTrue(at.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(at.containsError(CheckId.C_GE_P_NON_PLANAR));
}
@Test
public void testClearAllContainedCheckResults() {
at.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertEquals(1, at.getAllCheckResults().size());
at.clearAllContainedCheckResults();
assertTrue(at.getAllCheckResults().isEmpty());
}
@Test
public void testContainsAnyError() {
assertFalse(at.containsAnyError());
at.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(at.containsAnyError());
at.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(at.containsAnyError());
}
@Test
public void testCollectContainedErrors() {
at.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
List<CheckError> errors = new ArrayList<>();
at.collectContainedErrors(errors);
assertEquals(1, errors.size());
}
@Test @Test
public void testUnsetGeometries() { public void testUnsetGeometries() {
org.citygml4j.core.model.tunnel.AbstractTunnel gmlAt = new org.citygml4j.core.model.tunnel.AbstractTunnel() { org.citygml4j.core.model.tunnel.AbstractTunnel gmlAt = new org.citygml4j.core.model.tunnel.AbstractTunnel() {
......
...@@ -29,13 +29,11 @@ import static org.mockito.Mockito.verify; ...@@ -29,13 +29,11 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import de.hft.stuttgart.citydoctor2.utils.visitors.ClearCheckResultsVisitor;
import de.hft.stuttgart.citydoctor2.utils.visitors.GmlGeometryRebuilder;
import de.hft.stuttgart.citydoctor2.utils.visitors.UnsetGeometriesVisitor; import de.hft.stuttgart.citydoctor2.utils.visitors.UnsetGeometriesVisitor;
import org.citygml4j.core.model.bridge.AbstractBridge; import org.citygml4j.core.model.bridge.AbstractBridge;
import org.citygml4j.core.model.core.AbstractThematicSurface;
import org.citygml4j.core.model.deprecated.bridge.DeprecatedPropertiesOfAbstractBridge; import org.citygml4j.core.model.deprecated.bridge.DeprecatedPropertiesOfAbstractBridge;
import org.citygml4j.core.util.geometry.GeometryFactory; import org.citygml4j.core.util.geometry.GeometryFactory;
import org.citygml4j.core.visitor.ObjectVisitor; import org.citygml4j.core.visitor.ObjectVisitor;
...@@ -83,6 +81,39 @@ public class BridgeObjectTest { ...@@ -83,6 +81,39 @@ public class BridgeObjectTest {
assertEquals(0, boCounter2.intValue()); assertEquals(0, boCounter2.intValue());
} }
@Test
public void testVisitorPropagation() {
BridgeObject bo = new BridgeObject(mock(AbstractBridge.class));
BridgeObject partMock = mock(BridgeObject.class);
BridgeRoom mockRoom = mock(BridgeRoom.class);
BridgeRoomFurniture mockFurn = mock(BridgeRoomFurniture.class);
BridgeConstructiveElement ceMock = mock(BridgeConstructiveElement.class);
Installation instMock = mock(Installation.class);
BoundarySurface bsMock = mock(BoundarySurface.class);
Geometry geomMock = mock(Geometry.class);
bo.addBridgePart(partMock);
bo.addBridgeRoom(mockRoom);
bo.addBridgeFurniture(mockFurn);
bo.addConstructiveElement(ceMock);
bo.addBridgeInstallation(instMock);
bo.addBoundarySurface(bsMock);
bo.addGeometry(geomMock);
AbstractCheck c = new AbstractCheck() {
};
bo.accept(c);
verify(partMock).accept(c);
verify(mockRoom).accept(c);
verify(mockFurn).accept(c);
verify(ceMock).accept(c);
verify(instMock).accept(c);
verify(bsMock).accept(c);
verify(geomMock).accept(c);
}
@Test @Test
public void testPrepareForChecking() { public void testPrepareForChecking() {
BridgeObject bo = new BridgeObject(mock(AbstractBridge.class)); BridgeObject bo = new BridgeObject(mock(AbstractBridge.class));
...@@ -99,67 +130,44 @@ public class BridgeObjectTest { ...@@ -99,67 +130,44 @@ public class BridgeObjectTest {
public void testContainsError() { public void testContainsError() {
BridgeObject bo = new BridgeObject(mock(AbstractBridge.class)); BridgeObject bo = new BridgeObject(mock(AbstractBridge.class));
assertFalse(bo.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); assertFalse(bo.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(bo.containsError(CheckId.C_GE_P_NON_PLANAR));
bo.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); bo.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(bo.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); assertTrue(bo.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
} assertFalse(bo.containsError(CheckId.C_GE_P_NON_PLANAR));
bo.addCheckResult(new CheckResult(CheckId.C_GE_P_NON_PLANAR, ResultStatus.OK, mock(CheckError.class)));
@Test
public void testContainsError2() {
BridgeObject bo = new BridgeObject(mock(AbstractBridge.class));
BoundarySurface bs = new BoundarySurface(mock(AbstractThematicSurface.class));
bo.addBoundarySurface(bs);
assertFalse(bo.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
bs.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(bo.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); assertTrue(bo.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(bo.containsError(CheckId.C_GE_P_NON_PLANAR));
} }
@Test @Test
public void testClearAllContainedCheckResults() { public void testClearAllContainedCheckResults() {
BridgeObject bo = new BridgeObject(mock(AbstractBridge.class)); BridgeObject bo = new BridgeObject(mock(AbstractBridge.class));
BoundarySurface bsMock = mock(BoundarySurface.class); bo.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
bo.addBoundarySurface(bsMock);
assertEquals(1, bo.getAllCheckResults().size());
bo.clearAllContainedCheckResults(); bo.clearAllContainedCheckResults();
verify(bsMock).accept(any(ClearCheckResultsVisitor.class)); assertTrue(bo.getAllCheckResults().isEmpty());
} }
@Test @Test
public void testContainsAnyError() { public void testContainsAnyError() {
BridgeObject bo = new BridgeObject(mock(AbstractBridge.class)); BridgeObject bo = new BridgeObject(mock(AbstractBridge.class));
BoundarySurface bs = new BoundarySurface(mock(AbstractThematicSurface.class)); assertFalse(bo.containsAnyError());
BoundarySurface spyBs = Mockito.spy(bs); bo.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
bo.addBoundarySurface(spyBs); assertFalse(bo.containsAnyError());
bo.containsAnyError(); bo.addCheckResult(
verify(spyBs).hasAnyError(); new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
bs.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(bo.containsAnyError()); assertTrue(bo.containsAnyError());
BridgeObject bo2 = new BridgeObject(mock(AbstractBridge.class));
bo2.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(bo2.containsAnyError());
} }
@Test @Test
public void testCollectContainedErrors() { public void testCollectContainedErrors() {
BridgeObject bo = new BridgeObject(mock(AbstractBridge.class)); BridgeObject bo = new BridgeObject(mock(AbstractBridge.class));
BoundarySurface bs = new BoundarySurface(mock(AbstractThematicSurface.class)); bo.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
BoundarySurface spyBs = Mockito.spy(bs); List<CheckError> errors = new ArrayList<>();
bo.addBoundarySurface(spyBs);
ArrayList<CheckError> errors = new ArrayList<>();
bo.collectContainedErrors(errors); bo.collectContainedErrors(errors);
verify(spyBs).collectErrors(errors); assertEquals(1, errors.size());
}
@Test
public void testReCreateGeometries() {
BridgeObject bo = new BridgeObject(mock(AbstractBridge.class));
BoundarySurface bsMock = mock(BoundarySurface.class);
bo.addBoundarySurface(bsMock);
GeometryFactory factoryMock = mock(GeometryFactory.class);
ParserConfiguration configMock = mock(ParserConfiguration.class);
bo.reCreateGeometries(factoryMock, configMock);
verify(bsMock).accept(any(GmlGeometryRebuilder.class));
} }
@Test @Test
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.util.geometry.GeometryFactory; import org.citygml4j.core.util.geometry.GeometryFactory;
import org.junit.Test; import org.junit.Test;
import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty; import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
public class CityFurnitureTest { public class CityFurnitureTest {
@Test
public void testContainsError() {
CityFurniture cf = new CityFurniture();
assertFalse(cf.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(cf.containsError(CheckId.C_GE_P_NON_PLANAR));
cf.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(cf.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(cf.containsError(CheckId.C_GE_P_NON_PLANAR));
cf.addCheckResult(new CheckResult(CheckId.C_GE_P_NON_PLANAR, ResultStatus.OK, mock(CheckError.class)));
assertTrue(cf.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(cf.containsError(CheckId.C_GE_P_NON_PLANAR));
}
@Test
public void testClearAllContainedCheckResults() {
CityFurniture cf = new CityFurniture();
cf.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertEquals(1, cf.getAllCheckResults().size());
cf.clearAllContainedCheckResults();
assertTrue(cf.getAllCheckResults().isEmpty());
}
@Test
public void testContainsAnyError() {
CityFurniture cf = new CityFurniture();
assertFalse(cf.containsAnyError());
cf.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(cf.containsAnyError());
cf.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(cf.containsAnyError());
}
@Test
public void testCollectContainedErrors() {
CityFurniture cf = new CityFurniture();
cf.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
List<CheckError> errors = new ArrayList<>();
cf.collectContainedErrors(errors);
assertEquals(1, errors.size());
}
@Test @Test
public void unsetGmlGeometries() { public void unsetGmlGeometries() {
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.visitors.GmlGeometryRebuilder; import de.hft.stuttgart.citydoctor2.utils.visitors.GmlGeometryRebuilder;
import de.hft.stuttgart.citydoctor2.utils.visitors.UnsetGeometriesVisitor; import de.hft.stuttgart.citydoctor2.utils.visitors.UnsetGeometriesVisitor;
...@@ -10,6 +14,9 @@ import org.junit.Before; ...@@ -10,6 +14,9 @@ import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.mockito.Mockito; import org.mockito.Mockito;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
...@@ -32,6 +39,46 @@ public class CityObjectTest { ...@@ -32,6 +39,46 @@ public class CityObjectTest {
verify(mockGeometry).accept(check); verify(mockGeometry).accept(check);
} }
@Test
public void testContainsError() {
assertFalse(co.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(co.containsError(CheckId.C_GE_P_NON_PLANAR));
co.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(co.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(co.containsError(CheckId.C_GE_P_NON_PLANAR));
co.addCheckResult(new CheckResult(CheckId.C_GE_P_NON_PLANAR, ResultStatus.OK, mock(CheckError.class)));
assertTrue(co.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(co.containsError(CheckId.C_GE_P_NON_PLANAR));
}
@Test
public void testClearAllContainedCheckResults() {
co.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertEquals(1, co.getAllCheckResults().size());
co.clearAllContainedCheckResults();
assertTrue(co.getAllCheckResults().isEmpty());
}
@Test
public void testContainsAnyError() {
assertFalse(co.containsAnyError());
co.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(co.containsAnyError());
co.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(co.containsAnyError());
}
@Test
public void testCollectContainedErrors() {
co.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
List<CheckError> errors = new ArrayList<>();
co.collectContainedErrors(errors);
assertEquals(1, errors.size());
}
@Test @Test
public void testClearGmlGeometries() { public void testClearGmlGeometries() {
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.model.generics.GenericOccupiedSpace; import org.citygml4j.core.model.generics.GenericOccupiedSpace;
import org.citygml4j.core.util.geometry.GeometryFactory; import org.citygml4j.core.util.geometry.GeometryFactory;
...@@ -8,6 +12,9 @@ import org.junit.Test; ...@@ -8,6 +12,9 @@ import org.junit.Test;
import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty; import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty;
import org.xmlobjects.gml.model.geometry.primitives.SolidProperty; import org.xmlobjects.gml.model.geometry.primitives.SolidProperty;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
...@@ -32,6 +39,50 @@ public class GenericCityObjectTest { ...@@ -32,6 +39,50 @@ public class GenericCityObjectTest {
} }
@Test
public void testContainsError() {
GenericCityObject gco = new GenericCityObject();
assertFalse(gco.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(gco.containsError(CheckId.C_GE_P_NON_PLANAR));
gco.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(gco.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(gco.containsError(CheckId.C_GE_P_NON_PLANAR));
gco.addCheckResult(new CheckResult(CheckId.C_GE_P_NON_PLANAR, ResultStatus.OK, mock(CheckError.class)));
assertTrue(gco.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(gco.containsError(CheckId.C_GE_P_NON_PLANAR));
}
@Test
public void testClearAllContainedCheckResults() {
GenericCityObject gco = new GenericCityObject();
gco.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertEquals(1, gco.getAllCheckResults().size());
gco.clearAllContainedCheckResults();
assertTrue(gco.getAllCheckResults().isEmpty());
}
@Test
public void testContainsAnyError() {
GenericCityObject gco = new GenericCityObject();
assertFalse(gco.containsAnyError());
gco.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(gco.containsAnyError());
gco.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(gco.containsAnyError());
}
@Test
public void testCollectContainedErrors() {
GenericCityObject gco = new GenericCityObject();
gco.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
List<CheckError> errors = new ArrayList<>();
gco.collectContainedErrors(errors);
assertEquals(1, errors.size());
}
@Test @Test
public void testUnsetGmlGeometries() { public void testUnsetGmlGeometries() {
GenericCityObject gco = new GenericCityObject(); GenericCityObject gco = new GenericCityObject();
......
...@@ -32,6 +32,7 @@ import static org.mockito.Mockito.when; ...@@ -32,6 +32,7 @@ import static org.mockito.Mockito.when;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.utils.visitors.ClearCheckResultsVisitor; import de.hft.stuttgart.citydoctor2.utils.visitors.ClearCheckResultsVisitor;
import org.citygml4j.core.model.construction.AbstractConstructionSurface; import org.citygml4j.core.model.construction.AbstractConstructionSurface;
import org.citygml4j.core.model.construction.WallSurface; import org.citygml4j.core.model.construction.WallSurface;
...@@ -55,6 +56,20 @@ import org.mockito.Mockito; ...@@ -55,6 +56,20 @@ import org.mockito.Mockito;
*/ */
public class GeometryTest { public class GeometryTest {
@Test
public void testVisitorPropagation() {
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD0);
ConcretePolygon mockPolygon = mock(ConcretePolygon.class);
geom.addPolygon(mockPolygon);
AbstractCheck c = new AbstractCheck() {
};
geom.accept(c);
verify(mockPolygon).accept(c);
}
@Test @Test
public void testCreate() { public void testCreate() {
Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD0); Geometry geom = new Geometry(GeometryType.SOLID, Lod.LOD0);
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import de.hft.stuttgart.citydoctor2.utils.Copy;
import org.citygml4j.core.model.core.ImplicitGeometry; import org.citygml4j.core.model.core.ImplicitGeometry;
import org.citygml4j.core.model.core.TransformationMatrix4x4; import org.citygml4j.core.model.core.TransformationMatrix4x4;
import org.junit.Before; import org.junit.Before;
...@@ -13,20 +18,25 @@ import org.xmlobjects.gml.util.jama.Matrix; ...@@ -13,20 +18,25 @@ import org.xmlobjects.gml.util.jama.Matrix;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
public class ImplicitGeometryTest { public class ImplicitGeometryTest {
private Path path;
private ParserConfiguration config; private ParserConfiguration config;
private String pathString = "src/test/resources/ImplicitTestGeom.gml"; private String pathString = "src/test/resources/ImplicitTestGeom.gml";
private Path path = Paths.get(pathString);
private TransformationMatrix4x4 origin; private TransformationMatrix4x4 origin;
private LibraryObject lib;
private ImplicitGeometryHolder igh;
@Before @Before
public void setUp() { public void setUp() {
path = Paths.get(pathString);
config = new ParserConfiguration(8, false); config = new ParserConfiguration(8, false);
Matrix og = new Matrix(4, 4); Matrix og = new Matrix(4, 4);
og.set(0, 0, 1); og.set(0, 0, 1);
...@@ -34,6 +44,17 @@ public class ImplicitGeometryTest { ...@@ -34,6 +44,17 @@ public class ImplicitGeometryTest {
og.set(2, 2, 1); og.set(2, 2, 1);
origin = new TransformationMatrix4x4(og); origin = new TransformationMatrix4x4(og);
lib = LibraryObject.of(path, config);
assertNotNull(lib);
// Create copy for cleanup
lib = Copy.copy(lib);
ImplicitGeometry geom = new ImplicitGeometry();
geom.setTransformationMatrix(origin);
geom.setReferencePoint(new PointProperty(new Point(new DirectPosition(0, 0))));
igh = new ImplicitGeometryHolder(geom, lib);
assertNotNull(igh);
} }
@Test @Test
...@@ -41,43 +62,91 @@ public class ImplicitGeometryTest { ...@@ -41,43 +62,91 @@ public class ImplicitGeometryTest {
LibraryObject lo = LibraryObject.of(path, config); LibraryObject lo = LibraryObject.of(path, config);
assertNotNull(lo); assertNotNull(lo);
LibraryObject lo2 = LibraryObject.of(path, config); LibraryObject lo2 = LibraryObject.of(path, config);
assertNotNull(lo2);
assertSame(lo, lo2); assertSame(lo, lo2);
} }
@Test @Test
public void testObjectTransform() { public void testObjectTransform() {
LibraryObject lo = LibraryObject.of(path, config);
assertNotNull(lo);
ImplicitGeometry geom = new ImplicitGeometry(); ImplicitGeometry geom = new ImplicitGeometry();
geom.setTransformationMatrix(origin); geom.setTransformationMatrix(origin);
geom.setReferencePoint(new PointProperty(new Point(new DirectPosition(0, 0)))); geom.setReferencePoint(new PointProperty(new Point(new DirectPosition(0, 0))));
ImplicitGeometryHolder igh = new ImplicitGeometryHolder(geom, lo); ImplicitGeometryHolder transform1 = new ImplicitGeometryHolder(geom, lib);
assertNotNull(igh); assertNotNull(transform1);
geom.setReferencePoint(new PointProperty(new Point(new DirectPosition(5, 8)))); geom.setReferencePoint(new PointProperty(new Point(new DirectPosition(5, 8))));
ImplicitGeometryHolder igh2 = new ImplicitGeometryHolder(geom, lo); ImplicitGeometryHolder transform2 = new ImplicitGeometryHolder(geom, lib);
assertNotNull(igh2); assertNotNull(transform2);
assertNotEquals(igh, igh2); assertNotEquals(transform1, transform2);
BoundingBox bb1 = BoundingBox.of(igh.getPolygons()); BoundingBox bb1 = BoundingBox.of(transform1.getPolygons());
BoundingBox bb2 = BoundingBox.of(igh2.getPolygons()); BoundingBox bb2 = BoundingBox.of(transform2.getPolygons());
assertNotEquals(bb1, bb2); assertNotEquals(bb1, bb2);
}
@Test
public void testContainsError() {
assertFalse(lib.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(lib.containsError(CheckId.C_GE_P_NON_PLANAR));
igh.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertFalse("ImplicitGeometryHolder's errors should be ignored and delegate the call to the prototype geometry",
lib.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
lib.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(lib.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(lib.containsError(CheckId.C_GE_P_NON_PLANAR));
lib.addCheckResult(new CheckResult(CheckId.C_GE_P_NON_PLANAR, ResultStatus.OK, null));
assertTrue(lib.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(lib.containsError(CheckId.C_GE_P_NON_PLANAR));
} }
@Test @Test
public void testAccept() { public void testClearAllContainedCheckResults() {
LibraryObject lib = LibraryObject.of(path, config); lib.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertNotNull(lib);
ImplicitGeometry geom = new ImplicitGeometry(); assertEquals(1, lib.getAllCheckResults().size());
geom.setTransformationMatrix(origin); lib.clearAllContainedCheckResults();
geom.setReferencePoint(new PointProperty(new Point(new DirectPosition(0, 0)))); assertTrue(lib.getAllCheckResults().isEmpty());
}
int polyCount = lib.getPolygons().size(); @Test
public void testContainsAnyError() {
assertFalse(lib.containsAnyError());
igh.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(lib.containsAnyError());
lib.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(lib.containsAnyError());
igh.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertFalse(lib.containsAnyError());
lib.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(lib.containsAnyError());
}
@Test
public void testCollectContainedErrors() {
List<CheckError> errors = new ArrayList<>();
igh.addCheckResult(new CheckResult(CheckId.C_GE_P_NON_PLANAR, ResultStatus.ERROR, mock(CheckError.class)));
igh.collectContainedErrors(errors);
assertEquals("ImplicitGeometryHolder's errors should be ignored and delegate the call to the prototype geometry",
0, errors.size());
lib.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
igh.collectContainedErrors(errors);
assertEquals("ImplicitGeometryHolder's errors should be ignored and delegate the call to the prototype geometry",
1, errors.size());
}
ImplicitGeometryHolder igh = new ImplicitGeometryHolder(geom, lib);
@Test
public void testAccept() {
int polyCount = lib.getPolygons().size();
AtomicInteger loCounter = new AtomicInteger(0); AtomicInteger loCounter = new AtomicInteger(0);
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.model.landuse.LandUse; import org.citygml4j.core.model.landuse.LandUse;
import org.citygml4j.core.util.geometry.GeometryFactory; import org.citygml4j.core.util.geometry.GeometryFactory;
import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty; import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
public class LandUseTest { public class LandUseTest {
private LandUse lu;
private LandObject land;
@Before
public void setUp() {
lu = new LandUse();
land = new LandObject(lu);
}
@Test @Test
public void testUnsetGeometries() { public void testContainsError() {
LandUse lu = new LandUse(); assertFalse(land.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
LandObject land = new LandObject(lu); assertFalse(land.containsError(CheckId.C_GE_P_NON_PLANAR));
land.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(land.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(land.containsError(CheckId.C_GE_P_NON_PLANAR));
land.addCheckResult(new CheckResult(CheckId.C_GE_P_NON_PLANAR, ResultStatus.OK, mock(CheckError.class)));
assertTrue(land.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(land.containsError(CheckId.C_GE_P_NON_PLANAR));
}
@Test
public void testClearAllContainedCheckResults() {
land.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertEquals(1, land.getAllCheckResults().size());
land.clearAllContainedCheckResults();
assertTrue(land.getAllCheckResults().isEmpty());
}
@Test
public void testContainsAnyError() {
assertFalse(land.containsAnyError());
land.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(land.containsAnyError());
land.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(land.containsAnyError());
}
@Test
public void testCollectContainedErrors() {
land.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
List<CheckError> errors = new ArrayList<>();
land.collectContainedErrors(errors);
assertEquals(1, errors.size());
}
@Test
public void testUnsetGeometries() {
lu.setLod0MultiSurface(new MultiSurfaceProperty()); lu.setLod0MultiSurface(new MultiSurfaceProperty());
lu.setLod1MultiSurface(new MultiSurfaceProperty()); lu.setLod1MultiSurface(new MultiSurfaceProperty());
lu.setLod2MultiSurface(new MultiSurfaceProperty()); lu.setLod2MultiSurface(new MultiSurfaceProperty());
...@@ -32,8 +87,6 @@ public class LandUseTest { ...@@ -32,8 +87,6 @@ public class LandUseTest {
@Test @Test
public void testReCreateGeometries() { public void testReCreateGeometries() {
LandUse lu = new LandUse();
LandObject land = new LandObject(lu);
land.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD0)); land.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD0));
land.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD1)); land.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD1));
land.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); land.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2));
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.model.relief.ReliefFeature; import org.citygml4j.core.model.relief.ReliefFeature;
import org.citygml4j.core.model.relief.TINRelief;
import org.citygml4j.core.model.relief.TinProperty;
import org.citygml4j.core.util.geometry.GeometryFactory;
import org.junit.Test; import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
...@@ -30,31 +23,5 @@ public class ReliefObjectTest { ...@@ -30,31 +23,5 @@ public class ReliefObjectTest {
verify(mockTin).accept(c); verify(mockTin).accept(c);
} }
@Test
public void testUnsetGeometriesTinObject() {
TINRelief tir = new TINRelief();
TinObject tin = new TinObject(tir);
tir.setTin(new TinProperty());
tin.clearGmlGeometries();
assertNull(tir.getTin());
}
@Test
public void testReCreateGeometriesTinObject() {
TINRelief tir = new TINRelief();
TinObject tin = new TinObject(tir);
tin.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE));
GeometryFactory factory = GeometryFactory.newInstance();
ParserConfiguration config = new ParserConfiguration(8, false);
tin.reCreateGeometries(factory, config);
assertNotNull(tir.getTin());
assertNotNull(tir.getTin().getObject());
assertEquals(2, tir.getLod());
}
} }
package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.model.relief.TINRelief;
import org.citygml4j.core.model.relief.TinProperty;
import org.citygml4j.core.util.geometry.GeometryFactory;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
public class TinObjectTest {
@Test
public void testVisitorPropagation() {
TINRelief tir = new TINRelief();
TinObject tin = new TinObject(tir);
Geometry mockGeometry = mock(Geometry.class);
tin.addGeometry(mockGeometry);
AbstractCheck c = new AbstractCheck() {
};
tin.accept(c);
verify(mockGeometry).accept(c);
}
@Test
public void testContainsError() {
TINRelief tir = new TINRelief();
TinObject tin = new TinObject(tir);
assertFalse(tin.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(tin.containsError(CheckId.C_GE_P_NON_PLANAR));
tin.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(tin.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(tin.containsError(CheckId.C_GE_P_NON_PLANAR));
tin.addCheckResult(new CheckResult(CheckId.C_GE_P_NON_PLANAR, ResultStatus.OK, mock(CheckError.class)));
assertTrue(tin.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(tin.containsError(CheckId.C_GE_P_NON_PLANAR));
}
@Test
public void testClearAllContainedCheckResults() {
TINRelief tir = new TINRelief();
TinObject tin = new TinObject(tir);
tin.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertEquals(1, tin.getAllCheckResults().size());
tin.clearAllContainedCheckResults();
assertTrue(tin.getAllCheckResults().isEmpty());
}
@Test
public void testContainsAnyError() {
TINRelief tir = new TINRelief();
TinObject tin = new TinObject(tir);
assertFalse(tin.containsAnyError());
tin.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(tin.containsAnyError());
tin.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(tin.containsAnyError());
}
@Test
public void testCollectContainedErrors() {
TINRelief tir = new TINRelief();
TinObject tin = new TinObject(tir);
tin.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
List<CheckError> errors = new ArrayList<>();
tin.collectContainedErrors(errors);
assertEquals(1, errors.size());
}
@Test
public void testUnsetGeometries() {
TINRelief tir = new TINRelief();
TinObject tin = new TinObject(tir);
tir.setTin(new TinProperty());
tin.clearGmlGeometries();
assertNull(tir.getTin());
}
@Test
public void testReCreateGeometries() {
TINRelief tir = new TINRelief();
TinObject tin = new TinObject(tir);
tin.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE));
GeometryFactory factory = GeometryFactory.newInstance();
ParserConfiguration config = new ParserConfiguration(8, false);
tin.reCreateGeometries(factory, config);
assertNotNull(tir.getTin());
assertNotNull(tir.getTin().getObject());
assertEquals(2, tir.getLod());
}
}
...@@ -46,7 +46,7 @@ public class TopLevelTransportFeatureTest { ...@@ -46,7 +46,7 @@ public class TopLevelTransportFeatureTest {
} }
@Test @Test
public void testVisitorPropagationTopLevel() { public void testVisitorPropagation() {
Road road = new Road(); Road road = new Road();
TopLevelTransportFeature top = TopLevelTransportFeature.from(road); TopLevelTransportFeature top = TopLevelTransportFeature.from(road);
TransportSection mockSection = mock(TransportSection.class); TransportSection mockSection = mock(TransportSection.class);
...@@ -62,6 +62,32 @@ public class TopLevelTransportFeatureTest { ...@@ -62,6 +62,32 @@ public class TopLevelTransportFeatureTest {
verify(mockIntersection).accept(c); verify(mockIntersection).accept(c);
} }
@Test
public void testContainsError() {
Road road = new Road();
TopLevelTransportFeature top = TopLevelTransportFeature.from(road);
assertFalse(top.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(top.containsError(CheckId.C_GE_P_NON_PLANAR));
top.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(top.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(top.containsError(CheckId.C_GE_P_NON_PLANAR));
top.addCheckResult(new CheckResult(CheckId.C_GE_P_NON_PLANAR, ResultStatus.OK, mock(CheckError.class)));
assertTrue(top.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(top.containsError(CheckId.C_GE_P_NON_PLANAR));
}
@Test
public void testContainsAnyError() {
Road road = new Road();
TopLevelTransportFeature top = TopLevelTransportFeature.from(road);
assertFalse(top.containsAnyError());
top.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(top.containsAnyError());
top.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(top.containsAnyError());
}
@Test @Test
public void testClearAllContainedCheckResults() { public void testClearAllContainedCheckResults() {
Road roadMock = mock(Road.class); Road roadMock = mock(Road.class);
......
...@@ -27,14 +27,23 @@ public class TrafficAreaTest { ...@@ -27,14 +27,23 @@ public class TrafficAreaTest {
@Test @Test
public void testContainsError() { public void testContainsError() {
TrafficAreaObject tao = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); TrafficAreaObject tao = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA);
TrafficArea taMock = mock(TrafficArea.class);
tao.setGmlObject(taMock);
tao.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); tao.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(tao.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); assertTrue(tao.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(tao.containsError(CheckId.C_GE_P_INNER_RINGS_NESTED)); assertFalse(tao.containsError(CheckId.C_GE_P_INNER_RINGS_NESTED));
} }
@Test
public void testContainsAnyError() {
TrafficAreaObject tao = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA);
assertFalse(tao.containsAnyError());
tao.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(tao.containsAnyError());
tao.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(tao.containsAnyError());
}
@Test @Test
public void testClearAllContainedCheckResults() { public void testClearAllContainedCheckResults() {
TrafficAreaObject tao = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); TrafficAreaObject tao = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA);
......
...@@ -54,6 +54,17 @@ public class TrafficSpaceTest { ...@@ -54,6 +54,17 @@ public class TrafficSpaceTest {
} }
@Test
public void testContainsAnyError() {
TrafficSpaceObject tso = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE);
assertFalse(tso.containsAnyError());
tso.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(tso.containsAnyError());
tso.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(tso.containsAnyError());
}
@Test @Test
public void testCollectContainedErrors() { public void testCollectContainedErrors() {
TrafficSpaceObject tso = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); TrafficSpaceObject tso = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE);
......
...@@ -26,13 +26,11 @@ import org.mockito.Mockito; ...@@ -26,13 +26,11 @@ import org.mockito.Mockito;
public class TransportationObjectTest { public class TransportationObjectTest {
//TODO: Visitor Propagation testing
//TODO: Rework this class to be more in line with the other datastructure tests
@Test @Test
public void testGetFeatureType() { public void testGetFeatureType() {
TopLevelTransportFeature to = TopLevelTransportFeature.from(Mockito.mock(Road.class)); TopLevelTransportFeature to = TopLevelTransportFeature.from(Mockito.mock(Road.class));
assertEquals(FeatureType.TRANSPORTATION, to.getFeatureType()); assertEquals(FeatureType.TRANSPORTATION, to.getFeatureType());
} }
} }
...@@ -7,11 +7,14 @@ import de.hft.stuttgart.citydoctor2.check.CheckResult; ...@@ -7,11 +7,14 @@ import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus; import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.model.transportation.AbstractTransportationSpace; import org.citygml4j.core.model.transportation.AbstractTransportationSpace;
import org.citygml4j.core.model.transportation.Road;
import org.citygml4j.core.util.geometry.GeometryFactory; import org.citygml4j.core.util.geometry.GeometryFactory;
import org.citygml4j.core.visitor.ObjectVisitor; import org.citygml4j.core.visitor.ObjectVisitor;
import org.junit.Test; import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
...@@ -37,6 +40,54 @@ public class TransportationSpaceTest { ...@@ -37,6 +40,54 @@ public class TransportationSpaceTest {
verify(auxMockSpace).accept(c); verify(auxMockSpace).accept(c);
} }
@Test
public void testContainsError() {
TransportationSpace space = new TransportationSpace(TransportationObject.TransportationType.TRANSPORTATION_COMPLEX) {
};
space.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(space.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(space.containsError(CheckId.C_GE_P_INNER_RINGS_NESTED));
}
@Test
public void testContainsAnyError() {
TransportationSpace space = new TransportationSpace(TransportationObject.TransportationType.TRANSPORTATION_COMPLEX) {
};
assertFalse(space.containsAnyError());
space.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(space.containsAnyError());
space.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(space.containsAnyError());
}
@Test
public void testCollectContainedErrors() {
TransportationSpace space = new TransportationSpace(TransportationObject.TransportationType.TRANSPORTATION_COMPLEX) {
};
space.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
List<CheckError> errors = new ArrayList<>();
space.collectContainedErrors(errors);
assertEquals(1, errors.size());
}
@Test
public void testClearAllContainedCheckResults() {
TransportationSpace space = new TransportationSpace(TransportationObject.TransportationType.TRANSPORTATION_COMPLEX) {
};
assertFalse(space.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
space.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(space.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
space.clearAllContainedCheckResults();
assertFalse(space.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
}
@Test @Test
public void testReCreateGeometriesSolid() { public void testReCreateGeometriesSolid() {
...@@ -97,15 +148,4 @@ public class TransportationSpaceTest { ...@@ -97,15 +148,4 @@ public class TransportationSpaceTest {
assertNotNull(gmlAts.getDeprecatedProperties().getLod4MultiSurface()); assertNotNull(gmlAts.getDeprecatedProperties().getLod4MultiSurface());
assertNotNull(gmlAts.getDeprecatedProperties().getLod4MultiSurface().getObject()); assertNotNull(gmlAts.getDeprecatedProperties().getLod4MultiSurface().getObject());
} }
@Test
public void testContainsError() {
Road roadMock = mock(Road.class);
TopLevelTransportFeature top = TopLevelTransportFeature.from(roadMock);
top.setGmlObject(roadMock);
top.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(top.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(top.containsError(CheckId.C_GE_P_INNER_RINGS_NESTED));
}
} }
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.model.vegetation.PlantCover; import org.citygml4j.core.model.vegetation.PlantCover;
import org.citygml4j.core.model.vegetation.SolitaryVegetationObject; import org.citygml4j.core.model.vegetation.SolitaryVegetationObject;
...@@ -10,13 +14,64 @@ import org.xmlobjects.gml.model.geometry.aggregates.MultiSolidProperty; ...@@ -10,13 +14,64 @@ import org.xmlobjects.gml.model.geometry.aggregates.MultiSolidProperty;
import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty; import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty;
import org.xmlobjects.gml.model.geometry.primitives.SolidProperty; import org.xmlobjects.gml.model.geometry.primitives.SolidProperty;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
public class VegetationTest { public class VegetationTest {
//TODO: Recreate geometries tests //TODO: Recreate geometries tests
@Test
public void testContainsError() {
Vegetation veg = new Vegetation(Vegetation.VegetationType.PLANT_COVER);
veg.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(veg.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(veg.containsError(CheckId.C_GE_P_INNER_RINGS_NESTED));
}
@Test
public void testContainsAnyError() {
Vegetation veg = new Vegetation(Vegetation.VegetationType.PLANT_COVER);
assertFalse(veg.containsAnyError());
veg.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(veg.containsAnyError());
veg.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(veg.containsAnyError());
}
@Test
public void testClearAllContainedCheckResults() {
Vegetation veg = new Vegetation(Vegetation.VegetationType.PLANT_COVER);
assertFalse(veg.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
veg.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(veg.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
veg.clearAllContainedCheckResults();
assertFalse(veg.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
}
@Test
public void testCollectContainedErrors() {
Vegetation veg = new Vegetation(Vegetation.VegetationType.PLANT_COVER);
veg.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
List<CheckError> errors = new ArrayList<>();
veg.collectContainedErrors(errors);
assertEquals(1, errors.size());
}
@Test @Test
public void testUnsetGmlGeometriesPlantCover() { public void testUnsetGmlGeometriesPlantCover() {
Vegetation plantCover = new Vegetation(Vegetation.VegetationType.PLANT_COVER); Vegetation plantCover = new Vegetation(Vegetation.VegetationType.PLANT_COVER);
......
package de.hft.stuttgart.citydoctor2.datastructure; package de.hft.stuttgart.citydoctor2.datastructure;
import de.hft.stuttgart.citydoctor2.check.AbstractCheck; import de.hft.stuttgart.citydoctor2.check.AbstractCheck;
import de.hft.stuttgart.citydoctor2.check.CheckError;
import de.hft.stuttgart.citydoctor2.check.CheckId;
import de.hft.stuttgart.citydoctor2.check.CheckResult;
import de.hft.stuttgart.citydoctor2.check.ResultStatus;
import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration; import de.hft.stuttgart.citydoctor2.parser.ParserConfiguration;
import org.citygml4j.core.model.waterbody.WaterBody; import org.citygml4j.core.model.waterbody.WaterBody;
import org.citygml4j.core.util.geometry.GeometryFactory; import org.citygml4j.core.util.geometry.GeometryFactory;
...@@ -8,8 +12,14 @@ import org.junit.Test; ...@@ -8,8 +12,14 @@ import org.junit.Test;
import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty; import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty;
import org.xmlobjects.gml.model.geometry.primitives.SolidProperty; import org.xmlobjects.gml.model.geometry.primitives.SolidProperty;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
...@@ -31,6 +41,50 @@ public class WaterTest { ...@@ -31,6 +41,50 @@ public class WaterTest {
verify(bsMock2).accept(c); verify(bsMock2).accept(c);
} }
@Test
public void testContainsError() {
WaterObject water = new WaterObject();
water.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(water.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
assertFalse(water.containsError(CheckId.C_GE_P_INNER_RINGS_NESTED));
}
@Test
public void testContainsAnyError() {
WaterObject water = new WaterObject();
assertFalse(water.containsAnyError());
water.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.OK, null));
assertFalse(water.containsAnyError());
water.addCheckResult(
new CheckResult(CheckId.C_GE_P_INNER_RINGS_NESTED, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(water.containsAnyError());
}
@Test
public void testClearAllContainedCheckResults() {
WaterObject water = new WaterObject();
assertFalse(water.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
water.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
assertTrue(water.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
water.clearAllContainedCheckResults();
assertFalse(water.containsError(CheckId.C_GE_P_HOLE_OUTSIDE));
}
@Test
public void testCollectContainedErrors() {
WaterObject water = new WaterObject();
water.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class)));
List<CheckError> errors = new ArrayList<>();
water.collectContainedErrors(errors);
assertEquals(1, errors.size());
}
@Test @Test
public void testUnsetGmlGeometries() { public void testUnsetGmlGeometries() {
WaterObject water = new WaterObject(); WaterObject water = new WaterObject();
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment