/*- * Copyright 2020 Beuth Hochschule für Technik Berlin, Hochschule für Technik Stuttgart * * This file is part of CityDoctor2. * * CityDoctor2 is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * CityDoctor2 is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with CityDoctor2. If not, see . */ package de.hft.stuttgart.citydoctor2.check.error; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; import org.junit.Test; import de.hft.stuttgart.citydoctor2.check.QualityAdeErrorVisitor; import de.hft.stuttgart.citydoctor2.datastructure.ConcretePolygon; import de.hft.stuttgart.citydoctor2.datastructure.GmlId; import de.hft.stuttgart.citydoctor2.datastructure.LinearRing; import de.hft.stuttgart.citydoctor2.datastructure.LinearRing.LinearRingType; import de.hft.stuttgart.citydoctor2.datastructure.Polygon; import de.hft.stuttgart.quality.model.properties.AbstractErrorProperty; import de.hft.stuttgart.quality.model.types.AbstractError; import de.hft.stuttgart.quality.model.types.HoleOutsideError; import de.hft.stuttgart.quality.model.types.ValidationResult; public class PolygonHoleOutsideErrorTest { @Test public void testConvertToQualityAdeDatastructure() { Polygon p1 = new ConcretePolygon(); GmlId p1Id = new GmlId("p1Id"); p1.setGmlId(p1Id); LinearRing r1 = new LinearRing(LinearRingType.INTERIOR); GmlId r1Id = new GmlId("r1Id"); r1.setGmlId(r1Id); List rings = new ArrayList<>(); rings.add(r1); PolygonHoleOutsideError err = new PolygonHoleOutsideError(p1, rings); ValidationResult result = new ValidationResult(); QualityAdeErrorVisitor visitor = new QualityAdeErrorVisitor(result); err.accept(visitor); List errors = result.getErrors(); assertEquals(1, errors.size()); AbstractError ae = errors.get(0).getObject(); assertTrue(ae instanceof HoleOutsideError); HoleOutsideError validationError = (HoleOutsideError) ae; assertEquals(p1Id.getGmlString(), validationError.getPolygonId()); assertEquals(r1Id.getGmlString(), validationError.getLinearRingId()); } }