From 742f9555eca752bc348ce9b97ee21fa774f10ceb Mon Sep 17 00:00:00 2001 From: Riegel <alexander.riegel@hft-stuttgart.de> Date: Tue, 11 Mar 2025 16:58:03 +0100 Subject: [PATCH] Test:Rework TransportationObject tests --- .../TransportationObjectTest.java | 505 ++++++++++++------ 1 file changed, 336 insertions(+), 169 deletions(-) diff --git a/CityDoctorParent/CityDoctorModel/src/test/java/de/hft/stuttgart/citydoctor2/datastructure/TransportationObjectTest.java b/CityDoctorParent/CityDoctorModel/src/test/java/de/hft/stuttgart/citydoctor2/datastructure/TransportationObjectTest.java index d5ea6f0..8027327 100644 --- a/CityDoctorParent/CityDoctorModel/src/test/java/de/hft/stuttgart/citydoctor2/datastructure/TransportationObjectTest.java +++ b/CityDoctorParent/CityDoctorModel/src/test/java/de/hft/stuttgart/citydoctor2/datastructure/TransportationObjectTest.java @@ -31,13 +31,9 @@ import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.List; +import org.citygml4j.core.model.deprecated.core.DeprecatedPropertiesOfAbstractCityObject; import org.citygml4j.core.model.deprecated.core.DeprecatedPropertiesOfAbstractThematicSurface; import org.citygml4j.core.model.deprecated.transportation.DeprecatedPropertiesOfAbstractTransportationSpace; -import org.citygml4j.core.model.deprecated.transportation.TransportationComplex; -import org.citygml4j.core.model.transportation.AbstractTransportationSpace; -import org.citygml4j.core.model.transportation.AuxiliaryTrafficArea; -import org.citygml4j.core.model.transportation.AuxiliaryTrafficSpace; -import org.citygml4j.core.model.transportation.AuxiliaryTrafficSpaceProperty; import org.citygml4j.core.model.transportation.Intersection; import org.citygml4j.core.model.transportation.Railway; import org.citygml4j.core.model.transportation.Road; @@ -49,7 +45,6 @@ import org.citygml4j.core.model.transportation.TrafficSpace; import org.citygml4j.core.model.transportation.Waterway; import org.citygml4j.core.util.geometry.GeometryFactory; import org.junit.Test; -import org.mockito.Mock; import org.mockito.Mockito; import org.xmlobjects.gml.model.geometry.aggregates.MultiSurfaceProperty; @@ -95,280 +90,452 @@ public class TransportationObjectTest { @Test - public void testReCreateGeometriesWithComposedOf() { - TopLevelTransportFeature to = TopLevelTransportFeature.from(Mockito.mock(Road.class)); - Road roadMock = new Road(); - to.setGmlObject(roadMock); - TrafficSpaceObject ataTo = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.AUXILIARY_TRAFFIC_SPACE); - AuxiliaryTrafficSpace ataMock = mock(AuxiliaryTrafficSpace.class); - ataTo.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); - ataTo.setGmlObject(ataMock); - roadMock.getAuxiliaryTrafficSpaces().add(new AuxiliaryTrafficSpaceProperty(ataMock)); - - to.addAuxTrafficSpace(ataTo); + public void testReCreateGeometriesTransportationSpace() { + Road roadMock = mock(Road.class); + TopLevelTransportFeature top = TopLevelTransportFeature.from(roadMock); + top.setGmlObject(roadMock); + TransportSection sectionMock = Mockito.mock(TransportSection.class); + TransportSection intersectionMock = Mockito.mock(TransportSection.class); + TrafficSpaceObject tsMock = Mockito.mock(TrafficSpaceObject.class); + TrafficSpaceObject auxTsMock = Mockito.mock(TrafficSpaceObject.class); + + top.addSection(sectionMock); + top.addIntersection(intersectionMock); + top.addTrafficSpace(tsMock); + top.addAuxTrafficSpace(auxTsMock); + + top.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); GeometryFactory factory = GeometryFactory.newInstance(); - to.reCreateGeometries(factory, mock(ParserConfiguration.class)); - verify(ataMock).setLod2MultiSurface(any()); + top.reCreateGeometries(factory, mock(ParserConfiguration.class)); + verify(roadMock).setLod2MultiSurface(any()); + verify(sectionMock).reCreateGeometries(any(), any()); + verify(intersectionMock).reCreateGeometries(any(), any()); + verify(tsMock).reCreateGeometries(any(), any()); + verify(auxTsMock).reCreateGeometries(any(), any()); + } + + @Test + public void testReCreateGeometriesTrafficSpace() { + TrafficSpaceObject tso = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); + TrafficSpace tsMock = mock(TrafficSpace.class); + tso.setGmlObject(tsMock); + TrafficAreaObject taoMock = Mockito.mock(TrafficAreaObject.class); + tso.addTrafficArea(taoMock); + + tso.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); + GeometryFactory factory = GeometryFactory.newInstance(); + tso.reCreateGeometries(factory, mock(ParserConfiguration.class)); + + verify(tsMock).setLod2MultiSurface(any()); + verify(taoMock).reCreateGeometries(any(), any()); } + @Test + public void testReCreateGeometriesTrafficArea() { + TrafficAreaObject tao = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); + TrafficArea taMock = mock(TrafficArea.class); + tao.setGmlObject(taMock); + + tao.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); + GeometryFactory factory = GeometryFactory.newInstance(); + tao.reCreateGeometries(factory, mock(ParserConfiguration.class)); + + verify(taMock).setLod2MultiSurface(any()); + } @Test public void testReCreateGeometriesMultiSurfaceLod0() { - TopLevelTransportFeature top = TopLevelTransportFeature.from(Mockito.mock(Road.class)); Road roadMock = mock(Road.class); + TopLevelTransportFeature top = TopLevelTransportFeature.from(roadMock); top.setGmlObject(roadMock); - TrafficSpaceObject tsMock = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); + + TrafficSpaceObject ts = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); TrafficSpace trafficSpaceMock = mock(TrafficSpace.class); - tsMock.setGmlObject(trafficSpaceMock); - TrafficAreaObject taMock = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); - TrafficArea trafficAreaMock = mock(TrafficArea.class); - taMock.setGmlObject(trafficAreaMock); - TrafficAreaObject ataMock = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.AUXILIARY_TRAFFIC_AREA); - AuxiliaryTrafficArea auxTrafficAreaMock = mock(AuxiliaryTrafficArea.class); - ataMock.setGmlObject(auxTrafficAreaMock); + ts.setGmlObject(trafficSpaceMock); - top.addTrafficSpace(tsMock); - tsMock.addTrafficArea(taMock); - tsMock.addTrafficArea(ataMock); + TrafficAreaObject ta = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); + TrafficArea trafficAreaMock = mock(TrafficArea.class); + ta.setGmlObject(trafficAreaMock); - taMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD0)); - ataMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD0)); - tsMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD0)); top.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD0)); + ts.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD0)); + ta.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD0)); GeometryFactory factory = GeometryFactory.newInstance(); top.reCreateGeometries(factory, mock(ParserConfiguration.class)); - verify(trafficAreaMock).setLod0MultiSurface(any()); - verify(auxTrafficAreaMock).setLod0MultiSurface(any()); - verify(trafficSpaceMock).setLod0MultiSurface(any()); + ts.reCreateGeometries(factory, mock(ParserConfiguration.class)); + ta.reCreateGeometries(factory, mock(ParserConfiguration.class)); + verify(roadMock).setLod0MultiSurface(any()); + verify(trafficSpaceMock).setLod0MultiSurface(any()); + verify(trafficAreaMock).setLod0MultiSurface(any()); } - - @Test public void testReCreateGeometriesMultiSurfaceLod1() { - TopLevelTransportFeature top = TopLevelTransportFeature.from(Mockito.mock(Road.class)); Road roadMock = mock(Road.class); + TopLevelTransportFeature top = TopLevelTransportFeature.from(roadMock); top.setGmlObject(roadMock); - TrafficSpaceObject tsMock = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); - TrafficSpace trafficSpaceMock = mock(TrafficSpace.class); - tsMock.setGmlObject(trafficSpaceMock); - TrafficAreaObject taMock = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); + + TrafficAreaObject ta = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); TrafficArea trafficAreaMock = mock(TrafficArea.class); - taMock.setGmlObject(trafficAreaMock); - TrafficAreaObject ataMock = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.AUXILIARY_TRAFFIC_AREA); - AuxiliaryTrafficArea auxTrafficAreaMock = mock(AuxiliaryTrafficArea.class); - ataMock.setGmlObject(auxTrafficAreaMock); + ta.setGmlObject(trafficAreaMock); - top.addTrafficSpace(tsMock); - tsMock.addTrafficArea(taMock); - tsMock.addTrafficArea(ataMock); + DeprecatedPropertiesOfAbstractTransportationSpace dSpace = mock(DeprecatedPropertiesOfAbstractTransportationSpace.class); + when(roadMock.getDeprecatedProperties()).thenReturn(dSpace); - taMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD1)); - ataMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD1)); + try { + top.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD1)); + } catch (IllegalArgumentException e) { + fail("Casting of original GML object to AbstractTransportationSpace should work"); + } + ta.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD1)); GeometryFactory factory = GeometryFactory.newInstance(); top.reCreateGeometries(factory, mock(ParserConfiguration.class)); + ta.reCreateGeometries(factory, mock(ParserConfiguration.class)); + + verify(dSpace).setLod1MultiSurface(any()); verify(trafficAreaMock).setLod1MultiSurface(any()); - verify(auxTrafficAreaMock).setLod1MultiSurface(any()); } @Test public void testReCreateGeometriesMultiSurfaceLod2() { - TopLevelTransportFeature top = TopLevelTransportFeature.from(Mockito.mock(Road.class)); Road roadMock = mock(Road.class); + TopLevelTransportFeature top = TopLevelTransportFeature.from(roadMock); top.setGmlObject(roadMock); - TrafficSpaceObject tsMock = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); + + TrafficSpaceObject ts = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); TrafficSpace trafficSpaceMock = mock(TrafficSpace.class); - tsMock.setGmlObject(trafficSpaceMock); - TrafficAreaObject taMock = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); - TrafficArea trafficAreaMock = mock(TrafficArea.class); - taMock.setGmlObject(trafficAreaMock); - TrafficAreaObject ataMock = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.AUXILIARY_TRAFFIC_AREA); - AuxiliaryTrafficArea auxTrafficAreaMock = mock(AuxiliaryTrafficArea.class); - ataMock.setGmlObject(auxTrafficAreaMock); + ts.setGmlObject(trafficSpaceMock); - top.addTrafficSpace(tsMock); - tsMock.addTrafficArea(taMock); - tsMock.addTrafficArea(ataMock); + TrafficAreaObject ta = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); + TrafficArea trafficAreaMock = mock(TrafficArea.class); + ta.setGmlObject(trafficAreaMock); - taMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); - ataMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); - tsMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); top.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); + ts.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); + ta.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); GeometryFactory factory = GeometryFactory.newInstance(); top.reCreateGeometries(factory, mock(ParserConfiguration.class)); - verify(trafficAreaMock).setLod2MultiSurface(any()); - verify(auxTrafficAreaMock).setLod2MultiSurface(any()); - verify(trafficSpaceMock).setLod2MultiSurface(any()); + ts.reCreateGeometries(factory, mock(ParserConfiguration.class)); + ta.reCreateGeometries(factory, mock(ParserConfiguration.class)); + verify(roadMock).setLod2MultiSurface(any()); + verify(trafficSpaceMock).setLod2MultiSurface(any()); + verify(trafficAreaMock).setLod2MultiSurface(any()); } @Test public void testReCreateGeometriesMultiSurfaceLod3() { - TopLevelTransportFeature top = TopLevelTransportFeature.from(Mockito.mock(Road.class)); Road roadMock = mock(Road.class); + TopLevelTransportFeature top = TopLevelTransportFeature.from(roadMock); top.setGmlObject(roadMock); - TrafficSpaceObject tsMock = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); + + TrafficSpaceObject ts = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); TrafficSpace trafficSpaceMock = mock(TrafficSpace.class); - tsMock.setGmlObject(trafficSpaceMock); - TrafficAreaObject taMock = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); - TrafficArea trafficAreaMock = mock(TrafficArea.class); - taMock.setGmlObject(trafficAreaMock); - TrafficAreaObject ataMock = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.AUXILIARY_TRAFFIC_AREA); - AuxiliaryTrafficArea auxTrafficAreaMock = mock(AuxiliaryTrafficArea.class); - ataMock.setGmlObject(auxTrafficAreaMock); + ts.setGmlObject(trafficSpaceMock); - top.addTrafficSpace(tsMock); - tsMock.addTrafficArea(taMock); - tsMock.addTrafficArea(ataMock); + TrafficAreaObject ta = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); + TrafficArea trafficAreaMock = mock(TrafficArea.class); + ta.setGmlObject(trafficAreaMock); - taMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD3)); - ataMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD3)); - tsMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD3)); top.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD3)); + ts.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD3)); + ta.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD3)); GeometryFactory factory = GeometryFactory.newInstance(); top.reCreateGeometries(factory, mock(ParserConfiguration.class)); - verify(trafficAreaMock).setLod3MultiSurface(any()); - verify(auxTrafficAreaMock).setLod3MultiSurface(any()); - verify(trafficSpaceMock).setLod3MultiSurface(any()); + ts.reCreateGeometries(factory, mock(ParserConfiguration.class)); + ta.reCreateGeometries(factory, mock(ParserConfiguration.class)); + verify(roadMock).setLod3MultiSurface(any()); + verify(trafficSpaceMock).setLod3MultiSurface(any()); + verify(trafficAreaMock).setLod3MultiSurface(any()); } @Test public void testReCreateGeometriesMultiSurfaceLod4() { - TopLevelTransportFeature top = TopLevelTransportFeature.from(Mockito.mock(Road.class)); Road roadMock = mock(Road.class); + TopLevelTransportFeature top = TopLevelTransportFeature.from(roadMock); top.setGmlObject(roadMock); - TrafficSpaceObject tsMock = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); - TrafficSpace trafficSpaceMock = mock(TrafficSpace.class); - tsMock.setGmlObject(trafficSpaceMock); - TrafficAreaObject taMock = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); - TrafficArea trafficAreaMock = mock(TrafficArea.class); - taMock.setGmlObject(trafficAreaMock); - TrafficAreaObject ataMock = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.AUXILIARY_TRAFFIC_AREA); - AuxiliaryTrafficArea auxTrafficAreaMock = mock(AuxiliaryTrafficArea.class); - ataMock.setGmlObject(auxTrafficAreaMock); - top.addTrafficSpace(tsMock); - tsMock.addTrafficArea(taMock); - tsMock.addTrafficArea(ataMock); + TrafficAreaObject ta = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); + TrafficArea trafficAreaMock = mock(TrafficArea.class); + ta.setGmlObject(trafficAreaMock); - DeprecatedPropertiesOfAbstractThematicSurface dSpace = mock(DeprecatedPropertiesOfAbstractThematicSurface.class); - when(trafficAreaMock.getDeprecatedProperties()).thenReturn(dSpace); - DeprecatedPropertiesOfAbstractThematicSurface adSpace = mock(DeprecatedPropertiesOfAbstractThematicSurface.class); - when(auxTrafficAreaMock.getDeprecatedProperties()).thenReturn(adSpace); + DeprecatedPropertiesOfAbstractTransportationSpace dSpace = mock(DeprecatedPropertiesOfAbstractTransportationSpace.class); + when(roadMock.getDeprecatedProperties()).thenReturn(dSpace); + DeprecatedPropertiesOfAbstractThematicSurface dArea = mock(DeprecatedPropertiesOfAbstractThematicSurface.class); + when(trafficAreaMock.getDeprecatedProperties()).thenReturn(dArea); - taMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD4)); - ataMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD4)); + ta.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD4)); + try { + top.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD4)); + } catch (IllegalArgumentException e) { + fail("Casting of original GML object to AbstractTransportationSpace should work"); + } GeometryFactory factory = GeometryFactory.newInstance(); top.reCreateGeometries(factory, mock(ParserConfiguration.class)); + ta.reCreateGeometries(factory, mock(ParserConfiguration.class)); + verify(dSpace).setLod4MultiSurface(any()); - verify(adSpace).setLod4MultiSurface(any()); + verify(dArea).setLod4MultiSurface(any()); + } + + + @Test + public void testContainsErrorTransportationSpace() { + Road roadMock = mock(Road.class); + TopLevelTransportFeature top = TopLevelTransportFeature.from(roadMock); + top.setGmlObject(roadMock); + TransportSection sectionMock = Mockito.mock(TransportSection.class); + TransportSection intersectionMock = Mockito.mock(TransportSection.class); + TrafficSpaceObject tsMock = Mockito.mock(TrafficSpaceObject.class); + TrafficSpaceObject auxTsMock = Mockito.mock(TrafficSpaceObject.class); + + top.addSection(sectionMock); + top.addIntersection(intersectionMock); + top.addTrafficSpace(tsMock); + top.addAuxTrafficSpace(auxTsMock); + + 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)); + verify(sectionMock).containsError(any()); + verify(intersectionMock).containsError(any()); + verify(tsMock).containsError(any()); + verify(auxTsMock).containsError(any()); } + @Test + public void testContainsErrorTrafficSpace() { + TrafficSpaceObject tso = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); + TrafficSpace tsMock = mock(TrafficSpace.class); + tso.setGmlObject(tsMock); + TrafficAreaObject taMock = mock(TrafficAreaObject.class); + + tso.addTrafficArea(taMock); + + tso.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); + assertTrue(tso.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); + assertFalse(tso.containsError(CheckId.C_GE_P_INNER_RINGS_NESTED)); + + verify(taMock).containsError(any()); + } - @Test - public void testContainsError() { - TrafficAreaObject ta = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); - ta.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); - assertTrue(ta.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); - assertFalse(ta.containsError(CheckId.C_GE_P_INNER_RINGS_NESTED)); + public void testContainsErrorTrafficArea() { + 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))); + assertTrue(tao.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); + assertFalse(tao.containsError(CheckId.C_GE_P_INNER_RINGS_NESTED)); } - /* @Test - public void testContainsErrorInComposesOf() { - TransportationObject to = new TransportationObject(TransportationType.TRAFFIC_AREA); - TransportationObject to2 = new TransportationObject(TransportationType.TRACK); - to.addChild(to2); - to2.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); - assertTrue(to.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); - assertFalse(to.containsError(CheckId.C_GE_P_INNER_RINGS_NESTED)); + public void testClearAllContainedCheckResultsTransportationSpace() { + Road roadMock = mock(Road.class); + TopLevelTransportFeature top = TopLevelTransportFeature.from(roadMock); + top.setGmlObject(roadMock); + TransportSection sectionMock = Mockito.mock(TransportSection.class); + TransportSection intersectionMock = Mockito.mock(TransportSection.class); + TrafficSpaceObject tsMock = Mockito.mock(TrafficSpaceObject.class); + TrafficSpaceObject auxTsMock = Mockito.mock(TrafficSpaceObject.class); + + top.addSection(sectionMock); + top.addIntersection(intersectionMock); + top.addTrafficSpace(tsMock); + top.addAuxTrafficSpace(auxTsMock); + + assertFalse(top.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); + top.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); + assertTrue(top.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); + top.clearAllContainedCheckResults(); + assertFalse(top.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); + + verify(sectionMock).clearAllContainedCheckResults(); + verify(intersectionMock).clearAllContainedCheckResults(); + verify(tsMock).clearAllContainedCheckResults(); + verify(auxTsMock).clearAllContainedCheckResults(); } - + @Test - public void testClearAllContainedCheckResults() { - TransportationObject to = new TransportationObject(TransportationType.TRAFFIC_AREA); - TransportationObject to2 = mock(TransportationObject.class); - to.addChild(to2); - assertFalse(to.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); - to.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); - assertTrue(to.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); - to.clearAllContainedCheckResults(); - assertFalse(to.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); - verify(to2).clearAllContainedCheckResults(); + public void testClearAllContainedCheckResultsTrafficSpace() { + TrafficSpaceObject tso = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); + TrafficSpace tsMock = mock(TrafficSpace.class); + tso.setGmlObject(tsMock); + TrafficAreaObject taMock = mock(TrafficAreaObject.class); + + tso.addTrafficArea(taMock); + + assertFalse(tso.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); + tso.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); + assertTrue(tso.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); + tso.clearAllContainedCheckResults(); + assertFalse(tso.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); + + verify(taMock).clearAllContainedCheckResults(); } - + + @Test + public void testClearAllContainedCheckResultsTrafficArea() { + TrafficAreaObject tao = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); + TrafficArea taMock = mock(TrafficArea.class); + tao.setGmlObject(taMock); + + assertFalse(tao.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); + tao.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); + assertTrue(tao.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); + tao.clearAllContainedCheckResults(); + assertFalse(tao.containsError(CheckId.C_GE_P_HOLE_OUTSIDE)); + + } + @Test - public void testCollectContainedErrors() { - TransportationObject to = new TransportationObject(TransportationType.TRAFFIC_AREA); - TransportationObject to2 = mock(TransportationObject.class); - to.addChild(to2); - to.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); + public void testCollectContainedErrorsTransportationSpace() { + Road roadMock = mock(Road.class); + TopLevelTransportFeature top = TopLevelTransportFeature.from(roadMock); + top.setGmlObject(roadMock); + TransportSection sectionMock = Mockito.mock(TransportSection.class); + TransportSection intersectionMock = Mockito.mock(TransportSection.class); + TrafficSpaceObject tsMock = Mockito.mock(TrafficSpaceObject.class); + TrafficSpaceObject auxTsMock = Mockito.mock(TrafficSpaceObject.class); + + top.addSection(sectionMock); + top.addIntersection(intersectionMock); + top.addTrafficSpace(tsMock); + top.addAuxTrafficSpace(auxTsMock); + + top.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); List<CheckError> errors = new ArrayList<>(); - to.collectContainedErrors(errors); + top.collectContainedErrors(errors); assertEquals(1, errors.size()); - verify(to2).collectContainedErrors(errors); + + verify(sectionMock).collectContainedErrors(errors); + verify(intersectionMock).collectContainedErrors(errors); + verify(tsMock).collectContainedErrors(errors); + verify(auxTsMock).collectContainedErrors(errors); } - + + @Test + public void testCollectContainedErrorsTrafficSpace() { + TrafficSpaceObject tso = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); + TrafficSpace tsMock = mock(TrafficSpace.class); + tso.setGmlObject(tsMock); + TrafficAreaObject taMock = mock(TrafficAreaObject.class); + + tso.addTrafficArea(taMock); + + tso.addCheckResult(new CheckResult(CheckId.C_GE_P_HOLE_OUTSIDE, ResultStatus.ERROR, mock(CheckError.class))); + List<CheckError> errors = new ArrayList<>(); + tso.collectContainedErrors(errors); + assertEquals(1, errors.size()); + + verify(taMock).collectContainedErrors(errors); + } + + @Test + public void testCollectContainedErrorsTrafficArea() { + 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))); + List<CheckError> errors = new ArrayList<>(); + tao.collectContainedErrors(errors); + assertEquals(1, errors.size()); + } + @Test - public void testUnsetGmlGeometriesRoad() { - TransportationObject to = new TransportationObject(TransportationType.ROAD); + public void testUnsetGmlGeometriesTransportationSpace() { Road r = mock(Road.class); - to.setGmlObject(r); + TopLevelTransportFeature top = TopLevelTransportFeature.from(r); + top.setGmlObject(r); + TransportSection mockSection = mock(TransportSection.class); + TransportSection mockInterestSection = mock(TransportSection.class); + TrafficSpaceObject mockSpace = mock(TrafficSpaceObject.class); + TrafficSpaceObject auxMockSpace = mock(TrafficSpaceObject.class); + + top.addSection(mockSection); + top.addIntersection(mockInterestSection); + top.addTrafficSpace(mockSpace); + top.addAuxTrafficSpace(auxMockSpace); + DeprecatedPropertiesOfAbstractTransportationSpace dSpace = mock(DeprecatedPropertiesOfAbstractTransportationSpace.class); when(r.getDeprecatedProperties()).thenReturn(dSpace); + dSpace.setLod1MultiSurface(mock(MultiSurfaceProperty.class)); r.setLod2MultiSurface(mock(MultiSurfaceProperty.class)); r.setLod3MultiSurface(mock(MultiSurfaceProperty.class)); dSpace.setLod4MultiSurface(mock(MultiSurfaceProperty.class)); - to.unsetGmlGeometries(); + + top.unsetGmlGeometries(); assertNull(dSpace.getLod1MultiSurface()); assertNull(r.getLod2MultiSurface()); assertNull(r.getLod3MultiSurface()); assertNull(dSpace.getLod4MultiSurface()); + + verify(mockSection).unsetGmlGeometries(); + verify(mockInterestSection).unsetGmlGeometries(); + verify(mockSpace).unsetGmlGeometries(); + verify(auxMockSpace).unsetGmlGeometries(); + } - + @Test - public void testUnsetGmlGeometriesTrafficArea() { - TransportationObject to = new TransportationObject(TransportationType.TRAFFIC_AREA); - TrafficArea r = mock(TrafficArea.class); - to.setGmlObject(r); - DeprecatedPropertiesOfAbstractThematicSurface dSpace = mock(DeprecatedPropertiesOfAbstractThematicSurface.class); - when(r.getDeprecatedProperties()).thenReturn(dSpace); - r.setLod2MultiSurface(mock(MultiSurfaceProperty.class)); - r.setLod3MultiSurface(mock(MultiSurfaceProperty.class)); - dSpace.setLod4MultiSurface(mock(MultiSurfaceProperty.class)); - to.unsetGmlGeometries(); - assertNull(r.getLod2MultiSurface()); - assertNull(r.getLod3MultiSurface()); - assertNull(dSpace.getLod4MultiSurface()); + public void testUnsetGmlGeometriesTrafficSpace() { + TrafficSpaceObject tso = new TrafficSpaceObject(TrafficSpaceObject.TrafficSpaceType.TRAFFIC_SPACE); + TrafficSpace t = mock(TrafficSpace.class); + tso.setGmlObject(t); + TrafficAreaObject mockArea = mock(TrafficAreaObject.class); + + tso.addTrafficArea(mockArea); + + DeprecatedPropertiesOfAbstractCityObject dSpace = mock(DeprecatedPropertiesOfAbstractCityObject.class); + when(t.getDeprecatedProperties()).thenReturn(dSpace); + + t.setLod0MultiSurface(mock(MultiSurfaceProperty.class)); + t.setLod2MultiSurface(mock(MultiSurfaceProperty.class)); + t.setLod3MultiSurface(mock(MultiSurfaceProperty.class)); + + tso.unsetGmlGeometries(); + assertNull(t.getLod0MultiSurface()); + assertNull(t.getLod2MultiSurface()); + assertNull(t.getLod3MultiSurface()); + + verify(mockArea).unsetGmlGeometries(); + } - + @Test - public void testUnsetGmlGeometriesAuxilliaryTrafficArea() { - TransportationObject to = new TransportationObject(TransportationType.AUXILLIARY_TRAFFIC_AREA); - AuxiliaryTrafficArea r = mock(AuxiliaryTrafficArea.class); - to.setGmlObject(r); + public void testUnsetGmlGeometriesTrafficArea() { + TrafficAreaObject ta = new TrafficAreaObject(TrafficAreaObject.TrafficAreaType.TRAFFIC_AREA); + TrafficArea r = mock(TrafficArea.class); + ta.setGmlObject(r); DeprecatedPropertiesOfAbstractThematicSurface dSpace = mock(DeprecatedPropertiesOfAbstractThematicSurface.class); when(r.getDeprecatedProperties()).thenReturn(dSpace); + + r.setLod0MultiSurface(mock(MultiSurfaceProperty.class)); + r.setLod1MultiSurface(mock(MultiSurfaceProperty.class)); r.setLod2MultiSurface(mock(MultiSurfaceProperty.class)); r.setLod3MultiSurface(mock(MultiSurfaceProperty.class)); dSpace.setLod4MultiSurface(mock(MultiSurfaceProperty.class)); - to.unsetGmlGeometries(); + + ta.unsetGmlGeometries(); + assertNull(r.getLod0MultiSurface()); + assertNull(r.getLod1MultiSurface()); assertNull(r.getLod2MultiSurface()); assertNull(r.getLod3MultiSurface()); assertNull(dSpace.getLod4MultiSurface()); } - */ + } -- GitLab