From 7bb08ccbdc78c820371a5e0933ded91e4b9837bf Mon Sep 17 00:00:00 2001 From: Riegel <alexander.riegel@hft-stuttgart.de> Date: Mon, 10 Mar 2025 16:29:15 +0100 Subject: [PATCH] Test: Fix TransportationObject tests --- .../TransportationObjectTest.java | 179 ++++++++++++++---- 1 file changed, 143 insertions(+), 36 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 0d12628..3d6399a 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 @@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -33,13 +34,23 @@ import java.util.List; 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; +import org.citygml4j.core.model.transportation.Section; +import org.citygml4j.core.model.transportation.Square; +import org.citygml4j.core.model.transportation.Track; import org.citygml4j.core.model.transportation.TrafficArea; +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; import de.hft.stuttgart.citydoctor2.check.CheckError; @@ -53,87 +64,171 @@ public class TransportationObjectTest { @Test public void testGetFeatureType() { - TransportationObject to = new TransportationObject(TransportationType.ROAD); + TopLevelTransportFeature to = TopLevelTransportFeature.from(Mockito.mock(Road.class)); assertEquals(FeatureType.TRANSPORTATION, to.getFeatureType()); } + + @Test + public void testObjectConstruction() { + TopLevelTransportFeature road = TopLevelTransportFeature.from(Mockito.mock(Road.class)); + assertEquals(TransportationType.ROAD, road.getTransportationType()); + TopLevelTransportFeature track = TopLevelTransportFeature.from(Mockito.mock(Track.class)); + assertEquals(TransportationType.TRACK, track.getTransportationType()); + TopLevelTransportFeature waterway = TopLevelTransportFeature.from(Mockito.mock(Waterway.class)); + assertEquals(TransportationType.WATERWAY, waterway.getTransportationType()); + TopLevelTransportFeature railway = TopLevelTransportFeature.from(Mockito.mock(Railway.class)); + assertEquals(TransportationType.RAILWAY, railway.getTransportationType()); + TopLevelTransportFeature square = TopLevelTransportFeature.from(Mockito.mock(Square.class)); + assertEquals(TransportationType.SQUARE, square.getTransportationType()); + + assertNull(TopLevelTransportFeature.from(Mockito.mock(Section.class))); + assertNull(TopLevelTransportFeature.from(Mockito.mock(Intersection.class))); + } @Test(expected = IllegalStateException.class) public void testReCreateGeometriesSolid() { - TransportationObject to = new TransportationObject(TransportationType.ROAD); + TopLevelTransportFeature to = TopLevelTransportFeature.from(Mockito.mock(Road.class)); to.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.SOLID, Lod.LOD1)); GeometryFactory factory = GeometryFactory.newInstance(); to.reCreateGeometries(factory, mock(ParserConfiguration.class)); } - + + @Test public void testReCreateGeometriesWithComposedOf() { - TransportationObject to = new TransportationObject(TransportationType.ROAD); - TransportationComplex tcMock = new TransportationComplex(); - to.setGmlObject(tcMock); - TransportationObject ataTo = new TransportationObject(TransportationType.AUXILLIARY_TRAFFIC_SPACE); + 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); - tcMock.getAuxiliaryTrafficSpaces().add(new AuxiliaryTrafficSpaceProperty(ataMock)); + roadMock.getAuxiliaryTrafficSpaces().add(new AuxiliaryTrafficSpaceProperty(ataMock)); - to.addChild(ataTo); + to.addAuxTrafficSpace(ataTo); GeometryFactory factory = GeometryFactory.newInstance(); to.reCreateGeometries(factory, mock(ParserConfiguration.class)); verify(ataMock).setLod2MultiSurface(any()); + + } + + @Test + public void testReCreateGeometriesMultiSurfaceLod0() { + TopLevelTransportFeature top = TopLevelTransportFeature.from(Mockito.mock(Road.class)); + Road roadMock = mock(Road.class); + 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); + + top.addTrafficSpace(tsMock); + tsMock.addTrafficArea(taMock); + + taMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD0)); + GeometryFactory factory = GeometryFactory.newInstance(); + top.reCreateGeometries(factory, mock(ParserConfiguration.class)); + verify(trafficAreaMock).setLod0MultiSurface(any()); + } + + @Test public void testReCreateGeometriesMultiSurfaceLod1() { - TransportationObject to = new TransportationObject(TransportationType.ROAD); + TopLevelTransportFeature top = TopLevelTransportFeature.from(Mockito.mock(Road.class)); Road roadMock = mock(Road.class); - DeprecatedPropertiesOfAbstractTransportationSpace dSpace = mock(DeprecatedPropertiesOfAbstractTransportationSpace.class); - when(roadMock.getDeprecatedProperties()).thenReturn(dSpace); - to.setGmlObject(roadMock); - to.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD1)); + 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); + + top.addTrafficSpace(tsMock); + tsMock.addTrafficArea(taMock); + + taMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD1)); GeometryFactory factory = GeometryFactory.newInstance(); - to.reCreateGeometries(factory, mock(ParserConfiguration.class)); - verify(dSpace).setLod1MultiSurface(any()); + top.reCreateGeometries(factory, mock(ParserConfiguration.class)); + verify(trafficAreaMock).setLod1MultiSurface(any()); } + @Test public void testReCreateGeometriesMultiSurfaceLod2() { - TransportationObject to = new TransportationObject(TransportationType.ROAD); + TopLevelTransportFeature top = TopLevelTransportFeature.from(Mockito.mock(Road.class)); Road roadMock = mock(Road.class); - to.setGmlObject(roadMock); - to.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); + 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); + + top.addTrafficSpace(tsMock); + tsMock.addTrafficArea(taMock); + + taMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD2)); GeometryFactory factory = GeometryFactory.newInstance(); - to.reCreateGeometries(factory, mock(ParserConfiguration.class)); - verify(roadMock).setLod2MultiSurface(any()); + top.reCreateGeometries(factory, mock(ParserConfiguration.class)); + verify(trafficAreaMock).setLod2MultiSurface(any()); } @Test public void testReCreateGeometriesMultiSurfaceLod3() { - TransportationObject to = new TransportationObject(TransportationType.ROAD); + TopLevelTransportFeature top = TopLevelTransportFeature.from(Mockito.mock(Road.class)); Road roadMock = mock(Road.class); - to.setGmlObject(roadMock); - to.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD3)); + 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); + + top.addTrafficSpace(tsMock); + tsMock.addTrafficArea(taMock); + + taMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD3)); GeometryFactory factory = GeometryFactory.newInstance(); - to.reCreateGeometries(factory, mock(ParserConfiguration.class)); - verify(roadMock).setLod3MultiSurface(any()); + top.reCreateGeometries(factory, mock(ParserConfiguration.class)); + verify(trafficAreaMock).setLod3MultiSurface(any()); } @Test public void testReCreateGeometriesMultiSurfaceLod4() { - TransportationObject to = new TransportationObject(TransportationType.ROAD); + TopLevelTransportFeature top = TopLevelTransportFeature.from(Mockito.mock(Road.class)); Road roadMock = mock(Road.class); - DeprecatedPropertiesOfAbstractTransportationSpace dSpace = mock(DeprecatedPropertiesOfAbstractTransportationSpace.class); - when(roadMock.getDeprecatedProperties()).thenReturn(dSpace); - to.setGmlObject(roadMock); - to.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD4)); + 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); + + top.addTrafficSpace(tsMock); + tsMock.addTrafficArea(taMock); + + DeprecatedPropertiesOfAbstractThematicSurface dSpace = mock(DeprecatedPropertiesOfAbstractThematicSurface.class); + when(trafficAreaMock.getDeprecatedProperties()).thenReturn(dSpace); + + taMock.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD4)); GeometryFactory factory = GeometryFactory.newInstance(); - to.reCreateGeometries(factory, mock(ParserConfiguration.class)); + top.reCreateGeometries(factory, mock(ParserConfiguration.class)); verify(dSpace).setLod4MultiSurface(any()); } - + + /* @Test(expected = IllegalStateException.class) public void testReCreateGeometriesMultiSurfaceLod0() { - TransportationObject to = new TransportationObject(TransportationType.ROAD); + TopLevelTransportFeature to = TopLevelTransportFeature.from(Mockito.mock(Road.class)); Road roadMock = mock(Road.class); to.setGmlObject(roadMock); to.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD0)); @@ -143,16 +238,20 @@ public class TransportationObjectTest { @Test(expected = IllegalStateException.class) public void testReCreateGeometriesTrafficAreaMultiSurfaceLod1() { + TransportationObject to = new TransportationObject(TransportationType.TRAFFIC_AREA); TrafficArea roadMock = mock(TrafficArea.class); to.setGmlObject(roadMock); to.addGeometry(GeometryTestUtils.createDummyGeometry(GeometryType.MULTI_SURFACE, Lod.LOD1)); GeometryFactory factory = GeometryFactory.newInstance(); to.reCreateGeometries(factory, mock(ParserConfiguration.class)); + + } @Test public void testReCreateGeometriesTrafficAreaMultiSurfaceLod2() { + TransportationObject to = new TransportationObject(TransportationType.TRAFFIC_AREA); TrafficArea roadMock = mock(TrafficArea.class); to.setGmlObject(roadMock); @@ -160,10 +259,13 @@ public class TransportationObjectTest { GeometryFactory factory = GeometryFactory.newInstance(); to.reCreateGeometries(factory, mock(ParserConfiguration.class)); verify(roadMock).setLod2MultiSurface(any()); + + } @Test public void testReCreateGeometriesTrafficAreaMultiSurfaceLod3() { + TransportationObject to = new TransportationObject(TransportationType.TRAFFIC_AREA); TrafficArea roadMock = mock(TrafficArea.class); to.setGmlObject(roadMock); @@ -171,10 +273,14 @@ public class TransportationObjectTest { GeometryFactory factory = GeometryFactory.newInstance(); to.reCreateGeometries(factory, mock(ParserConfiguration.class)); verify(roadMock).setLod3MultiSurface(any()); + + } - + + @Test public void testReCreateGeometriesTrafficAreaMultiSurfaceLod4() { + TransportationObject to = new TransportationObject(TransportationType.TRAFFIC_AREA); TrafficArea roadMock = mock(TrafficArea.class); DeprecatedPropertiesOfAbstractThematicSurface dSpace = mock(DeprecatedPropertiesOfAbstractThematicSurface.class); @@ -185,6 +291,7 @@ public class TransportationObjectTest { to.reCreateGeometries(factory, mock(ParserConfiguration.class)); verify(dSpace).setLod4MultiSurface(any()); } + @Test public void testContainsError() { @@ -278,5 +385,5 @@ public class TransportationObjectTest { assertNull(r.getLod3MultiSurface()); assertNull(dSpace.getLod4MultiSurface()); } - + */ } -- GitLab