diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e1676166b0bac280487e0347856a5a9a112be993..338b4f5c3524ddc1037adff68c616e491ade7080 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -83,12 +83,13 @@ maven-prepare-docker-contexts-apis-and-inspire-plu: maven-prepare-docker-contexts-cli: extends: .maven-prepare-docker-contexts variables: - mvnProjects: ':xplan-benutzerhandbuch,:xplan-betriebshandbuch,:xplan-cli,:xplan-database-docker,:xplan-webpages' + mvnProjects: ':xplan-benutzerhandbuch,:xplan-betriebshandbuch,:xplan-cli,:xplan-database-docker,:xplan-webpages,:xplan-validator-executor' artifacts: paths: # 2024.02.02: ~371M - './xplan-cli/target/docker/**/docker-build.tar.gz' - './xplan-documentation/**/target/docker/**/docker-build.tar.gz' - './xplan-database/xplan-database-docker/target/docker/**/docker-build.tar.gz' + - './xplan-validator/xplan-validator-executor/target/docker/**/docker-build.tar.gz' maven-prepare-docker-contexts-web-apps: extends: .maven-prepare-docker-contexts diff --git a/CHANGELOG.md b/CHANGELOG.md index 609cbe5000d54c0a78cd618d3bead662650d8814..eb20bcc4df395a1a8f28ca1eae618a8a0f72fb24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,14 +6,31 @@ Alle nennenswerten Änderungen an diesem Projekt werden in dieser Datei dokument | Release | Datum | Patch-Version | Dokumentation | Ende des Community Supports | Ende des erweiterten Supports (EoL) | |---------|------------|---------------|---------------------------------------|-----------------------------|-------------------------------------| -| 8.0 | 29.01.2025 | 8.0 | [Änderungen](#version-80-2025-01-29) | nächstes Release | 31.12.2025 | +| 8.0 | 29.01.2025 | 8.0.1 | [Änderungen](#version-801-2025-03-05) | nächstes Release | 31.12.2025 | | 7.2 | 14.05.2024 | 7.2.2 | [Änderungen](#version-722-2024-07-03) | 29.01.2025 | 30.06.2025 | | 7.1 | 13.12.2023 | 7.1.3 | [Änderungen](#version-713-2024-03-08) | 14.05.2024 | 31.12.2024 | | 7.0 | 16.08.2023 | 7.0.2 | [Änderungen](#version-702-2023-10-26) | 13.12.2023 | 30.06.2024 | | 6.0 | 28.10.2022 | 6.0.3 | [Änderungen](#version-603-2023-06-15) | 16.08.2023 | 31.12.2023 | +## Version 8.0.1 (2025-03-05) + +### Erweiterungen +- Konfigurationsoption für den Path-Style access für den Zugriff auf S3 hinzugefügt +- Konfigurationsoption für die Angabe eines RabbitMQ Virtual Host hinzugefügt + +### Fehlerbehebungen + +- Doppelte Angabe der _internalId_ im XPlanGML bei Import eines Plans über XPlanManagerAPI mit Query-Parameter internalId und internalId im XPlanGML behoben +- Fehlende Ausgabe der _internalId_ aus dem importierten XPlanGML durch XPlanManagerAPI behoben +- Fehlerhaftes Datumsformat in Textreferenzen in XPlanManagerAPI v2 behoben +- Fehlerhafter HTTP Statuscode bei Angabe eines invaliden Datumsformat in PUT/POST JSON-Model der XPlanManagerAPI behoben +- Fehler in XPlanMapServer durch Zugriff auf die Georeferenzen in der Tabelle _xplanmgr.plans_ behoben +- Ausgabe des Elements _rasterType_ in der Ressource /api/v2/info im XPlanManagerAPI entfernt + ## Version 8.0 (2025-01-29) +Neben der Aktualisierung auf Java 17 und die aktuelle deegree webservices Version 3.6 sind einige Erweiterungen und Verbesserungen an den Komponenten der xPlanBox vorgenommen worden. Ab Version 8.0 der xPlanBox ist ein S3-kompatibler Objektspeicher erforderlich. Mit der Version 8.0 wird die REST API v2 der Komponenten XPlanManagerAPI und XPlanValidatorAPI für die asynchrone Verarbeitung eingeführt. Als Message Broker ist [RabbitMQ](https://www.rabbitmq.com/) erforderlich. Bitte beachten Sie dazu die Hinweise im Betriebshandbuch, Kapitel Systemvoraussetzungen. + ### Breaking Changes An den Kartendiensten wurden Änderungen vorgenommen, die eine Anpassung an der Konfiguration von aufrufenden Clienten erfordern können. Bitte beachten Sie dazu die folgenden Hinweise. @@ -105,6 +122,7 @@ Im XPlanMapProxy wurden folgende Layer umbenannt: - Ausgabe von Validierungsfehlern als GeoJSON im XPlanValidator - Aufteilung des Validierungsberichts je Planwerk in einer XPlanGML-Datei - Erweiterung von XPlanValidatorAPI und XPlanManagerAPI um Prüfungen von referenzierten Rasterdaten auf gültiges CRS und Bildformat +- Aktualisierung der Validierungsregeln auf v1.1.10 - Verbesserung der Initialisierung des XPlanManager - Einführung der REST-API Version 2 (v2) für XPlanManagerAPI und XPlanValidatorAPI mit asynchroner Verarbeitung über RabbitMQ - Verbesserter Validierungsbericht in REST-API v2 diff --git a/gitlab/all-kaniko-builds.gitlab-ci.yml b/gitlab/all-kaniko-builds.gitlab-ci.yml index efc76c9037e0e35295ef7d6e2b591a7d50076813..3bd1554b1ab4ee3bf7df6dd191d8a56e5c578def 100644 --- a/gitlab/all-kaniko-builds.gitlab-ci.yml +++ b/gitlab/all-kaniko-builds.gitlab-ci.yml @@ -98,6 +98,7 @@ kaniko:xplan-inspireplu: tarGzFile: xplan-webservices/xplan-webservices-inspireplu/target/docker/xplanbox/xplan-webservices-inspireplu/tmp/docker-build.tar.gz needs: - maven-prepare-docker-contexts-apis-and-inspire-plu + - kaniko:xplan-docker-tomcat kaniko:xplan-manager-api: extends: .kaniko:build @@ -158,6 +159,15 @@ kaniko:xplan-tests-integration: needs: - maven-prepare-docker-contexts-others +kaniko:xplan-validator-executor: + extends: .kaniko:build + variables: + dockerImageName: xplan-validator-executor + tarGzFile: xplan-validator/xplan-validator-executor/target/docker/xplanbox/xplan-validator-executor/tmp/docker-build.tar.gz + needs: + - maven-prepare-docker-contexts-cli + - kaniko:xplan-docker-tomcat + kaniko:xplan-validator-api: extends: .kaniko:build variables: diff --git a/pom.xml b/pom.xml index 5c552adfab3e41aab6aee3a7bb82963f427725af..c1dde5c65e0bc3da8ebdf9d6a304dc7075d6cafc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplanbox</artifactId> <packaging>pom</packaging> - <version>8.0</version> + <version>8.0.1</version> <name>xPlanBox</name> <description>Software zur Verwaltung von XPlanGML Daten</description> <inceptionYear>2008</inceptionYear> @@ -30,10 +30,10 @@ <liquibase.version>4.30.0</liquibase.version> <liquibase.postgres.version>4.30.0.1</liquibase.postgres.version> <picocli.version>4.7.6</picocli.version> - <dependency-check.version>11.1.1</dependency-check.version> <!-- check cache location in gitlab/mvn-build-image.Dockerfile when updating --> + <dependency-check.version>12.1.0</dependency-check.version> <!-- check cache location in gitlab/mvn-build-image.Dockerfile when updating --> <swagger.version>2.2.27</swagger.version> <!-- overwrite from spring-boot-dependencies --> - <selenium.version>4.27.0</selenium.version> + <selenium.version>4.28.1</selenium.version> <!-- project properties --> <base.package.name>de.latlon.xplanbox</base.package.name> <distribution.repo.id>gitlab-maven</distribution.repo.id> @@ -1211,7 +1211,7 @@ <connection>scm:git:git@bitbucket.org:latlon/xplanbox.git</connection> <developerConnection>scm:git:git@bitbucket.org:latlon/xplanbox.git</developerConnection> <url>https://bitbucket.org/latlon/xplanbox</url> - <tag>xplanbox-8.0</tag> + <tag>xplanbox-8.0.1</tag> </scm> <repositories> diff --git a/xplan-cli/pom.xml b/xplan-cli/pom.xml index ed8a74467d7d6055230dbd5eea9d89be704fb105..acb9670ec214ce97092af1a24443dc7c34ad3bc3 100644 --- a/xplan-cli/pom.xml +++ b/xplan-cli/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplanbox</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-core/pom.xml b/xplan-core/pom.xml index 4362dfc922f0ede1fe7480735005133347017a66..434f809f9635d23bbf0eef9aa7adee411ef32fc5 100644 --- a/xplan-core/pom.xml +++ b/xplan-core/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplanbox</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <modules> diff --git a/xplan-core/xplan-core-api/pom.xml b/xplan-core/xplan-core-api/pom.xml index 172f3180f76368679957647198bd069c00184a49..58b711a294882e2a0bc9fa03aefa7507acb6b0eb 100644 --- a/xplan-core/xplan-core-api/pom.xml +++ b/xplan-core/xplan-core-api/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <dependencies> diff --git a/xplan-core/xplan-core-commons/pom.xml b/xplan-core/xplan-core-commons/pom.xml index 0a912fdcaa63ddabbef25c5b47f2066071fdb85e..f9e521b999a6d9e77fd91c355db0e25b85883483 100644 --- a/xplan-core/xplan-core-commons/pom.xml +++ b/xplan-core/xplan-core-commons/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/feature/FeatureCollectionManipulator.java b/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/feature/FeatureCollectionManipulator.java index d59cb80bfc3e022897079e04f4187114fe8ccc3e..4b24e22057d6fa4ddada933a0d6bbcb03df41670 100644 --- a/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/feature/FeatureCollectionManipulator.java +++ b/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/feature/FeatureCollectionManipulator.java @@ -20,6 +20,13 @@ */ package de.latlon.xplan.commons.feature; +import static org.deegree.commons.tom.primitive.BaseType.STRING; + +import javax.xml.namespace.QName; +import java.util.Date; +import java.util.Iterator; +import java.util.List; + import org.deegree.commons.tom.gml.property.Property; import org.deegree.commons.tom.gml.property.PropertyType; import org.deegree.commons.tom.primitive.PrimitiveValue; @@ -31,13 +38,6 @@ import org.deegree.feature.types.AppSchema; import org.deegree.feature.types.FeatureType; import org.deegree.feature.types.property.SimplePropertyType; -import javax.xml.namespace.QName; -import java.util.Date; -import java.util.Iterator; -import java.util.List; - -import static org.deegree.commons.tom.primitive.BaseType.STRING; - /** * Manipulates a deegree feature collection. * @@ -67,7 +67,7 @@ public class FeatureCollectionManipulator { Feature feature = iterator.next(); String nameOfFeature = feature.getName().getLocalPart(); if (isPlanFeature(nameOfFeature)) { - addInternalIdProperty(schema, internalId, feature); + addOrReplaceInternalIdProperty(schema, internalId, feature); } } } @@ -115,10 +115,18 @@ public class FeatureCollectionManipulator { } } - private void addInternalIdProperty(AppSchema schema, String internalId, Feature feature) { - Property property = createNewInternalIdProperty(internalId, feature); - int internalIdIndex = calculateIndex(schema, feature, INTERNAL_ID_PROP_NAME); - feature.getProperties().add(internalIdIndex, property); + private void addOrReplaceInternalIdProperty(AppSchema schema, String internalId, Feature feature) { + QName qName = new QName(feature.getName().getNamespaceURI(), INTERNAL_ID_PROP_NAME); + List<Property> properties = feature.getProperties(qName); + if (properties.isEmpty()) { + SimplePropertyType propertyType = new SimplePropertyType(qName, 0, 1, STRING, null, null); + Property property = new SimpleProperty(propertyType, internalId); + int internalIdIndex = calculateIndex(schema, feature, INTERNAL_ID_PROP_NAME); + feature.getProperties().add(internalIdIndex, property); + } + else { + properties.get(0).setValue(new PrimitiveValue(internalId)); + } } private void addMgrPlanIdProperty(int planId, Feature feature, FeatureType featureType) { @@ -145,13 +153,6 @@ public class FeatureCollectionManipulator { feature.getProperties().add(dateProp); } - private Property createNewInternalIdProperty(String internalId, Feature feature) { - String namespaceUri = feature.getName().getNamespaceURI(); - QName qName = new QName(namespaceUri, INTERNAL_ID_PROP_NAME); - SimplePropertyType propertyType = new SimplePropertyType(qName, 0, 1, STRING, null, null); - return new SimpleProperty(propertyType, internalId); - } - private int calculateIndex(AppSchema schema, Feature feature, String propertyName) { int internalIdIndex = 0; List<PropertyType> props = retrievePropertiesFromSchema(schema, feature); diff --git a/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/s3/S3Storage.java b/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/s3/S3Storage.java index e3ff6f7f61f6877a2fd4b9b454e4c2538678f824..6012ffbdfb93e9182ba555f5c54dfa4bf509ed44 100644 --- a/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/s3/S3Storage.java +++ b/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/s3/S3Storage.java @@ -64,13 +64,19 @@ public class S3Storage { public void setBucketExpirationDate(String id, int expirationInDays) throws StorageException { createBucketIfNotExists(); - BucketLifecycleConfiguration bucketLifecycleConfig = new BucketLifecycleConfiguration(); - BucketLifecycleConfiguration.Rule rule = new BucketLifecycleConfiguration.Rule().withId(id) - .withExpirationInDays(expirationInDays) - .withStatus(ENABLED) - .withFilter(new LifecycleFilter()); - bucketLifecycleConfig.withRules(rule); - client.setBucketLifecycleConfiguration(bucketName, bucketLifecycleConfig); + try { + BucketLifecycleConfiguration bucketLifecycleConfig = new BucketLifecycleConfiguration(); + BucketLifecycleConfiguration.Rule rule = new BucketLifecycleConfiguration.Rule().withId(id) + .withExpirationInDays(expirationInDays) + .withStatus(ENABLED) + .withFilter(new LifecycleFilter()); + bucketLifecycleConfig.withRules(rule); + client.setBucketLifecycleConfiguration(bucketName, bucketLifecycleConfig); + } + catch (Exception e) { + LOG.warn("Could not set expiration date for bucket {} to {} days: {}", bucketName, expirationInDays, + e.getMessage()); + } } /** diff --git a/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/s3/config/AmazonS3ReadOnlyContext.java b/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/s3/config/AmazonS3ReadOnlyContext.java index f89d92ad9d486d66a038c7619f9ee1ffa9f16438..553e6a907769fb2980d894e70dac2f45ac100672 100644 --- a/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/s3/config/AmazonS3ReadOnlyContext.java +++ b/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/s3/config/AmazonS3ReadOnlyContext.java @@ -8,12 +8,12 @@ * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program 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 General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% @@ -52,18 +52,17 @@ public class AmazonS3ReadOnlyContext { @Bean(destroyMethod = "shutdown") public AmazonS3 s3Client(AWSCredentials credentials, @Value("${xplanbox.s3.region:#{environment.XPLAN_S3_REGION}}") String region, - @Value("${xplanbox.s3.endpoint.url:#{environment.XPLAN_S3_ENDPOINT}}") String endpointUrl) { - - // TODO refactoring if/else to @ConditionalOnExpression with SpringBoot into 2 - // SpringBeans + @Value("${xplanbox.s3.endpoint.url:#{environment.XPLAN_S3_ENDPOINT}}") String endpointUrl, + @Value("${xplanbox.s3.pathStyleAccessEnabled:#{environment.XPLAN_S3_PATHSTYLEACCESS_ENABLED?:false}}") boolean pathStyleAccessEnabled) { + LOG.info("Using S3 url {} (region {}) path style access is {}", endpointUrl, region, + pathStyleAccessEnabled ? "enabled" : "disabled"); AmazonS3ClientBuilder builder = AmazonS3ClientBuilder.standard() - .withCredentials(new AWSStaticCredentialsProvider(credentials)); + .withCredentials(new AWSStaticCredentialsProvider(credentials)) + .withPathStyleAccessEnabled(pathStyleAccessEnabled); if (endpointUrl == null || endpointUrl.isEmpty()) { - LOG.info("Using S3 region {}", region); builder.withRegion(region); } else { - LOG.info("Using S3 url {} (region {})", endpointUrl); AwsClientBuilder.EndpointConfiguration endpoint = new AwsClientBuilder.EndpointConfiguration(endpointUrl, region); builder.withEndpointConfiguration(endpoint); diff --git a/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/util/FeatureCollectionUtils.java b/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/util/FeatureCollectionUtils.java index 86e31c0910bff8bdeca305a2a8b62ff02e6b9502..2c38af0dae4cbb3fce59df0957a99de074490284 100644 --- a/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/util/FeatureCollectionUtils.java +++ b/xplan-core/xplan-core-commons/src/main/java/de/latlon/xplan/commons/util/FeatureCollectionUtils.java @@ -183,6 +183,17 @@ public class FeatureCollectionUtils { return gemeinden; } + /** + * Retrieves the internalId of the passed {@link FeatureCollection}. + * @param fc XPlan-FeatureCollection, never <code>null</code> + * @return the internalId or <code>null</code> + */ + public static String retrieveInternalId(FeatureCollection fc, XPlanType type) { + Feature planFeature = findPlanFeature(fc, type); + String ns = planFeature.getName().getNamespaceURI(); + return getPropertyStringValue(planFeature, new QName(ns, "internalId")); + } + public static GenericXMLElement getXpGemeinde(Property f) { if (f instanceof GenericProperty) { List<TypedObjectNode> children = f.getChildren(); diff --git a/xplan-core/xplan-core-commons/src/test/java/de/latlon/xplan/commons/feature/FeatureCollectionManipulatorTest.java b/xplan-core/xplan-core-commons/src/test/java/de/latlon/xplan/commons/feature/FeatureCollectionManipulatorTest.java index 92ca6c096fd031fb13e9891c56d74d4247120dba..c9d2b38f8e428846e1e6a6026a0e79d7cbc97784 100644 --- a/xplan-core/xplan-core-commons/src/test/java/de/latlon/xplan/commons/feature/FeatureCollectionManipulatorTest.java +++ b/xplan-core/xplan-core-commons/src/test/java/de/latlon/xplan/commons/feature/FeatureCollectionManipulatorTest.java @@ -20,15 +20,17 @@ */ package de.latlon.xplan.commons.feature; +import static org.deegree.commons.tom.primitive.BaseType.STRING; + +import javax.xml.namespace.QName; +import java.util.ArrayList; +import java.util.Iterator; + import de.latlon.xplan.commons.XPlanSchemas; import de.latlon.xplan.commons.XPlanVersion; - import org.assertj.core.api.AbstractAssert; -import org.assertj.core.api.Assert; import org.assertj.core.api.Assertions; import org.deegree.commons.tom.gml.property.Property; -import org.deegree.commons.tom.gml.property.PropertyType; -import org.deegree.commons.xml.NamespaceBindings; import org.deegree.feature.Feature; import org.deegree.feature.FeatureCollection; import org.deegree.feature.GenericFeatureCollection; @@ -40,13 +42,6 @@ import org.deegree.feature.types.property.SimplePropertyType; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import javax.xml.namespace.QName; -import java.util.ArrayList; -import java.util.Iterator; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.deegree.commons.tom.primitive.BaseType.STRING; - /** * Tests for {@link de.latlon.xplan.commons.feature.FeatureCollectionManipulator}. * @@ -67,7 +62,7 @@ class FeatureCollectionManipulatorTest { private FeatureCollection fcWithoutNameProperty; - private FeatureCollectionManipulator featureCollectionManipulator = new FeatureCollectionManipulator(); + private final FeatureCollectionManipulator featureCollectionManipulator = new FeatureCollectionManipulator(); @BeforeEach void initialize() { @@ -120,6 +115,22 @@ class FeatureCollectionManipulatorTest { 1); } + @Test + void testProcessAdditionOfInternalIdWithBpPlanFeatureIncludingInternalId() { + FeatureCollection fcWithInternalId = new GenericFeatureCollection("fc_id1", createFeaturesWithInternalId()); + String propValue = "test_internal_id"; + featureCollectionManipulator.addInternalId(fcWithInternalId, createSchema(), propValue); + + assertThatFeatureCollection(fcWithInternalId).hasProperty(FEATURE_NAME_BP_PLAN, "internalId", propValue); + assertThatFeatureCollection(fcWithInternalId).hasExactlyOneProperty(FEATURE_NAME_BP_PLAN, "internalId"); + } + + private ArrayList<Feature> createFeaturesWithInternalId() { + ArrayList<Property> properties = createProperties(); + createAndAddProperty(properties, "internalId", "test_internalid_1"); + return createFeatures(properties); + } + private ArrayList<Feature> createFeaturesWithAllProperties() { ArrayList<Property> properties = createProperties(); return createFeatures(properties); @@ -132,7 +143,7 @@ class FeatureCollectionManipulatorTest { } private ArrayList<Property> createProperties() { - ArrayList<Property> properties = new ArrayList<Property>(); + ArrayList<Property> properties = new ArrayList<>(); createAndAddProperty(properties, "name", "test_name \"27\""); createAndAddProperty(properties, "nummer", "test_nummer"); createAndAddProperty(properties, "beschreibung", "test_beschreibung"); @@ -150,7 +161,7 @@ class FeatureCollectionManipulatorTest { } private ArrayList<Feature> createFeatures(ArrayList<Property> properties) { - ArrayList<Feature> features = new ArrayList<Feature>(); + ArrayList<Feature> features = new ArrayList<>(); createAndAddFeature(properties, features, FEATURE_NAME_BP_TEST, "feature1"); createAndAddFeature(properties, features, FEATURE_NAME_BP_PLAN, "feature2"); createAndAddFeature(properties, features, FEATURE_NAME_TEST_PLAN, "feature3"); @@ -160,7 +171,7 @@ class FeatureCollectionManipulatorTest { private void createAndAddFeature(ArrayList<Property> properties, ArrayList<Feature> features, String name, String featureName) { QName qName = new QName(NAMESPACE_URI, name); - FeatureType ft = new GenericFeatureType(qName, new ArrayList<PropertyType>(), false); + FeatureType ft = new GenericFeatureType(qName, new ArrayList<>(), false); Feature feature = ft.newFeature(featureName, properties, null); features.add(feature); } @@ -191,6 +202,18 @@ class FeatureCollectionManipulatorTest { throw failure("Feature with name " + featureName + " not found!"); } + FeatureCollectionAssert hasExactlyOneProperty(final String featureName, final String propertyName) { + Iterator<Feature> iterator = actual.iterator(); + while (iterator.hasNext()) { + Feature feature = iterator.next(); + if (feature.getType().getName().toString().contains(featureName)) { + Assertions.assertThat(feature.getProperties(new QName(NAMESPACE_URI, propertyName))).hasSize(1); + return this; + } + } + throw failure("Feature with name " + featureName + " not found!"); + } + FeatureCollectionAssert hasProperty(final String featureName, final String propertyName, final String propertyValue) { return hasProperty(featureName, propertyName, propertyValue, -1); @@ -224,10 +247,8 @@ class FeatureCollectionManipulatorTest { return index == -1 || index == position; } - FeatureCollectionAssert hasNoProperty(final String featureName, final String propertyName) { - Iterator<Feature> iterator = actual.iterator(); - while (iterator.hasNext()) { - Feature feature = iterator.next(); + void hasNoProperty(final String featureName, final String propertyName) { + for (Feature feature : actual) { if (feature.getType().getName().toString().contains(featureName)) { for (Property property : feature.getProperties()) { String name = property.getName().getLocalPart(); @@ -238,7 +259,6 @@ class FeatureCollectionManipulatorTest { } } } - return this; } } diff --git a/xplan-core/xplan-core-commons/src/test/java/de/latlon/xplan/commons/util/FeatureCollectionUtilsTest.java b/xplan-core/xplan-core-commons/src/test/java/de/latlon/xplan/commons/util/FeatureCollectionUtilsTest.java index aefa7e8a463f8b66fa096da10f8ce2ba08cb5f24..d93c67b1e07030cda8285ec44143c27e92289564 100644 --- a/xplan-core/xplan-core-commons/src/test/java/de/latlon/xplan/commons/util/FeatureCollectionUtilsTest.java +++ b/xplan-core/xplan-core-commons/src/test/java/de/latlon/xplan/commons/util/FeatureCollectionUtilsTest.java @@ -24,6 +24,7 @@ import static de.latlon.xplan.commons.XPlanType.BP_Plan; import static de.latlon.xplan.commons.util.FeatureCollectionUtils.findPlanFeature; import static de.latlon.xplan.commons.util.FeatureCollectionUtils.retrieveBereiche; import static de.latlon.xplan.commons.util.FeatureCollectionUtils.retrieveGemeinden; +import static de.latlon.xplan.commons.util.FeatureCollectionUtils.retrieveInternalId; import static de.latlon.xplan.commons.util.FeatureCollectionUtils.retrieveRechtsstand; import static org.assertj.core.api.Assertions.assertThat; @@ -120,6 +121,20 @@ class FeatureCollectionUtilsTest { assertThat(gemeindem.get(1).getOrtsteilName()).isEqualTo("999"); } + @Test + void testRetrieveInternalId_expectNull() throws Exception { + FeatureCollection fc = getMainFileAsFeatureCollection("xplan41/Eidelstedt_4_V4.zip"); + String internalId = retrieveInternalId(fc, BP_Plan); + assertThat(internalId).isNull(); + } + + @Test + void testRetrieveInternalId() throws Exception { + FeatureCollection fc = getFeatureCollection("xplan53/BPlan002_5-3-internalId.gml"); + String internalId = retrieveInternalId(fc, BP_Plan); + assertThat(internalId).isEqualTo("TESTID1"); + } + private FeatureCollection getMainFileAsFeatureCollection(String name) throws Exception { XPlanArchiveCreator archiveCreator = new XPlanArchiveCreator(); XPlanArchive archive = archiveCreator.createXPlanArchiveFromZip(name, @@ -127,4 +142,11 @@ class FeatureCollectionUtilsTest { return XPlanGmlParserBuilder.newBuilder().build().parseFeatureCollection(archive); } + private FeatureCollection getFeatureCollection(String name) throws Exception { + XPlanArchiveCreator archiveCreator = new XPlanArchiveCreator(); + XPlanArchive archive = archiveCreator.createXPlanArchiveFromGml(name, + getClass().getResourceAsStream("/testdata/" + name)); + return XPlanGmlParserBuilder.newBuilder().build().parseFeatureCollection(archive); + } + } diff --git a/xplan-core/xplan-core-commons/src/test/resources/testdata/xplan53/BPlan002_5-3-internalId.gml b/xplan-core/xplan-core-commons/src/test/resources/testdata/xplan53/BPlan002_5-3-internalId.gml new file mode 100644 index 0000000000000000000000000000000000000000..117ea3691f956b9dbc3bb74225235a797ecba7d9 --- /dev/null +++ b/xplan-core/xplan-core-commons/src/test/resources/testdata/xplan53/BPlan002_5-3-internalId.gml @@ -0,0 +1,1650 @@ +<?xml version='1.0' encoding='UTF-8'?> +<xplan:XPlanAuszug xmlns:xplan="http://www.xplanung.de/xplangml/5/3" xmlns:gml="http://www.opengis.net/gml/3.2" gml:id="id03cca746-e25b-49ea-a012-beaf85a63818"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557243.062 5936905.959</gml:lowerCorner> + <gml:upperCorner>557352.03 5937000.801</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_0fc51f62-6a65-474f-8284-5ce22a0c6b3a"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557332.326 5936921.811</gml:lowerCorner> + <gml:upperCorner>557332.326 5936921.811</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_667a1561-6dd1-4852-b856-794fa0033c11'--> + <gml:Point gml:id="GML_667a1561-6dd1-4852-b856-794fa0033c11" srsName="EPSG:25832"> + <gml:pos>557332.326 5936921.811</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_1a78c54e-9179-422e-b8e9-eb64dc7097b2"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557311.865 5936971.444</gml:lowerCorner> + <gml:upperCorner>557311.865 5936971.444</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_eb8b926e-4648-4055-8693-50a6f6cbc780'--> + <gml:Point gml:id="GML_eb8b926e-4648-4055-8693-50a6f6cbc780" srsName="EPSG:25832"> + <gml:pos>557311.865 5936971.444</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>2000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_2c5cd4ae-8269-4b2c-aa97-0a20d083a6a1"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557264.185 5936959.893</gml:lowerCorner> + <gml:upperCorner>557264.185 5936959.893</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_44abde69-ead4-462e-9dde-bfd6402a7b71'--> + <gml:Point gml:id="GML_44abde69-ead4-462e-9dde-bfd6402a7b71" srsName="EPSG:25832"> + <gml:pos>557264.185 5936959.893</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_35b41d25-91e7-4fbb-a736-2b8d45b4d92c"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557319.737 5936917.872</gml:lowerCorner> + <gml:upperCorner>557319.737 5936917.872</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_225626dc-a093-4cc6-b50f-a1c024bab6d5'--> + <gml:Point gml:id="GML_225626dc-a093-4cc6-b50f-a1c024bab6d5" srsName="EPSG:25832"> + <gml:pos>557319.737 5936917.872</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_399137a3-6ed8-469f-8467-1a299a626b6e"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557269.976 5936956.155</gml:lowerCorner> + <gml:upperCorner>557269.976 5936956.155</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_0332dc5c-dc2c-40a4-9034-9fc88b5296e0'--> + <gml:Point gml:id="GML_0332dc5c-dc2c-40a4-9034-9fc88b5296e0" srsName="EPSG:25832"> + <gml:pos>557269.976 5936956.155</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_45ac081e-d914-4b32-bd23-8f8b47fd6337"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557334.822 5936957.891</gml:lowerCorner> + <gml:upperCorner>557334.822 5936957.891</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_9bcd8eee-dad6-45c3-8d56-9f80c6047324'--> + <gml:Point gml:id="GML_9bcd8eee-dad6-45c3-8d56-9f80c6047324" srsName="EPSG:25832"> + <gml:pos>557334.822 5936957.891</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_58198dc5-410e-4899-aab1-6c9b49380d89"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557332.34 5936935.78</gml:lowerCorner> + <gml:upperCorner>557332.34 5936935.78</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_6023c8b4-4942-4740-87d1-3aa9b09ca39e'--> + <gml:Point gml:id="GML_6023c8b4-4942-4740-87d1-3aa9b09ca39e" srsName="EPSG:25832"> + <gml:pos>557332.34 5936935.78</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_6a9c220b-0e7d-4092-8efd-b3f49b47ad9a"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557295.236 5936933.449</gml:lowerCorner> + <gml:upperCorner>557295.236 5936933.449</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_4052e2d5-2518-4a32-9a52-fcc1ca4442d2'--> + <gml:Point gml:id="GML_4052e2d5-2518-4a32-9a52-fcc1ca4442d2" srsName="EPSG:25832"> + <gml:pos>557295.236 5936933.449</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_8ad15a94-adc2-45a0-8941-f65e1789a6e1"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557337.513 5936969.295</gml:lowerCorner> + <gml:upperCorner>557337.513 5936969.295</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_455a79de-2970-4117-a4e2-8ee7ee831699'--> + <gml:Point gml:id="GML_455a79de-2970-4117-a4e2-8ee7ee831699" srsName="EPSG:25832"> + <gml:pos>557337.513 5936969.295</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_93b6492f-38dd-4407-91e3-59e54f9ad479"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557252.747 5936958.095</gml:lowerCorner> + <gml:upperCorner>557252.747 5936958.095</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_cc338897-5801-4c83-be2b-cf00280aa057'--> + <gml:Point gml:id="GML_cc338897-5801-4c83-be2b-cf00280aa057" srsName="EPSG:25832"> + <gml:pos>557252.747 5936958.095</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>2000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_9d37066a-fc9c-49d1-a174-26ebe698544b"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557335.055 5936955.002</gml:lowerCorner> + <gml:upperCorner>557335.055 5936955.002</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_1aca33f5-aa8f-4267-a878-666e3356b734'--> + <gml:Point gml:id="GML_1aca33f5-aa8f-4267-a878-666e3356b734" srsName="EPSG:25832"> + <gml:pos>557335.055 5936955.002</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_b257263b-ef36-4e79-aec6-40828d294b89"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557317.273 5936926.333</gml:lowerCorner> + <gml:upperCorner>557317.273 5936926.333</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_39484e80-df87-4ebf-a116-b02ab47a86cb'--> + <gml:Point gml:id="GML_39484e80-df87-4ebf-a116-b02ab47a86cb" srsName="EPSG:25832"> + <gml:pos>557317.273 5936926.333</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_b3cd5c23-f203-430a-a3fa-c48c87dcd2bb"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557333.0 5936941.461</gml:lowerCorner> + <gml:upperCorner>557333.0 5936941.461</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_baf5f583-7298-4439-878f-c461eee22937'--> + <gml:Point gml:id="GML_baf5f583-7298-4439-878f-c461eee22937" srsName="EPSG:25832"> + <gml:pos>557333.0 5936941.461</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_b6df3477-0838-4dbf-9759-2465791431bc"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557297.018 5936968.178</gml:lowerCorner> + <gml:upperCorner>557297.018 5936968.178</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_e6777a01-b2a2-4ad3-bcca-f4ed629b0b03'--> + <gml:Point gml:id="GML_e6777a01-b2a2-4ad3-bcca-f4ed629b0b03" srsName="EPSG:25832"> + <gml:pos>557297.018 5936968.178</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>2000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_b848ccef-9c0a-48b5-9860-c564d3917061"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557335.397 5936951.59</gml:lowerCorner> + <gml:upperCorner>557335.397 5936951.59</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_cc418e1c-abd1-47d2-b645-3b847ba2ae88'--> + <gml:Point gml:id="GML_cc418e1c-abd1-47d2-b645-3b847ba2ae88" srsName="EPSG:25832"> + <gml:pos>557335.397 5936951.59</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_dbf33225-0a65-465d-98d5-c0be7d6b617e"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557328.375 5936928.357</gml:lowerCorner> + <gml:upperCorner>557328.375 5936928.357</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_883a44c2-b3b8-4e5d-8598-bafed529f704'--> + <gml:Point gml:id="GML_883a44c2-b3b8-4e5d-8598-bafed529f704" srsName="EPSG:25832"> + <gml:pos>557328.375 5936928.357</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_e012746e-38b8-4d63-94f8-18569750e3d9"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557259.315 5936950.212</gml:lowerCorner> + <gml:upperCorner>557259.315 5936950.212</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_a975b2dc-f9a4-4bc4-91c8-df77cfabe5c5'--> + <gml:Point gml:id="GML_a975b2dc-f9a4-4bc4-91c8-df77cfabe5c5" srsName="EPSG:25832"> + <gml:pos>557259.315 5936950.212</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_e4d0b31a-ea35-4506-b96f-9ab941d6174d"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557315.82 5936977.616</gml:lowerCorner> + <gml:upperCorner>557315.82 5936977.616</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_b7952f42-1010-41dd-b546-eae6546ac983'--> + <gml:Point gml:id="GML_b7952f42-1010-41dd-b546-eae6546ac983" srsName="EPSG:25832"> + <gml:pos>557315.82 5936977.616</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>2000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_e5c95662-3bad-405c-9f9c-05645dbbfba9"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557275.595 5936943.471</gml:lowerCorner> + <gml:upperCorner>557275.595 5936943.471</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_91debb58-8b47-4775-b174-c906f2302b3f'--> + <gml:Point gml:id="GML_91debb58-8b47-4775-b174-c906f2302b3f" srsName="EPSG:25832"> + <gml:pos>557275.595 5936943.471</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_e6859531-f92b-44b0-9e23-d56e82a63759"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557334.972 5936939.567</gml:lowerCorner> + <gml:upperCorner>557334.972 5936939.567</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_21fecae0-2a9f-4a6e-9819-357473d16f90'--> + <gml:Point gml:id="GML_21fecae0-2a9f-4a6e-9819-357473d16f90" srsName="EPSG:25832"> + <gml:pos>557334.972 5936939.567</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_ebce8a69-eb87-4165-8691-eb8c5d2480a4"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557334.275 5936972.765</gml:lowerCorner> + <gml:upperCorner>557334.275 5936972.765</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_55ff7a59-8461-4905-8712-4850efff1528'--> + <gml:Point gml:id="GML_55ff7a59-8461-4905-8712-4850efff1528" srsName="EPSG:25832"> + <gml:pos>557334.275 5936972.765</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_ed47f67d-ed30-4e36-985a-2a2611445764"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557273.674 5936962.69</gml:lowerCorner> + <gml:upperCorner>557273.674 5936962.69</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_8d7574a5-5d55-456e-9776-dfe9a1d783b5'--> + <gml:Point gml:id="GML_8d7574a5-5d55-456e-9776-dfe9a1d783b5" srsName="EPSG:25832"> + <gml:pos>557273.674 5936962.69</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>1000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_AnpflanzungBindungErhaltung gml:id="GML_f1860701-0776-4cd6-af09-791abcbb6f80"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557286.207 5936969.124</gml:lowerCorner> + <gml:upperCorner>557286.207 5936969.124</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_eadd7333-bae9-4379-ac48-d113aa443e6e'--> + <gml:Point gml:id="GML_eadd7333-bae9-4379-ac48-d113aa443e6e" srsName="EPSG:25832"> + <gml:pos>557286.207 5936969.124</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + <xplan:massnahme>2000</xplan:massnahme> + <xplan:gegenstand>1000</xplan:gegenstand> + <xplan:istAusgleich>false</xplan:istAusgleich> + </xplan:BP_AnpflanzungBindungErhaltung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_BauGrenze gml:id="GML_0a9d432b-b65e-454c-9f35-e8c4f55acd0f"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557310.823 5936931.207</gml:lowerCorner> + <gml:upperCorner>557327.575 5936967.95</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:ebene>0</xplan:ebene> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_df84cd17-9b09-4522-95de-a03c76a20a6d'--> + <gml:Curve gml:id="GML_df84cd17-9b09-4522-95de-a03c76a20a6d" srsName="EPSG:25832"> + <gml:segments> + <gml:LineStringSegment interpolation="linear"> + <gml:posList>557323.539 5936931.207 557327.575 5936966.477 557314.892 5936967.95 557310.823 5936932.677 557323.539 5936931.207</gml:posList> + </gml:LineStringSegment> + </gml:segments> + </gml:Curve> + </xplan:position> + </xplan:BP_BauGrenze> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_BauGrenze gml:id="GML_954e03f8-4888-459e-b192-66edf5cd4b10"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557284.229 5936937.668</gml:lowerCorner> + <gml:upperCorner>557299.272 5936959.488</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:ebene>0</xplan:ebene> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_8e114075-4df3-40be-a68e-53aa32eebda6'--> + <gml:Curve gml:id="GML_8e114075-4df3-40be-a68e-53aa32eebda6" srsName="EPSG:25832"> + <gml:segments> + <gml:LineStringSegment interpolation="linear"> + <gml:posList>557296.947 5936937.668 557299.272 5936958.036 557286.554 5936959.488 557284.229 5936939.12 557296.947 5936937.668</gml:posList> + </gml:LineStringSegment> + </gml:segments> + </gml:Curve> + </xplan:position> + </xplan:BP_BauGrenze> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_BaugebietsTeilFlaeche gml:id="GML_c3e0bb6a-9e1d-4461-8995-fe1eebf5bfcd"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557273.326 5936921.698</gml:lowerCorner> + <gml:upperCorner>557330.77 5936982.349</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:ebene>0</xplan:ebene> + <xplan:hoehenangabe> + <xplan:XP_Hoehenangabe> + <xplan:hoehenbezug>1000</xplan:hoehenbezug> + <xplan:bezugspunkt>2000</xplan:bezugspunkt> + <xplan:h uom="m">50</xplan:h> + </xplan:XP_Hoehenangabe> + </xplan:hoehenangabe> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_8b8ff5aa-cafb-4740-a12a-adc5ee16856b"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_0c35b24f-6cf5-4e98-9460-a7b2f4e37766"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_ed1db422-4904-4271-a048-1832df70c070"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_09ae3866-c6fc-427c-baf1-2c88200f54b6"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_684fb51c-3d0f-4993-8ff0-dc3b62686b88"/> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_15da3577-65bc-4d3e-b36d-69b3364d8027"/> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_3c86cc25-e5d6-4672-b5f3-f433f0ade539"/> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_6ffd7105-ba11-41bd-8ec5-c5c1bcc962c4"/> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_102950a6-e58f-492e-a576-a383c2902330"/> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_60722a9c-5b21-4eb7-983f-ffe65830a990"/> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_91d49462-d233-47df-9ac1-f4d37c68af8f"/> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c6413128-a7f6-4420-86fa-5fceb7ce283b"/> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_5d50c47d-d8a4-40ad-93fb-b17bcc1b6849"/> + <xplan:position> + <!--Inlined geometry 'GML_cde23e34-38f8-44d9-985e-cde564222f94'--> + <gml:Polygon gml:id="GML_cde23e34-38f8-44d9-985e-cde564222f94" srsName="EPSG:25832"> + <gml:exterior> + <gml:LinearRing> + <gml:posList>557327.161 5936981.911 557321.72 5936982.349 557315.876 5936981.17 557303.85 5936976.479 557301.814 5936975.865 557282.799 5936970.132 557282.027 5936969.9 557281.151 5936962.053 557275.7 5936962.653 557273.326 5936942.061 557278.277 5936939.821 557281.666 5936938.219 557284.957 5936936.594 557291.454 5936933.297 557303.403 5936926.263 557310.6 5936921.698 557311.567 5936930.039 557326.285 5936928.337 557330.77 5936967.193 557330.759 5936967.721 557330.62 5936968.23 557330.36 5936968.69 557329.996 5936969.071 557326.077 5936972.271 557327.161 5936981.911</gml:posList> + </gml:LinearRing> + </gml:exterior> + </gml:Polygon> + </xplan:position> + <xplan:flaechenschluss>true</xplan:flaechenschluss> + <xplan:MinGRWohneinheit uom="m2">600</xplan:MinGRWohneinheit> + <xplan:GFZ>0.4</xplan:GFZ> + <xplan:Z>2</xplan:Z> + <xplan:besondereArtDerBaulNutzung>1100</xplan:besondereArtDerBaulNutzung> + </xplan:BP_BaugebietsTeilFlaeche> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_Bereich gml:id="GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557243.062 5936905.959</gml:lowerCorner> + <gml:upperCorner>557352.03 5937000.801</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:nummer>0</xplan:nummer> + <xplan:rasterBasis xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c563dcea-63fe-40a0-95c6-36e7db11c444"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_ed47f67d-ed30-4e36-985a-2a2611445764"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_8ad15a94-adc2-45a0-8941-f65e1789a6e1"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_ce98283b-08ad-46e9-b702-c0496a87ea63"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_435c123d-74af-4da3-9b08-2230d60f4afc"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_e5c95662-3bad-405c-9f9c-05645dbbfba9"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_b257263b-ef36-4e79-aec6-40828d294b89"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_b6df3477-0838-4dbf-9759-2465791431bc"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_377d43a1-8c65-4039-bd90-889d75a76b87"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_0a9d432b-b65e-454c-9f35-e8c4f55acd0f"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_399137a3-6ed8-469f-8467-1a299a626b6e"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_e4d0b31a-ea35-4506-b96f-9ab941d6174d"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_11a36ea8-653e-4b2a-9b24-ba5429c9faa6"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c3e0bb6a-9e1d-4461-8995-fe1eebf5bfcd"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_e6859531-f92b-44b0-9e23-d56e82a63759"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_f1860701-0776-4cd6-af09-791abcbb6f80"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_f5c89321-8a1b-4562-8364-b2cccf41dc3c"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_488c129a-c949-4c2b-8532-298829f8815f"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_e9a3d8e9-50dc-4b84-bf0a-101182add402"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_5751cd04-1a14-4c04-86e8-3d08e3cfc690"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_3fe2035b-5c40-4fbd-b937-bbca2b9b1d4e"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_93b6492f-38dd-4407-91e3-59e54f9ad479"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_9d37066a-fc9c-49d1-a174-26ebe698544b"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_d1b7b2a9-184e-46c1-b326-df611ecee4b2"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_209d05c2-6a1c-4d7c-8139-9c7f71dfcc13"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_45ac081e-d914-4b32-bd23-8f8b47fd6337"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_b848ccef-9c0a-48b5-9860-c564d3917061"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_dbf33225-0a65-465d-98d5-c0be7d6b617e"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_f553de4c-97e6-4f45-a5c2-a89886d18301"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_b3cd5c23-f203-430a-a3fa-c48c87dcd2bb"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_382429ee-f25f-4d00-b826-8e804ddbdebc"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_ebce8a69-eb87-4165-8691-eb8c5d2480a4"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_1a78c54e-9179-422e-b8e9-eb64dc7097b2"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_09d5413d-ccd7-40a1-8298-80bb22850dd3"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_954e03f8-4888-459e-b192-66edf5cd4b10"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_6a9c220b-0e7d-4092-8efd-b3f49b47ad9a"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_e012746e-38b8-4d63-94f8-18569750e3d9"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_5824d0ca-ea90-441f-830c-c070f1a0aa05"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_35b41d25-91e7-4fbb-a736-2b8d45b4d92c"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_0fc51f62-6a65-474f-8284-5ce22a0c6b3a"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_58198dc5-410e-4899-aab1-6c9b49380d89"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_2c5cd4ae-8269-4b2c-aa97-0a20d083a6a1"/> + <xplan:planinhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_7ef4531b-e85e-40e4-8c09-0e19a3ec5177"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_042e6f7a-e1c3-4569-b5a5-de1b996e5ba7"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_730b4676-8840-4cbd-a2e0-7e351cc61965"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_2dea9178-9249-4fd3-b4ba-ba48bfc27ecd"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_8b8ff5aa-cafb-4740-a12a-adc5ee16856b"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_7087c593-4639-4fef-8b91-773ed64df8cf"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_0c35b24f-6cf5-4e98-9460-a7b2f4e37766"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_ed1db422-4904-4271-a048-1832df70c070"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_a39fac97-534a-4266-9e20-b25c1008a015"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_5e033921-530a-47b1-84e3-a508f45c2d51"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_9fa3a84d-a7ed-4e6d-b75e-8611dbbe3097"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_09ae3866-c6fc-427c-baf1-2c88200f54b6"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_ab6dc9c7-febf-4465-b4c6-fc60838ed212"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_794de089-2788-4cb4-ab79-3ba5f7639710"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_b87933a3-7241-47d2-b1f3-ccceb7edeee5"/> + <xplan:praesentationsobjekt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c47097ae-79f6-4001-841b-da9b80979252"/> + <xplan:gehoertZuPlan xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_fe4856a1-1a37-4eec-bae5-1685f1a2feb2"/> + </xplan:BP_Bereich> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_EingriffsBereich gml:id="GML_435c123d-74af-4da3-9b08-2230d60f4afc"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557248.588 5936911.596</gml:lowerCorner> + <gml:upperCorner>557339.808 5936982.349</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:text>Grundstücke denen Flächen mit landschaftspflegerischen Ausgleichs- und Ersatzmaßnahmen zugeordnet sind</xplan:text> + <xplan:gliederung2>Z</xplan:gliederung2> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_9fa3a84d-a7ed-4e6d-b75e-8611dbbe3097"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c6413128-a7f6-4420-86fa-5fceb7ce283b"/> + <xplan:position> + <!--Inlined geometry 'GML_6e77ae96-9884-48be-855d-71d274399c4b'--> + <gml:Polygon gml:id="GML_6e77ae96-9884-48be-855d-71d274399c4b" srsName="EPSG:25832"> + <gml:exterior> + <gml:LinearRing> + <gml:posList>557248.791 5936962.546 557248.721 5936962.244 557248.628 5936961.678 557248.588 5936961.154 557248.596 5936960.519 557248.665 5936959.903 557248.816 5936959.205 557249.051 5936958.51 557250.405 5936954.713 557250.635 5936954.194 557250.89 5936953.7 557251.197 5936953.184 557251.493 5936952.746 557251.875 5936952.249 557252.304 5936951.762 557252.673 5936951.391 557253.172 5936950.948 557253.708 5936950.537 557254.369 5936950.105 557255.024 5936949.748 557256.016 5936949.325 557264.737 5936945.806 557273.326 5936942.061 557278.277 5936939.821 557281.666 5936938.219 557284.957 5936936.594 557291.454 5936933.297 557303.403 5936926.263 557310.6 5936921.698 557314.46 5936919.234 557318.283 5936916.733 557322.093 5936914.178 557325.854 5936911.596 557326.21 5936913.258 557333.18 5936912.819 557334.723 5936925.766 557339.07 5936940.522 557339.808 5936948.038 557339.627 5936968.536 557338.756 5936972.394 557336.499 5936975.641 557331.253 5936980.259 557327.65 5936981.872 557321.72 5936982.349 557315.876 5936981.17 557303.85 5936976.479 557301.814 5936975.865 557282.799 5936970.132 557282.027 5936969.9 557281.355 5936969.697 557273.435 5936969.011 557265.387 5936967.74 557248.878 5936962.848 557248.791 5936962.546</gml:posList> + </gml:LinearRing> + </gml:exterior> + </gml:Polygon> + </xplan:position> + <xplan:flaechenschluss>false</xplan:flaechenschluss> + </xplan:BP_EingriffsBereich> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_GruenFlaeche gml:id="GML_382429ee-f25f-4d00-b826-8e804ddbdebc"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557310.6 5936911.596</gml:lowerCorner> + <gml:upperCorner>557339.808 5936981.911</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:text>Garten</xplan:text> + <xplan:ebene>0</xplan:ebene> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_5e033921-530a-47b1-84e3-a508f45c2d51"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_f145a635-83f9-4455-bf23-fadadbb78936"/> + <xplan:position> + <!--Inlined geometry 'GML_c237f7d4-6464-4f86-95b0-4f7149cf90be'--> + <gml:Polygon gml:id="GML_c237f7d4-6464-4f86-95b0-4f7149cf90be" srsName="EPSG:25832"> + <gml:exterior> + <gml:LinearRing> + <gml:posList>557314.46 5936919.234 557318.283 5936916.733 557322.093 5936914.178 557325.854 5936911.596 557326.21 5936913.258 557333.18 5936912.819 557334.723 5936925.766 557339.07 5936940.522 557339.808 5936948.038 557339.627 5936968.536 557338.756 5936972.394 557336.499 5936975.641 557331.253 5936980.259 557327.65 5936981.872 557327.161 5936981.911 557326.077 5936972.271 557329.996 5936969.071 557330.36 5936968.69 557330.62 5936968.23 557330.759 5936967.721 557330.77 5936967.193 557326.285 5936928.337 557311.567 5936930.039 557310.6 5936921.698 557314.46 5936919.234</gml:posList> + </gml:LinearRing> + </gml:exterior> + </gml:Polygon> + </xplan:position> + <xplan:flaechenschluss>true</xplan:flaechenschluss> + <xplan:nutzungsform>1000</xplan:nutzungsform> + </xplan:BP_GruenFlaeche> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_GruenFlaeche gml:id="GML_5824d0ca-ea90-441f-830c-c070f1a0aa05"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557248.588 5936942.061</gml:lowerCorner> + <gml:upperCorner>557282.027 5936969.9</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:text>Garten</xplan:text> + <xplan:ebene>0</xplan:ebene> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_a39fac97-534a-4266-9e20-b25c1008a015"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_f145a635-83f9-4455-bf23-fadadbb78936"/> + <xplan:position> + <!--Inlined geometry 'GML_8de294a1-7355-4dc0-a5c6-c048f219c028'--> + <gml:Polygon gml:id="GML_8de294a1-7355-4dc0-a5c6-c048f219c028" srsName="EPSG:25832"> + <gml:exterior> + <gml:LinearRing> + <gml:posList>557281.355 5936969.697 557273.435 5936969.011 557265.387 5936967.74 557248.878 5936962.848 557248.791 5936962.546 557248.721 5936962.244 557248.628 5936961.678 557248.588 5936961.154 557248.596 5936960.519 557248.665 5936959.903 557248.816 5936959.205 557249.051 5936958.51 557250.405 5936954.713 557250.635 5936954.194 557250.89 5936953.7 557251.197 5936953.184 557251.493 5936952.746 557251.875 5936952.249 557252.304 5936951.762 557252.673 5936951.391 557253.172 5936950.948 557253.708 5936950.537 557254.369 5936950.105 557255.024 5936949.748 557256.016 5936949.325 557264.737 5936945.806 557273.326 5936942.061 557275.7 5936962.653 557281.151 5936962.053 557282.027 5936969.9 557281.355 5936969.697</gml:posList> + </gml:LinearRing> + </gml:exterior> + </gml:Polygon> + </xplan:position> + <xplan:flaechenschluss>true</xplan:flaechenschluss> + <xplan:nutzungsform>1000</xplan:nutzungsform> + </xplan:BP_GruenFlaeche> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_HoehenMass gml:id="GML_11a36ea8-653e-4b2a-9b24-ba5429c9faa6"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557279.643 5936957.718</gml:lowerCorner> + <gml:upperCorner>557279.643 5936957.718</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:text>Straßenhöhe bezogen auf NHN</xplan:text> + <xplan:hoehenangabe> + <xplan:XP_Hoehenangabe> + <xplan:hoehenbezug>1000</xplan:hoehenbezug> + <xplan:h uom="m">39.6</xplan:h> + </xplan:XP_Hoehenangabe> + </xplan:hoehenangabe> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_3cb49006-831e-41ba-a8f7-14c1758fcfa8'--> + <gml:Point gml:id="GML_3cb49006-831e-41ba-a8f7-14c1758fcfa8" srsName="EPSG:25832"> + <gml:pos>557279.643 5936957.718</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + </xplan:BP_HoehenMass> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_HoehenMass gml:id="GML_3fe2035b-5c40-4fbd-b937-bbca2b9b1d4e"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557302.401 5936982.865</gml:lowerCorner> + <gml:upperCorner>557302.401 5936982.865</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:text>Straßenhöhe bezogen auf NHN</xplan:text> + <xplan:hoehenangabe> + <xplan:XP_Hoehenangabe> + <xplan:hoehenbezug>3500</xplan:hoehenbezug> + <xplan:h uom="m">39.2</xplan:h> + </xplan:XP_Hoehenangabe> + </xplan:hoehenangabe> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_7ebf9710-5c2c-43a9-a9e0-403bf7f47759'--> + <gml:Point gml:id="GML_7ebf9710-5c2c-43a9-a9e0-403bf7f47759" srsName="EPSG:25832"> + <gml:pos>557302.401 5936982.865</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + </xplan:BP_HoehenMass> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_HoehenMass gml:id="GML_ce98283b-08ad-46e9-b702-c0496a87ea63"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557341.29 5936931.253</gml:lowerCorner> + <gml:upperCorner>557341.29 5936931.253</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:text>Straßenhöhe bezogen auf NHN</xplan:text> + <xplan:hoehenangabe> + <xplan:XP_Hoehenangabe> + <xplan:hoehenbezug>1000</xplan:hoehenbezug> + <xplan:h uom="m">39.1</xplan:h> + </xplan:XP_Hoehenangabe> + </xplan:hoehenangabe> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_70492997-57b9-46c5-a45f-2e42352bf4ba'--> + <gml:Point gml:id="GML_70492997-57b9-46c5-a45f-2e42352bf4ba" srsName="EPSG:25832"> + <gml:pos>557341.29 5936931.253</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + </xplan:BP_HoehenMass> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_HoehenMass gml:id="GML_f5c89321-8a1b-4562-8364-b2cccf41dc3c"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557273.66 5936937.873</gml:lowerCorner> + <gml:upperCorner>557273.66 5936937.873</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:text>Straßenhöhe bezogen auf NHN</xplan:text> + <xplan:hoehenangabe> + <xplan:XP_Hoehenangabe> + <xplan:hoehenbezug>1000</xplan:hoehenbezug> + <xplan:h uom="m">38.8</xplan:h> + </xplan:XP_Hoehenangabe> + </xplan:hoehenangabe> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_4c10da30-1e39-4bbc-8d6a-f7d1e9e9dbfd'--> + <gml:Point gml:id="GML_4c10da30-1e39-4bbc-8d6a-f7d1e9e9dbfd" srsName="EPSG:25832"> + <gml:pos>557273.66 5936937.873</gml:pos> + </gml:Point> + </xplan:position> + <xplan:nordwinkel uom="grad">0</xplan:nordwinkel> + </xplan:BP_HoehenMass> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_KennzeichnungsFlaeche gml:id="GML_d1b7b2a9-184e-46c1-b326-df611ecee4b2"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557248.588 5936911.596</gml:lowerCorner> + <gml:upperCorner>557339.808 5936982.349</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>5000</xplan:rechtscharakter> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c6413128-a7f6-4420-86fa-5fceb7ce283b"/> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_62103eff-5b29-4ba8-bc3f-517b910f8e53"/> + <xplan:position> + <!--Inlined geometry 'GML_f55f17cd-22ec-4c06-a374-62e7c03d7f29'--> + <gml:Polygon gml:id="GML_f55f17cd-22ec-4c06-a374-62e7c03d7f29" srsName="EPSG:25832"> + <gml:exterior> + <gml:LinearRing> + <gml:posList>557248.791 5936962.546 557248.721 5936962.244 557248.628 5936961.678 557248.588 5936961.154 557248.596 5936960.519 557248.665 5936959.903 557248.816 5936959.205 557249.051 5936958.51 557250.405 5936954.713 557250.635 5936954.194 557250.89 5936953.7 557251.197 5936953.184 557251.493 5936952.746 557251.875 5936952.249 557252.304 5936951.762 557252.673 5936951.391 557253.172 5936950.948 557253.708 5936950.537 557254.369 5936950.105 557255.024 5936949.748 557256.016 5936949.325 557264.737 5936945.806 557273.326 5936942.061 557278.277 5936939.821 557281.666 5936938.219 557284.957 5936936.594 557291.454 5936933.297 557303.403 5936926.263 557310.6 5936921.698 557314.46 5936919.234 557318.283 5936916.733 557322.093 5936914.178 557325.854 5936911.596 557326.21 5936913.258 557333.18 5936912.819 557334.723 5936925.766 557339.07 5936940.522 557339.808 5936948.038 557339.627 5936968.536 557338.756 5936972.394 557336.499 5936975.641 557331.253 5936980.259 557327.65 5936981.872 557321.72 5936982.349 557315.876 5936981.17 557303.85 5936976.479 557301.814 5936975.865 557282.799 5936970.132 557282.027 5936969.9 557281.355 5936969.697 557273.435 5936969.011 557265.387 5936967.74 557248.878 5936962.848 557248.791 5936962.546</gml:posList> + </gml:LinearRing> + </gml:exterior> + </gml:Polygon> + </xplan:position> + <xplan:flaechenschluss>false</xplan:flaechenschluss> + <xplan:zweckbestimmung>8000</xplan:zweckbestimmung> + </xplan:BP_KennzeichnungsFlaeche> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_NebenanlagenFlaeche gml:id="GML_09d5413d-ccd7-40a1-8298-80bb22850dd3"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557281.151 5936959.004</gml:lowerCorner> + <gml:upperCorner>557309.674 5936975.865</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_ab6dc9c7-febf-4465-b4c6-fc60838ed212"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_6ffd7105-ba11-41bd-8ec5-c5c1bcc962c4"/> + <xplan:position> + <!--Inlined geometry 'GML_a75edf4d-8903-4141-b104-710b2e2c2c58'--> + <gml:Polygon gml:id="GML_a75edf4d-8903-4141-b104-710b2e2c2c58" srsName="EPSG:25832"> + <gml:exterior> + <gml:LinearRing> + <gml:posList>557282.799 5936970.132 557282.027 5936969.9 557281.151 5936962.053 557307.997 5936959.004 557309.674 5936974.034 557302.158 5936974.881 557301.814 5936975.865 557282.799 5936970.132</gml:posList> + </gml:LinearRing> + </gml:exterior> + </gml:Polygon> + </xplan:position> + <xplan:flaechenschluss>false</xplan:flaechenschluss> + <xplan:zweckbestimmung>1000</xplan:zweckbestimmung> + </xplan:BP_NebenanlagenFlaeche> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_NutzungsartenGrenze gml:id="GML_5751cd04-1a14-4c04-86e8-3d08e3cfc690"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557328.596 5936947.081</gml:lowerCorner> + <gml:upperCorner>557339.71 5936948.363</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_486dce28-e668-4fe6-8c8a-a9b817b1fa9d'--> + <gml:Curve gml:id="GML_486dce28-e668-4fe6-8c8a-a9b817b1fa9d" srsName="EPSG:25832"> + <gml:segments> + <gml:LineStringSegment interpolation="linear"> + <gml:posList>557328.596 5936948.363 557339.71 5936947.081</gml:posList> + </gml:LineStringSegment> + </gml:segments> + </gml:Curve> + </xplan:position> + <xplan:typ>9999</xplan:typ> + </xplan:BP_NutzungsartenGrenze> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_NutzungsartenGrenze gml:id="GML_e9a3d8e9-50dc-4b84-bf0a-101182add402"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557328.471 5936945.991</gml:lowerCorner> + <gml:upperCorner>557339.58 5936947.274</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_532e00f2-f9c0-4b32-81f6-5e4dda715cc2'--> + <gml:Curve gml:id="GML_532e00f2-f9c0-4b32-81f6-5e4dda715cc2" srsName="EPSG:25832"> + <gml:segments> + <gml:LineStringSegment interpolation="linear"> + <gml:posList>557328.471 5936947.274 557339.58 5936945.991</gml:posList> + </gml:LineStringSegment> + </gml:segments> + </gml:Curve> + </xplan:position> + <xplan:typ>9999</xplan:typ> + </xplan:BP_NutzungsartenGrenze> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_Plan gml:id="GML_fe4856a1-1a37-4eec-bae5-1685f1a2feb2"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557243.062 5936905.959</gml:lowerCorner> + <gml:upperCorner>557352.03 5937000.801</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:name>BPlan002_5-3</xplan:name> + <xplan:internalId>TESTID1</xplan:internalId> + <xplan:technHerstellDatum>2020-09-10</xplan:technHerstellDatum> + <xplan:erstellungsMassstab>1000</xplan:erstellungsMassstab> + <xplan:raeumlicherGeltungsbereich> + <!--Inlined geometry 'GML_306679b7-39fa-4cf4-9907-c61c6102d458'--> + <gml:MultiSurface gml:id="GML_306679b7-39fa-4cf4-9907-c61c6102d458" srsName="EPSG:25832"> + <gml:surfaceMember> + <gml:Polygon gml:id="GML_4908ccda-9296-4249-a752-c9fdb3698731" srsName="EPSG:25832"> + <gml:exterior> + <gml:LinearRing> + <gml:posList>557249.959 5936945.345 557268.735 5936937.278 557287.56 5936929.18 557291.839 5936926.58 557315.773 5936912.04 557322.859 5936907.734 557341.699 5936905.959 557342.14 5936914.554 557352.03 5937000.801 557345.86 5936998.938 557243.062 5936967.903 557249.959 5936945.345</gml:posList> + </gml:LinearRing> + </gml:exterior> + </gml:Polygon> + </gml:surfaceMember> + </gml:MultiSurface> + </xplan:raeumlicherGeltungsbereich> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c6413128-a7f6-4420-86fa-5fceb7ce283b"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_684fb51c-3d0f-4993-8ff0-dc3b62686b88"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_5ba5da80-515e-44f5-95dc-8f4270638840"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_8270cc97-0729-4664-bea1-6e4d70064d09"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_15da3577-65bc-4d3e-b36d-69b3364d8027"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_8a5370e5-d396-4fb2-8b78-09bfcbb1ff4c"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_62103eff-5b29-4ba8-bc3f-517b910f8e53"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c2ed4d85-41ef-470d-a176-f3cdd45a7066"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_3c86cc25-e5d6-4672-b5f3-f433f0ade539"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_6ffd7105-ba11-41bd-8ec5-c5c1bcc962c4"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_102950a6-e58f-492e-a576-a383c2902330"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_60722a9c-5b21-4eb7-983f-ffe65830a990"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_7d7e15fb-c55d-47ce-9a16-dd72dfd39d6f"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_91d49462-d233-47df-9ac1-f4d37c68af8f"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_24d91abb-1f19-4a7d-8903-b1aea424e2c1"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_5d50c47d-d8a4-40ad-93fb-b17bcc1b6849"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_f145a635-83f9-4455-bf23-fadadbb78936"/> + <xplan:texte xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_a7e0ecd6-ba53-44a2-9103-9bf204c7119f"/> + <xplan:gemeinde> + <xplan:XP_Gemeinde> + <xplan:ags>02000000</xplan:ags> + <xplan:gemeindeName>Freie und Hansestadt Hamburg</xplan:gemeindeName> + <xplan:ortsteilName>221</xplan:ortsteilName> + </xplan:XP_Gemeinde> + </xplan:gemeinde> + <xplan:planArt>1000</xplan:planArt> + <xplan:verfahren>1000</xplan:verfahren> + <xplan:rechtsstand>50001</xplan:rechtsstand> + <xplan:aenderungenBisDatum>2020-09-10</xplan:aenderungenBisDatum> + <xplan:aufstellungsbeschlussDatum>2017-09-18</xplan:aufstellungsbeschlussDatum> + <xplan:veraenderungssperreBeschlussDatum>2017-09-18</xplan:veraenderungssperreBeschlussDatum> + <xplan:veraenderungssperreDatum>2017-09-19</xplan:veraenderungssperreDatum> + <xplan:veraenderungssperreEndDatum>2019-09-18</xplan:veraenderungssperreEndDatum> + <xplan:verlaengerungVeraenderungssperre>2000</xplan:verlaengerungVeraenderungssperre> + <xplan:auslegungsStartDatum>2019-03-07</xplan:auslegungsStartDatum> + <xplan:auslegungsEndDatum>2019-04-08</xplan:auslegungsEndDatum> + <xplan:satzungsbeschlussDatum>2019-04-25</xplan:satzungsbeschlussDatum> + <xplan:rechtsverordnungsDatum>2020-07-10</xplan:rechtsverordnungsDatum> + <xplan:inkrafttretensDatum>2020-08-01</xplan:inkrafttretensDatum> + <xplan:veraenderungssperre>true</xplan:veraenderungssperre> + <xplan:staedtebaulicherVertrag>false</xplan:staedtebaulicherVertrag> + <xplan:erschliessungsVertrag>false</xplan:erschliessungsVertrag> + <xplan:durchfuehrungsVertrag>false</xplan:durchfuehrungsVertrag> + <xplan:gruenordnungsplan>false</xplan:gruenordnungsplan> + <xplan:bereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + </xplan:BP_Plan> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_FlaecheOhneFestsetzung gml:id="GML_488c129a-c949-4c2b-8532-298829f8815f"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557243.062 5936905.959</gml:lowerCorner> + <gml:upperCorner>557352.03 5937000.801</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:ebene>0</xplan:ebene> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>5000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_26d807d2-4494-4127-a9f8-f7ebd8477fa3'--> + <gml:Polygon gml:id="GML_26d807d2-4494-4127-a9f8-f7ebd8477fa3" srsName="EPSG:25832"> + <gml:exterior> + <gml:LinearRing> + <gml:posList>557249.959 5936945.345 557268.735 5936937.278 557287.56 5936929.18 557291.839 5936926.58 557315.773 5936912.04 557322.859 5936907.734 557341.699 5936905.959 557342.14 5936914.554 557352.03 5937000.801 557345.86 5936998.938 557243.062 5936967.903 557249.959 5936945.345</gml:posList> + </gml:LinearRing> + </gml:exterior> + <gml:interior> + <gml:LinearRing> + <gml:posList>557248.878 5936962.848 557265.387 5936967.74 557273.435 5936969.011 557281.355 5936969.697 557282.027 5936969.9 557282.799 5936970.132 557301.814 5936975.865 557303.85 5936976.479 557315.876 5936981.17 557321.72 5936982.349 557327.65 5936981.872 557331.253 5936980.259 557336.499 5936975.641 557338.756 5936972.394 557339.627 5936968.536 557339.808 5936948.038 557339.07 5936940.522 557334.723 5936925.766 557333.18 5936912.819 557326.21 5936913.258 557325.854 5936911.596 557322.093 5936914.178 557318.283 5936916.733 557314.46 5936919.234 557310.6 5936921.698 557303.403 5936926.263 557291.454 5936933.297 557284.957 5936936.594 557281.666 5936938.219 557278.277 5936939.821 557273.326 5936942.061 557264.737 5936945.806 557256.016 5936949.325 557255.024 5936949.748 557254.369 5936950.105 557253.708 5936950.537 557253.172 5936950.948 557252.673 5936951.391 557252.304 5936951.762 557251.875 5936952.249 557251.493 5936952.746 557251.197 5936953.184 557250.89 5936953.7 557250.635 5936954.194 557250.405 5936954.713 557249.051 5936958.51 557248.816 5936959.205 557248.665 5936959.903 557248.596 5936960.519 557248.588 5936961.154 557248.628 5936961.678 557248.721 5936962.244 557248.791 5936962.546 557248.878 5936962.848</gml:posList> + </gml:LinearRing> + </gml:interior> + </gml:Polygon> + </xplan:position> + <xplan:flaechenschluss>true</xplan:flaechenschluss> + </xplan:BP_FlaecheOhneFestsetzung> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_StrassenbegrenzungsLinie gml:id="GML_209d05c2-6a1c-4d7c-8139-9c7f71dfcc13"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557248.588 5936911.596</gml:lowerCorner> + <gml:upperCorner>557339.808 5936982.349</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:position> + <!--Inlined geometry 'GML_29318828-b4b9-4802-b6d4-51693eb3725b'--> + <gml:Curve gml:id="GML_29318828-b4b9-4802-b6d4-51693eb3725b" srsName="EPSG:25832"> + <gml:segments> + <gml:LineStringSegment interpolation="linear"> + <gml:posList>557248.791 5936962.546 557248.721 5936962.244 557248.628 5936961.678 557248.588 5936961.154 557248.596 5936960.519 557248.665 5936959.903 557248.816 5936959.205 557249.051 5936958.51 557250.405 5936954.713 557250.635 5936954.194 557250.89 5936953.7 557251.197 5936953.184 557251.493 5936952.746 557251.875 5936952.249 557252.304 5936951.762 557252.673 5936951.391 557253.172 5936950.948 557253.708 5936950.537 557254.369 5936950.105 557255.024 5936949.748 557256.016 5936949.325 557264.737 5936945.806 557273.326 5936942.061 557278.277 5936939.821 557281.666 5936938.219 557284.957 5936936.594 557291.454 5936933.297 557303.403 5936926.263 557310.6 5936921.698 557314.46 5936919.234 557318.283 5936916.733 557322.093 5936914.178 557325.854 5936911.596 557326.21 5936913.258 557333.18 5936912.819 557334.723 5936925.766 557339.07 5936940.522 557339.808 5936948.038 557339.627 5936968.536 557338.756 5936972.394 557336.499 5936975.641 557331.253 5936980.259 557327.65 5936981.872 557321.72 5936982.349 557315.876 5936981.17 557303.85 5936976.479 557301.814 5936975.865 557282.799 5936970.132 557282.027 5936969.9 557281.355 5936969.697 557273.435 5936969.011 557265.387 5936967.74 557248.878 5936962.848 557248.791 5936962.546</gml:posList> + </gml:LineStringSegment> + </gml:segments> + </gml:Curve> + </xplan:position> + </xplan:BP_StrassenbegrenzungsLinie> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_102950a6-e58f-492e-a576-a383c2902330"> + <xplan:schluessel>§2 Nr.16</xplan:schluessel> + <xplan:text>Im reinen Wohngebiet sind in die Außenfassaden der Wohngebäude mindestens drei Fledermausspaltkästen mit Quartierseignung und zwei Niststeine für Halbhöhlenbrüter an fachlich geeigneter Stelle baulich zu integrieren und dauerhaft zu erhalten. In dem zu erhaltenden Baumbestand sind mindestens drei Nischenbrüterhöhlen an fachlich geeigneter Stelle anzubringen und dauerhaft zu unterhalten.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_15da3577-65bc-4d3e-b36d-69b3364d8027"> + <xplan:schluessel>§2 Nr.2</xplan:schluessel> + <xplan:text>Im reinen Wohngebiet werden alle Ausnahmen nach § 3 Absatz 3 der Baunutzungsverordnung vom 21. November 2017 (BGBl. I S. 3787) ausgeschlossen.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_24d91abb-1f19-4a7d-8903-b1aea424e2c1"> + <xplan:schluessel>§2 Nr.14</xplan:schluessel> + <xplan:text>Für festgesetzte Anpflanzungen von Bäumen und Sträuchern sowie für Ersatzpflanzungen sind standortgerechte einheimische Laubgehölze zu verwenden und dauerhaft zu erhalten. Großkronige Bäume müssen einen Stammumfang von mindestens 18 cm, kleinkronige Bäume einen Stammumfang von mindestens 16 cm, jeweils in 1 m Höhe über dem Erdboden gemessen, aufweisen. Im Kronenbereich jedes Baumes ist eine offene Vegetationsfläche von mindestens 12 m² anzulegen und zu begrünen.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_3c86cc25-e5d6-4672-b5f3-f433f0ade539"> + <xplan:schluessel>§2 Nr.4</xplan:schluessel> + <xplan:text>Im Plangebiet ist durch geeignete bauliche Schallschutzmaßnahmen wie zum Beispiel Doppelfassaden, verglaste Vorbauten, Loggien, Wintergärten, besondere Fensterkon-struktionen oder in ihrer Wirkung vergleichbare Maßnahmen sicherzustellen, dass durch diese baulichen Maßnahmen insgesamt eine Schallpegeldifferenz erreicht wird, die es ermöglicht, dass in Schlafräumen ein Innenraumpegel bei teilgeöffneten Fenstern von 30 dB(A) während der Nachtzeit nicht überschritten wird. Erfolgt die bauliche Schall-schutzmaßnahme in Form von verglasten Vorbauten, muss dieser Innenraumpegel bei teilgeöffneten Bauteilen erreicht werden. Wohn-/Schlafräume in Einzimmerwohnungen und Kinderzimmer sind wie Schlafräume zu beurteilen.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_5ba5da80-515e-44f5-95dc-8f4270638840"> + <xplan:schluessel>§2 Nr.1</xplan:schluessel> + <xplan:text>Im Bereich des Vorhaben- und Erschließungsplans (Vorhabengebiet) sind im reinen Wohngebiet im Rahmen der festgesetzten Nutzungen nur solche Vorhaben zulässig, zu deren Durchführung sich die Vorhabenträgerin im Durchführungsvertrag verpflichtet.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_5d50c47d-d8a4-40ad-93fb-b17bcc1b6849"> + <xplan:schluessel>§2 Nr.6</xplan:schluessel> + <xplan:text>Geh- und Fahrwege sowie Terrassen- und Platzflächen sind in wasser- und luftdurchlässigem Aufbau herzustellen. Dabei sind nur Baustoffe zu verwenden, die keine auswaschbaren, wassergefährdenden Stoffe enthalten. Feuerwehrumfahrten und Feuerwehraufstellflächen sind in vegetationsfähigem Aufbau herzustellen.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_60722a9c-5b21-4eb7-983f-ffe65830a990"> + <xplan:schluessel>§2 Nr.8</xplan:schluessel> + <xplan:text>Im reinen Wohngebiet sind Stellplätze nur innerhalb der dafür vorgesehenen Fläche zulässig.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_62103eff-5b29-4ba8-bc3f-517b910f8e53"> + <xplan:schluessel>§2 Nr.17</xplan:schluessel> + <xplan:text>Im Vorhabengebiet sind zur Außenbeleuchtung nur Beleuchtungsanlagen zulässig, die ein für Insekten wirkungsarmes Lichtspektrum aufweisen. Die Lichtquellen sind zur Umgebung und zum Baumbestand hin abzuschirmen.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_684fb51c-3d0f-4993-8ff0-dc3b62686b88"> + <xplan:schluessel>§2 Nr.3</xplan:schluessel> + <xplan:text>Im reinen Wohngebiet können Überschreitungen der Baugrenzen durch Vorbauten, Erker und Balkone um bis zu 1 m und durch Terrassen um bis zu 2,7 m zugelassen werden, wenn zum Erhalt oder zur Anpflanzung festgesetzte Einzelbäume nicht beeinträchtigt werden.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_6ffd7105-ba11-41bd-8ec5-c5c1bcc962c4"> + <xplan:schluessel>§2 Nr.15</xplan:schluessel> + <xplan:text>Im reinen Wohngebiet ist je vier Stellplätze ein großkroniger Baum anzupflanzen. Stellplatzanlagen sind mit Hecken oder frei wachsenden Sträuchern einzufassen.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_7d7e15fb-c55d-47ce-9a16-dd72dfd39d6f"> + <xplan:schluessel>§2 Nr.18</xplan:schluessel> + <xplan:text>Für Ausgleichsmaßnahmen des zu erwartenden Eingriffs in Natur und Landschaft wird der mit „Z“ bezeichneten Fläche die außerhalb des Bebauungsplangebietes in Wedel liegende Fläche des Flurstücks 7/31 der Gemarkung Wedel zugeordnet.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_8270cc97-0729-4664-bea1-6e4d70064d09"> + <xplan:schluessel>§2 Nr.12</xplan:schluessel> + <xplan:text>Für die zu erhaltenden Bäume sind bei Abgang Ersatzpflanzungen mit großkronigen Bäumen vorzunehmen.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_8a5370e5-d396-4fb2-8b78-09bfcbb1ff4c"> + <xplan:schluessel>§2 Nr.10</xplan:schluessel> + <xplan:text>Als an die öffentlichen Wege angrenzende Einfriedungen sind nur Hecken oder durchbrochene Zäune in Verbindung mit außenseitig zugeordneten Hecken zulässig. Notwendige Unterbrechungen für Zufahrten und Eingänge sind zulässig.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_91d49462-d233-47df-9ac1-f4d37c68af8f"> + <xplan:schluessel>§2 Nr.5</xplan:schluessel> + <xplan:text>Entlang der mit „(A)“ gekennzeichneten Fassaden ist für den Außenbereich einer Wohnung entweder durch dessen Orientierung zur lärmabgewandten Gebäudeseite oder durch bauliche Schallschutzmaßnahmen, wie zum Beispiel verglaste Vorbauten, Loggien oder Wintergärten mit teilgeöffneten Bauteilen, sicherzustellen, dass durch diese baulichen Maßnahmen insgesamt eine Schallpegelminderung erreicht wird, die es ermöglicht, dass in dem der Wohnung zugehörigen Außenbereich ein Tagpegel von kleiner 65 dB(A) erreicht wird.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_a7e0ecd6-ba53-44a2-9103-9bf204c7119f"> + <xplan:schluessel>§2 Nr.13</xplan:schluessel> + <xplan:text>Im Wurzelbereich der zu erhaltenden Bäume sind Nebenanlagen, Garagen und Stellplätze unzulässig.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_c2ed4d85-41ef-470d-a176-f3cdd45a7066"> + <xplan:schluessel>§2 Nr.11</xplan:schluessel> + <xplan:text>Außerhalb von öffentlichen Straßenverkehrsflächen sind Geländeaufhöhungen und Abgrabungen im Kronenbereich zu erhaltender Bäume unzulässig.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_c6413128-a7f6-4420-86fa-5fceb7ce283b"> + <xplan:schluessel>§2 Nr.7</xplan:schluessel> + <xplan:text>Das auf den privaten Grundstücksflächen anfallende Niederschlagswasser ist örtlich zu versickern, sofern es nicht gesammelt und genutzt wird.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextAbschnitt gml:id="GML_f145a635-83f9-4455-bf23-fadadbb78936"> + <xplan:schluessel>§2 Nr.9</xplan:schluessel> + <xplan:text>Innerhalb der östlichen privaten Grünfläche mit der Zweckbestimmung „Garten“ ist die Anlage einer 1 m breiten Zuwegung in wasser- und luftdurchlässiger Bauweise zulässig.</xplan:text> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + </xplan:BP_TextAbschnitt> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_TextlicheFestsetzungsFlaeche gml:id="GML_377d43a1-8c65-4039-bd90-889d75a76b87"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557314.892 5936930.957</gml:lowerCorner> + <gml:upperCorner>557329.391 5936970.109</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gliederung2>(A)</xplan:gliederung2> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_b87933a3-7241-47d2-b1f3-ccceb7edeee5"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_91d49462-d233-47df-9ac1-f4d37c68af8f"/> + <xplan:position> + <!--Inlined geometry 'GML_e686d491-008b-4f68-a97a-82ddb5b41017'--> + <gml:Polygon gml:id="GML_e686d491-008b-4f68-a97a-82ddb5b41017" srsName="EPSG:25832"> + <gml:exterior> + <gml:LinearRing> + <gml:posList>557329.391 5936968.426 557315.101 5936970.109 557314.892 5936967.95 557327.575 5936966.477 557323.539 5936931.207 557325.444 5936930.957 557329.391 5936968.426</gml:posList> + </gml:LinearRing> + </gml:exterior> + </gml:Polygon> + </xplan:position> + <xplan:flaechenschluss>false</xplan:flaechenschluss> + </xplan:BP_TextlicheFestsetzungsFlaeche> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_UeberbaubareGrundstuecksFlaeche gml:id="GML_7ef4531b-e85e-40e4-8c09-0e19a3ec5177"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557310.823 5936931.207</gml:lowerCorner> + <gml:upperCorner>557327.575 5936967.95</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:ebene>0</xplan:ebene> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_2dea9178-9249-4fd3-b4ba-ba48bfc27ecd"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_794de089-2788-4cb4-ab79-3ba5f7639710"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_684fb51c-3d0f-4993-8ff0-dc3b62686b88"/> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_91d49462-d233-47df-9ac1-f4d37c68af8f"/> + <xplan:position> + <!--Inlined geometry 'GML_9096f46b-8c9d-468d-82da-245800ea9048'--> + <gml:Polygon gml:id="GML_9096f46b-8c9d-468d-82da-245800ea9048" srsName="EPSG:25832"> + <gml:exterior> + <gml:LinearRing> + <gml:posList>557310.823 5936932.677 557323.539 5936931.207 557327.575 5936966.477 557314.892 5936967.95 557310.823 5936932.677</gml:posList> + </gml:LinearRing> + </gml:exterior> + </gml:Polygon> + </xplan:position> + <xplan:flaechenschluss>false</xplan:flaechenschluss> + <xplan:dachgestaltung> + <xplan:BP_Dachgestaltung> + <xplan:DNmin uom="grad">30</xplan:DNmin> + <xplan:DNmax uom="grad">40</xplan:DNmax> + </xplan:BP_Dachgestaltung> + </xplan:dachgestaltung> + <xplan:DNmin uom="grad">30</xplan:DNmin> + <xplan:DNmax uom="grad">40</xplan:DNmax> + <xplan:dachform>3100</xplan:dachform> + </xplan:BP_UeberbaubareGrundstuecksFlaeche> + </gml:featureMember> + <gml:featureMember> + <xplan:BP_ZentralerVersorgungsbereich gml:id="GML_f553de4c-97e6-4f45-a5c2-a89886d18301"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557284.229 5936937.668</gml:lowerCorner> + <gml:upperCorner>557299.272 5936959.488</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:ebene>0</xplan:ebene> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_7087c593-4639-4fef-8b91-773ed64df8cf"/> + <xplan:wirdDargestelltDurch xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c47097ae-79f6-4001-841b-da9b80979252"/> + <xplan:rechtscharakter>1000</xplan:rechtscharakter> + <xplan:refTextInhalt xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_684fb51c-3d0f-4993-8ff0-dc3b62686b88"/> + <xplan:position> + <!--Inlined geometry 'GML_4558cd4f-f4c9-4aaf-a7ee-5a4d17a194d8'--> + <gml:Polygon gml:id="GML_4558cd4f-f4c9-4aaf-a7ee-5a4d17a194d8" srsName="EPSG:25832"> + <gml:exterior> + <gml:LinearRing> + <gml:posList>557284.229 5936939.12 557296.947 5936937.668 557299.272 5936958.036 557286.554 5936959.488 557284.229 5936939.12</gml:posList> + </gml:LinearRing> + </gml:exterior> + </gml:Polygon> + </xplan:position> + <xplan:flaechenschluss>false</xplan:flaechenschluss> + </xplan:BP_ZentralerVersorgungsbereich> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_LPO gml:id="GML_042e6f7a-e1c3-4569-b5a5-de1b996e5ba7"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557325.444 5936930.957</gml:lowerCorner> + <gml:upperCorner>557327.235 5936948.315</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:position> + <!--Inlined geometry 'GML_ab02ea3f-46b8-446c-96ce-6f238fb4bf45'--> + <gml:Curve gml:id="GML_ab02ea3f-46b8-446c-96ce-6f238fb4bf45" srsName="EPSG:25832"> + <gml:segments> + <gml:LineStringSegment interpolation="linear"> + <gml:posList>557327.235 5936948.315 557325.444 5936930.957</gml:posList> + </gml:LineStringSegment> + </gml:segments> + </gml:Curve> + </xplan:position> + </xplan:XP_LPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_LPO gml:id="GML_730b4676-8840-4cbd-a2e0-7e351cc61965"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557315.101 5936954.898</gml:lowerCorner> + <gml:upperCorner>557329.325 5936970.109</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:position> + <!--Inlined geometry 'GML_c58dbb0e-d49c-4b7d-87f7-65f9ca8e159e'--> + <gml:Curve gml:id="GML_c58dbb0e-d49c-4b7d-87f7-65f9ca8e159e" srsName="EPSG:25832"> + <gml:segments> + <gml:LineStringSegment interpolation="linear"> + <gml:posList>557327.869 5936954.898 557329.325 5936968.52 557315.101 5936970.109</gml:posList> + </gml:LineStringSegment> + </gml:segments> + </gml:Curve> + </xplan:position> + </xplan:XP_LPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_09ae3866-c6fc-427c-baf1-2c88200f54b6"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557304.757 5936953.719</gml:lowerCorner> + <gml:upperCorner>557304.757 5936953.719</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>besondereArtDerBaulNutzung</xplan:art> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c3e0bb6a-9e1d-4461-8995-fe1eebf5bfcd"/> + <xplan:position> + <!--Inlined geometry 'GML_c85738e0-f404-46f4-b786-20f8ee499074'--> + <gml:Point gml:id="GML_c85738e0-f404-46f4-b786-20f8ee499074" srsName="EPSG:25832"> + <gml:pos>557304.757 5936953.719</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">0</xplan:drehwinkel> + <xplan:skalierung>1</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_0c35b24f-6cf5-4e98-9460-a7b2f4e37766"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557302.026 5936942.476</gml:lowerCorner> + <gml:upperCorner>557302.026 5936942.476</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>GFZ</xplan:art> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c3e0bb6a-9e1d-4461-8995-fe1eebf5bfcd"/> + <xplan:position> + <!--Inlined geometry 'GML_a89cf332-aaae-48bd-a4df-5b4983491d62'--> + <gml:Point gml:id="GML_a89cf332-aaae-48bd-a4df-5b4983491d62" srsName="EPSG:25832"> + <gml:pos>557302.026 5936942.476</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">0</xplan:drehwinkel> + <xplan:skalierung>0.787402</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_2dea9178-9249-4fd3-b4ba-ba48bfc27ecd"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557317.639 5936959.231</gml:lowerCorner> + <gml:upperCorner>557317.639 5936959.231</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>dachform</xplan:art> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_7ef4531b-e85e-40e4-8c09-0e19a3ec5177"/> + <xplan:position> + <!--Inlined geometry 'GML_b7be627e-67bb-4015-8398-b73bcdf8b0d9'--> + <gml:Point gml:id="GML_b7be627e-67bb-4015-8398-b73bcdf8b0d9" srsName="EPSG:25832"> + <gml:pos>557317.639 5936959.231</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">0</xplan:drehwinkel> + <xplan:skalierung>1</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_5e033921-530a-47b1-84e3-a508f45c2d51"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557335.524 5936929.288</gml:lowerCorner> + <gml:upperCorner>557335.524 5936929.288</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>nutzungsform</xplan:art> + <xplan:art>text</xplan:art> + <xplan:index>0</xplan:index> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_382429ee-f25f-4d00-b826-8e804ddbdebc"/> + <xplan:position> + <!--Inlined geometry 'GML_93b52be8-d6cb-4f14-8830-c286e9683e96'--> + <gml:Point gml:id="GML_93b52be8-d6cb-4f14-8830-c286e9683e96" srsName="EPSG:25832"> + <gml:pos>557335.524 5936929.288</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">84</xplan:drehwinkel> + <xplan:skalierung>0.5</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_7087c593-4639-4fef-8b91-773ed64df8cf"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557289.469 5936953.621</gml:lowerCorner> + <gml:upperCorner>557289.469 5936953.621</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>dachform</xplan:art> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_f553de4c-97e6-4f45-a5c2-a89886d18301"/> + <xplan:position> + <!--Inlined geometry 'GML_63d19af6-38d6-4b9c-beb7-176495f2afc1'--> + <gml:Point gml:id="GML_63d19af6-38d6-4b9c-beb7-176495f2afc1" srsName="EPSG:25832"> + <gml:pos>557289.469 5936953.621</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">0</xplan:drehwinkel> + <xplan:skalierung>1</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_794de089-2788-4cb4-ab79-3ba5f7639710"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557314.121 5936936.501</gml:lowerCorner> + <gml:upperCorner>557314.121 5936936.501</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>DNmax</xplan:art> + <xplan:art>DNmin</xplan:art> + <xplan:index>0</xplan:index> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_7ef4531b-e85e-40e4-8c09-0e19a3ec5177"/> + <xplan:position> + <!--Inlined geometry 'GML_b27df56e-52bf-496c-9e20-fb9945775513'--> + <gml:Point gml:id="GML_b27df56e-52bf-496c-9e20-fb9945775513" srsName="EPSG:25832"> + <gml:pos>557314.121 5936936.501</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">0</xplan:drehwinkel> + <xplan:skalierung>1</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_8b8ff5aa-cafb-4740-a12a-adc5ee16856b"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557304.528 5936946.56</gml:lowerCorner> + <gml:upperCorner>557304.528 5936946.56</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>Z</xplan:art> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c3e0bb6a-9e1d-4461-8995-fe1eebf5bfcd"/> + <xplan:position> + <!--Inlined geometry 'GML_e9ae89a6-f418-4f08-b93a-ad486f36fef9'--> + <gml:Point gml:id="GML_e9ae89a6-f418-4f08-b93a-ad486f36fef9" srsName="EPSG:25832"> + <gml:pos>557304.528 5936946.56</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">0</xplan:drehwinkel> + <xplan:skalierung>0.7</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_9fa3a84d-a7ed-4e6d-b75e-8611dbbe3097"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557278.714 5936951.35</gml:lowerCorner> + <gml:upperCorner>557278.714 5936951.35</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>gliederung2</xplan:art> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_435c123d-74af-4da3-9b08-2230d60f4afc"/> + <xplan:position> + <!--Inlined geometry 'GML_79e57a00-7692-48ba-934b-0bf8ab089cbb'--> + <gml:Point gml:id="GML_79e57a00-7692-48ba-934b-0bf8ab089cbb" srsName="EPSG:25832"> + <gml:pos>557278.714 5936951.35</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">0</xplan:drehwinkel> + <xplan:skalierung>1</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_a39fac97-534a-4266-9e20-b25c1008a015"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557268.287 5936956.688</gml:lowerCorner> + <gml:upperCorner>557268.287 5936956.688</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>nutzungsform</xplan:art> + <xplan:art>text</xplan:art> + <xplan:index>0</xplan:index> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_5824d0ca-ea90-441f-830c-c070f1a0aa05"/> + <xplan:position> + <!--Inlined geometry 'GML_bdbc69d0-1397-4b26-9606-91288b9c1668'--> + <gml:Point gml:id="GML_bdbc69d0-1397-4b26-9606-91288b9c1668" srsName="EPSG:25832"> + <gml:pos>557268.287 5936956.688</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">18</xplan:drehwinkel> + <xplan:skalierung>0.5</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_ab6dc9c7-febf-4465-b4c6-fc60838ed212"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557302.835 5936966.026</gml:lowerCorner> + <gml:upperCorner>557302.835 5936966.026</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>zweckbestimmung</xplan:art> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_09d5413d-ccd7-40a1-8298-80bb22850dd3"/> + <xplan:position> + <!--Inlined geometry 'GML_d5a3bf6b-4105-4bcd-91cf-be31c86f3dc6'--> + <gml:Point gml:id="GML_d5a3bf6b-4105-4bcd-91cf-be31c86f3dc6" srsName="EPSG:25832"> + <gml:pos>557302.835 5936966.026</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">0</xplan:drehwinkel> + <xplan:skalierung>1</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_b87933a3-7241-47d2-b1f3-ccceb7edeee5"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557308.648 5936953.111</gml:lowerCorner> + <gml:upperCorner>557308.648 5936953.111</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>gliederung2</xplan:art> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_377d43a1-8c65-4039-bd90-889d75a76b87"/> + <xplan:position> + <!--Inlined geometry 'GML_443b40ab-c168-42c3-88b6-ed2eeabae2e5'--> + <gml:Point gml:id="GML_443b40ab-c168-42c3-88b6-ed2eeabae2e5" srsName="EPSG:25832"> + <gml:pos>557308.648 5936953.111</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">263.32</xplan:drehwinkel> + <xplan:skalierung>1</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_c47097ae-79f6-4001-841b-da9b80979252"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557288.157 5936947.063</gml:lowerCorner> + <gml:upperCorner>557288.157 5936947.063</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>DNmax</xplan:art> + <xplan:art>DNmin</xplan:art> + <xplan:index>0</xplan:index> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_f553de4c-97e6-4f45-a5c2-a89886d18301"/> + <xplan:position> + <!--Inlined geometry 'GML_11bbe558-0ee5-4908-8d43-35074891470d'--> + <gml:Point gml:id="GML_11bbe558-0ee5-4908-8d43-35074891470d" srsName="EPSG:25832"> + <gml:pos>557288.157 5936947.063</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">0</xplan:drehwinkel> + <xplan:skalierung>1</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_PPO gml:id="GML_ed1db422-4904-4271-a048-1832df70c070"> + <gml:boundedBy> + <gml:Envelope srsName="EPSG:25832"> + <gml:lowerCorner>557301.588 5936937.333</gml:lowerCorner> + <gml:upperCorner>557301.588 5936937.333</gml:upperCorner> + </gml:Envelope> + </gml:boundedBy> + <xplan:art>hoehenangabe</xplan:art> + <xplan:index>0</xplan:index> + <xplan:gehoertZuBereich xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_717e6e84-7220-440d-8dee-9eaa9d1b23c8"/> + <xplan:dientZurDarstellungVon xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#GML_c3e0bb6a-9e1d-4461-8995-fe1eebf5bfcd"/> + <xplan:position> + <!--Inlined geometry 'GML_fec6ac20-6586-42c0-8532-4a4f87023554'--> + <gml:Point gml:id="GML_fec6ac20-6586-42c0-8532-4a4f87023554" srsName="EPSG:25832"> + <gml:pos>557301.588 5936937.333</gml:pos> + </gml:Point> + </xplan:position> + <xplan:drehwinkel uom="grad">0</xplan:drehwinkel> + <xplan:skalierung>1</xplan:skalierung> + </xplan:XP_PPO> + </gml:featureMember> + <gml:featureMember> + <xplan:XP_Rasterdarstellung gml:id="GML_c563dcea-63fe-40a0-95c6-36e7db11c444"> + <xplan:refScan> + <xplan:XP_ExterneReferenz> + <xplan:georefURL>BPlan002_5-3.pgw</xplan:georefURL> + <xplan:referenzURL>BPlan002_5-3.png</xplan:referenzURL> + </xplan:XP_ExterneReferenz> + </xplan:refScan> + </xplan:XP_Rasterdarstellung> + </gml:featureMember> +</xplan:XPlanAuszug> \ No newline at end of file diff --git a/xplan-core/xplan-core-gwt/pom.xml b/xplan-core/xplan-core-gwt/pom.xml index 7d25525b3949f59a5b2f109cbac3d2c22c554667..391b23d4492d0129fe38dde25510bc677c6c7d45 100644 --- a/xplan-core/xplan-core-gwt/pom.xml +++ b/xplan-core/xplan-core-gwt/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-core/xplan-core-inspireplu/pom.xml b/xplan-core/xplan-core-inspireplu/pom.xml index ffd8807a28be37c0113b95d9aeeee1a46ddfc637..2de1b282c5c3004b4db2c31918bd51d5fb40a311 100644 --- a/xplan-core/xplan-core-inspireplu/pom.xml +++ b/xplan-core/xplan-core-inspireplu/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <dependencies> diff --git a/xplan-core/xplan-core-job/pom.xml b/xplan-core/xplan-core-job/pom.xml index d0410413014ea4903de77e27c216e305679250d4..8a203b499d8cd42d60cab271d80c6dd4bcb2c152 100644 --- a/xplan-core/xplan-core-job/pom.xml +++ b/xplan-core/xplan-core-job/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <artifactId>xplan-core-job</artifactId> diff --git a/xplan-core/xplan-core-manager-db/pom.xml b/xplan-core/xplan-core-manager-db/pom.xml index f75051e214a3428ed0a74c6f49c152f036911d27..d226c1525ac37a442e066417cc2fed307e62ea4c 100644 --- a/xplan-core/xplan-core-manager-db/pom.xml +++ b/xplan-core/xplan-core-manager-db/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <dependencies> diff --git a/xplan-core/xplan-core-manager-deegree/pom.xml b/xplan-core/xplan-core-manager-deegree/pom.xml index f847bb34174dbb4797e17abf059a198c24d27eeb..ee1c56fb6a4d6fbe3ee2ef291d34dcd5e554e571 100644 --- a/xplan-core/xplan-core-manager-deegree/pom.xml +++ b/xplan-core/xplan-core-manager-deegree/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-core/xplan-core-manager/pom.xml b/xplan-core/xplan-core-manager/pom.xml index 575d7e40d601d68b2077b5c4af874f3e0d51ed52..7476e513456dc8ff1a7828b6ab5b014cc6bf560e 100644 --- a/xplan-core/xplan-core-manager/pom.xml +++ b/xplan-core/xplan-core-manager/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <dependencies> @@ -175,7 +175,7 @@ <dependency> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core-manager-deegree</artifactId> - <version>8.0</version> + <version>8.0.1</version> <scope>compile</scope> </dependency> </dependencies> diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/database/XPlanDbAdapter.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/database/XPlanDbAdapter.java index ea56708e711628184765d9742e3cfa7b54622f13..5c557ade5b0fb077d5f2f1211382a1858f1f2fd0 100644 --- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/database/XPlanDbAdapter.java +++ b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/database/XPlanDbAdapter.java @@ -120,6 +120,8 @@ public class XPlanDbAdapter { public int insert(XPlanArchive archive, XPlanFeatureCollection fc, PlanStatus planStatus, Date sortDate, String internalId) throws Exception { LOG.info("Insert XPlan in XPlanDB"); + if (internalId == null || internalId.isEmpty()) + internalId = FeatureCollectionUtils.retrieveInternalId(fc.getFeatures(), fc.getType()); Plan plan = createPlan(archive, fc, planStatus, sortDate, internalId); Plan savedPlan = planRepository.save(plan); return savedPlan.getId(); @@ -481,9 +483,9 @@ public class XPlanDbAdapter { return null; } - private ArtefactType detectNonXPlanGmlArtefactType(EditedArtefact editedArtefact) { + private ArtefactType detectNonXPlanGmlArtefactType(EditedArtefact editedArtefact, boolean isGeoRef) { de.latlon.xplan.manager.edit.ArtefactType artefactType = editedArtefact.getArtefactType(); - if (artefactType == RASTER) + if (artefactType == RASTER && !isGeoRef) return RASTERBASIS; return null; } @@ -627,20 +629,20 @@ public class XPlanDbAdapter { String fileName = editedArtefact.getFileName(); String georefFileName = editedArtefact.getGeorefFileName(); if (fileName != null) - num = addEditedFile(uploadedArtefacts, plan, editedArtefact, fileName, num); + num = addEditedFile(uploadedArtefacts, plan, editedArtefact, fileName, num, false); if (georefFileName != null) - num = addEditedFile(uploadedArtefacts, plan, editedArtefact, georefFileName, num); + num = addEditedFile(uploadedArtefacts, plan, editedArtefact, georefFileName, num, true); } } private int addEditedFile(List<File> uploadedArtefacts, Plan plan, EditedArtefact editedArtefact, String fileName, - int num) throws IOException { + int num, boolean isGeoRef) throws IOException { File file = retrieveUploadedArtefact(fileName, uploadedArtefacts); long size = Files.size(file.toPath()); try (FileInputStream fileInputStream = new FileInputStream(file)) { byte[] data = createZipArtefact(fileInputStream); String mimetype = getArtefactMimeType(fileName); - ArtefactType artefactType = detectNonXPlanGmlArtefactType(editedArtefact); + ArtefactType artefactType = detectNonXPlanGmlArtefactType(editedArtefact, isGeoRef); ArtefactId id = new ArtefactId().plan(plan).filename(fileName); Artefact artefact = new Artefact().id(id) diff --git a/xplan-core/xplan-core-raster/pom.xml b/xplan-core/xplan-core-raster/pom.xml index 8703e5be79ad148eb84d1d6d556e82b196c9c661..29d938f05cb0b4e31a618a5d46ce00d419aba08a 100644 --- a/xplan-core/xplan-core-raster/pom.xml +++ b/xplan-core/xplan-core-raster/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <dependencies> diff --git a/xplan-core/xplan-core-schemas/pom.xml b/xplan-core/xplan-core-schemas/pom.xml index c3ce62a49410e5103c11143a78126dea215f53a8..55244cdc3f7a1be07cafb20d3d0b1da3237a6ee1 100644 --- a/xplan-core/xplan-core-schemas/pom.xml +++ b/xplan-core/xplan-core-schemas/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-core/xplan-core-security/pom.xml b/xplan-core/xplan-core-security/pom.xml index 02217bd80e414a6a475dc36c6b68061a4d45b5e9..c68e52f188c56cb6cc3cf465b64a1c1f5a1ac352 100644 --- a/xplan-core/xplan-core-security/pom.xml +++ b/xplan-core/xplan-core-security/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <dependencies> diff --git a/xplan-core/xplan-core-synthesizer/pom.xml b/xplan-core/xplan-core-synthesizer/pom.xml index a9bb0265440fcdb8abcee02e8d70b1e9e4d25bf3..225533a4e844a3eacbd473eb115176a91e51f53c 100644 --- a/xplan-core/xplan-core-synthesizer/pom.xml +++ b/xplan-core/xplan-core-synthesizer/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <dependencies> diff --git a/xplan-core/xplan-core-tests/pom.xml b/xplan-core/xplan-core-tests/pom.xml index 48b5fb6b418f54a76d1ad7796616b2ea4c8ed606..d489895eeeec6e08c2dc1d153d4e7cd9fe51b55c 100644 --- a/xplan-core/xplan-core-tests/pom.xml +++ b/xplan-core/xplan-core-tests/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <dependencies> diff --git a/xplan-core/xplan-core-validator-events/pom.xml b/xplan-core/xplan-core-validator-events/pom.xml index 1064b43907879d9ec427d87cb9cd5fa0f5ec56b3..42052bc622cfb233bde2d55eeececef660583594 100644 --- a/xplan-core/xplan-core-validator-events/pom.xml +++ b/xplan-core/xplan-core-validator-events/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <dependencies> diff --git a/xplan-core/xplan-core-validator/pom.xml b/xplan-core/xplan-core-validator/pom.xml index c6df0feece82668a482580c85660f7dee0ae6011..78e244f79a6bb840fd9301b37a85126b47de2ede 100644 --- a/xplan-core/xplan-core-validator/pom.xml +++ b/xplan-core/xplan-core-validator/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-core</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-database/pom.xml b/xplan-database/pom.xml index 34f4786c66d173388a24a4c8f653e95d7bf05ab9..d5e347e42e924d5f45336ae34a9d7f9230a9dcf6 100644 --- a/xplan-database/pom.xml +++ b/xplan-database/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplanbox</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <profiles> diff --git a/xplan-database/xplan-database-docker/pom.xml b/xplan-database/xplan-database-docker/pom.xml index b356b52a47c9b7a13a710569ca9aa1d9b2548dff..d55516267f302e8203bfee0fe4fd6ccc66b53fa6 100644 --- a/xplan-database/xplan-database-docker/pom.xml +++ b/xplan-database/xplan-database-docker/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-database</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-database/xplan-database-scripts/pom.xml b/xplan-database/xplan-database-scripts/pom.xml index ad2e0f5ef01a1f53aecf5702c5f803e0af4e79e7..c2e2ac25d1ca1cceb8076e14f5b1e9a5111640cf 100644 --- a/xplan-database/xplan-database-scripts/pom.xml +++ b/xplan-database/xplan-database-scripts/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-database</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-database/xplan-database-scripts/src/main/java/de/latlon/xplanbox/database/scripts/custom/v80/UpdateInternalIdCustomChange.java b/xplan-database/xplan-database-scripts/src/main/java/de/latlon/xplanbox/database/scripts/custom/v80/UpdateInternalIdCustomChange.java new file mode 100644 index 0000000000000000000000000000000000000000..a8bd2d7e59d57c40d3f965890f5ea148cb9d009e --- /dev/null +++ b/xplan-database/xplan-database-scripts/src/main/java/de/latlon/xplanbox/database/scripts/custom/v80/UpdateInternalIdCustomChange.java @@ -0,0 +1,116 @@ +/*- + * #%L + * xplan-database-scripts - Liquibase Changelogs zum Aufsetzen/Aktualisieren der Datenhaltung. + * %% + * Copyright (C) 2008 - 2025 Freie und Hansestadt Hamburg, developed by lat/lon gesellschaft für raumbezogene Informationssysteme mbH + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package de.latlon.xplanbox.database.scripts.custom.v80; + +import java.sql.PreparedStatement; +import java.sql.SQLException; + +import liquibase.Scope; +import liquibase.change.custom.CustomTaskChange; +import liquibase.database.Database; +import liquibase.database.jvm.JdbcConnection; +import liquibase.exception.CustomChangeException; +import liquibase.exception.DatabaseException; +import liquibase.exception.SetupException; +import liquibase.exception.ValidationErrors; +import liquibase.resource.ResourceAccessor; + +/** + * Insert internalId into xplanmgr.plans. + * + * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a> + * @since 8.0.1 + */ +public class UpdateInternalIdCustomChange implements CustomTaskChange { + + @Override + public void execute(Database database) throws CustomChangeException { + JdbcConnection dbConn = (JdbcConnection) database.getConnection(); + try { + Scope.getCurrentScope().getLog(getClass()).info("Insert in xplanmgr.plans."); + String updateSql = "UPDATE xplanmgr.plans as p set internalId = s.xplan_internalid FROM (SELECT xplan_mgr_planid, xplan_internalid FROM " + // bp + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansyn.xplan_bp_plan) bpfix " + + " NATURAL FULL JOIN " + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansynpre.xplan_bp_plan) bppre " + + " NATURAL FULL JOIN " + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansynarchive.xplan_bp_plan) bparchive " + + " NATURAL FULL JOIN " + // fp + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansyn.xplan_fp_plan) fpfix " + + " NATURAL FULL JOIN " + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansynpre.xplan_fp_plan) fppre " + + " NATURAL FULL JOIN " + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansynarchive.xplan_fp_plan) fparchive " + + " NATURAL FULL JOIN " + // lp + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansyn.xplan_lp_plan) lpfix " + + " NATURAL FULL JOIN " + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansynpre.xplan_lp_plan) lppre " + + " NATURAL FULL JOIN " + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansynarchive.xplan_lp_plan) lparchive " + + " NATURAL FULL JOIN " + // rp + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansyn.xplan_rp_plan) rpfix " + + " NATURAL FULL JOIN " + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansynpre.xplan_rp_plan) rppre " + + " NATURAL FULL JOIN " + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansynarchive.xplan_rp_plan) rparchive " + + " NATURAL FULL JOIN " + // so + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansyn.xplan_so_plan) sofix " + + " NATURAL FULL JOIN " + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansynpre.xplan_so_plan) sopre " + + " NATURAL FULL JOIN " + + " (SELECT xplan_mgr_planid, xplan_internalid FROM xplansynarchive.xplan_so_plan) soarchive " + + " ) as s WHERE p.internalId is null and p.id = s.xplan_mgr_planid;"; + PreparedStatement psUpdate = dbConn.prepareStatement(updateSql); + int noOfUpdated = psUpdate.executeUpdate(); + Scope.getCurrentScope() + .getLog(getClass()) + .info("Updated " + noOfUpdated + " internalIds in xplanmgr.plans."); + } + catch (SQLException | DatabaseException e) { + throw new CustomChangeException(e); + } + } + + @Override + public String getConfirmationMessage() { + return "Updated xplanmgr.plans.internalID"; + } + + @Override + public void setUp() throws SetupException { + + } + + @Override + public void setFileOpener(ResourceAccessor resourceAccessor) { + + } + + @Override + public ValidationErrors validate(Database database) { + return new ValidationErrors(); + } + +} diff --git a/xplan-database/xplan-database-scripts/src/main/resources/8.0/changelog_xplanmgr.yaml b/xplan-database/xplan-database-scripts/src/main/resources/8.0/changelog_xplanmgr.yaml index 51746eedf0dbf59fd022f09c101e9518d8442f7e..1f06bb22ec18bc59c20c2193ad732b3fbbb0cb68 100644 --- a/xplan-database/xplan-database-scripts/src/main/resources/8.0/changelog_xplanmgr.yaml +++ b/xplan-database/xplan-database-scripts/src/main/resources/8.0/changelog_xplanmgr.yaml @@ -126,3 +126,9 @@ databaseChangeLog: changes: - customChange: { "class": "de.latlon.xplanbox.database.scripts.custom.v80.UpdateGeltungsbereichCustomChange" } + - changeSet: + id: xplanmgr80-007 + author: latlon + changes: + - customChange: { + "class": "de.latlon.xplanbox.database.scripts.custom.v80.UpdateInternalIdCustomChange" } diff --git a/xplan-distribution/pom.xml b/xplan-distribution/pom.xml index 8db352c3a8949493fc423bedb2b436a2ea218e57..d41ac4ea711c5f22dcb7d517926ab180b2e1bee5 100644 --- a/xplan-distribution/pom.xml +++ b/xplan-distribution/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplanbox</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-docker/pom.xml b/xplan-docker/pom.xml index e08fae7efee2c321c6a354f5f52f12ac7fad1cae..9aed41aaeb7a5d5e71d81529cce1c4f225d0ae0c 100644 --- a/xplan-docker/pom.xml +++ b/xplan-docker/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplanbox</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <modules> diff --git a/xplan-docker/xplan-docker-tomcat/pom.xml b/xplan-docker/xplan-docker-tomcat/pom.xml index 862ffa2a9767b1d5e5233eb772dace95c69f0bfb..e3b64fffbef815353fb31ba1432649d367d034f2 100644 --- a/xplan-docker/xplan-docker-tomcat/pom.xml +++ b/xplan-docker/xplan-docker-tomcat/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-docker</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-docker/xplan-docker-volume-init/pom.xml b/xplan-docker/xplan-docker-volume-init/pom.xml index 09ec841a2e02a553db911d9b3a0d4c68bfbdb736..cacbdb4e0c7f2d0af498d650813aebeeb1bed895 100644 --- a/xplan-docker/xplan-docker-volume-init/pom.xml +++ b/xplan-docker/xplan-docker-volume-init/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-docker</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-documentation/pom.xml b/xplan-documentation/pom.xml index 632e0aad0d8d0a4093a9c89fb3c57401c8f9c0d7..b8919fc8e464b265f3783736ce0e15983edf354b 100644 --- a/xplan-documentation/pom.xml +++ b/xplan-documentation/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplanbox</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-documentation/xplan-benutzerhandbuch/pom.xml b/xplan-documentation/xplan-benutzerhandbuch/pom.xml index d808df79e6c80cacf9ede456685578a92c30b52b..89361d954f3335c320792f9966387cac38200259 100644 --- a/xplan-documentation/xplan-benutzerhandbuch/pom.xml +++ b/xplan-documentation/xplan-benutzerhandbuch/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-documentation</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanManager_API.adoc b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanManager_API.adoc index bfeccaa5c5d3265f48f21bf13b7e2c7ed55ddbe4..8b30a29f2e0edde6a6059dbb2a80a932d6ee83f2 100644 --- a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanManager_API.adoc +++ b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanManager_API.adoc @@ -4,7 +4,7 @@ Die REST-API des XPlanManager ermöglicht es, die Funktionen des XPlanManager über eine Web-API aufzurufen. Bei der Festlegung der Ressourcen wurden Begriffe aus drei Domänen verwendet. Die REST-API Ressourcen wie z.B. `/plan` oder `/info` sind in Englisch und der Einstiegspunkt für eine Entität. Ressourcen unterhalb einer Entität wie z.B. `/plan/{planId}/aenderung` oder `/plan/{planId}/gueltigkeit` sind in Deutsch und aus der Oberfläche des XPlanManagerWeb abgeleitet. Die verwendeten Datentypen sind ebenfalls in Deutsch und aus den Bezeichnern des XPlanung-Datenmodells (XPlanGML-Applikationsschema) abgeleitet. Bezeichner wie z. B. `{planId}` in einer Ressource sind Variablen und müssen durch entsprechende Werte ausgetauscht werden. Folgende Variablen werden in der API verwendet: - `{planId}` - eindeutiger Schlüssel eines Plans (numerischer Wert, z.B. 10) -- `{planName}` - eindeutiger Name eines Plans (alphanumerischer Wert, z.B. HafenCity14) +- `{planName}` - Name eines Plans (alphanumerischer Wert, z.B. HafenCity14) - `{name}` - Name oder Suchtext (alphanumerischer Wert, z.B. Hafen ) - `{id}` - eindeutiger Schlüssel einer Ressource (alphanumerischer Wert, Beispiele siehe Abschnitt <<xplanmanager-api-schluessel,eindeutige Schlüssel>>) @@ -16,10 +16,9 @@ Die REST-API des XPlanManager stellt folgende Ressourcen bereit: |`/` |`GET` |Beschreibung der Schnittstelle als OpenAPI 3.0 Dokument |`/info` |`GET` |Informationen zur xPlanBox Version und aktiven Konfiguration |`/plan` |`POST` |Importieren eines XPlanGML-Dokuments oder XPlanArchivs -|`/plan/{planId}` |`GET` |Abfrage der Daten zu einem Plan über die PlanID -|`/plan/{planId}/archive` |`GET` |Abfrage des XPlanArchiv über die PlanID +|`/plan/{planId}` |`GET` |Abfrage der Daten zu einem Plan über die PlanId +|`/plan/{planId}/archive` |`GET` |Abfrage des XPlanArchiv über die PlanId |`/plan/{planId}` |`DELETE` |Löschen eines Plans -|`/plan/name/{planName}` |`GET` |Abfrage der Daten zu einem Plan über den Plannamen |`/plans?planName={name}` |`GET` |Suche nach Plänen über den Plannamen |`/plan/{planId}/basisdaten` |`GET` |Abfrage von Basisdaten zu einem Plan |`/plan/{planId}/basisdaten` |`PUT` |Hinzufügen/Ersetzen von Basisdaten zu einem Plan diff --git a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanManager_Grundlagen.adoc b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanManager_Grundlagen.adoc index 3858be42497b110392f5f818af5877be39cf8915..33f3619361cdf1a8560e54ea51e43697e4d4c898 100644 --- a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanManager_Grundlagen.adoc +++ b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanManager_Grundlagen.adoc @@ -20,6 +20,8 @@ Das XPlanGML-Dokument muss folgende Eigenschaften aufweisen: `aendertPlanBereich/XP_VerbundenerPlanBereich/verbundenerPlanBereich` oder `wurdeGeaendertVonPlanBereich/XP_VerbundenerPlanBereich/verbundenerPlanBereich`. Wird eines der Elemente in einem XPlanGML-Dokument verwendet, dann kann der Plan nicht importiert werden! +IMPORTANT: Vermeiden Sie Sonderzeichen im Plannamen `xplan:name` wie z. B. `:`, `&`, `#` , `/`, `\`, `?`, `@`, `"`, `'` oder Zeilenumbrüche. + [[xplanarchiv]] ==== Das XPlanArchiv @@ -35,8 +37,7 @@ Das XPlanArchiv ist eine ZIP-Datei (Dateiformat `application/zip`) mit folgendem ** `text/plain` ** `application/pdf` -IMPORTANT: Dateinamen dürfen keine Sonderzeichen wie z. B. `&`, `#` , `/`, `\`, `"`, `'` (doppeltes oder einfaches Anführungszeichen), -Leerzeichen oder auch Umlaute beinhalten. Groß- und Kleinschreibung in den Dateinamen (auch der Dateiendung) werden berücksichtigt +IMPORTANT: Dateinamen dürfen keine Sonderzeichen wie z. B. `:`, `&`, `#` , `/`, `\`, `?`, `@`, `"`, `'` (doppeltes oder einfaches Anführungszeichen), Leerzeichen oder auch Umlaute beinhalten. Groß- und Kleinschreibung in den Dateinamen und auch der Dateiendung werden berücksichtigt und müssen vollständig mit den Referenzen im Dokument übereinstimmen! [[referenzierung-von-rasterdaten-im-xplangml]] diff --git a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanValidator_Web.adoc b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanValidator_Web.adoc index e55010fd1c1af0640e0f19ccd74b93cb6467dfe8..b5785ba5918542cf62e8fc7c23d69257146df08f 100644 --- a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanValidator_Web.adoc +++ b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanValidator_Web.adoc @@ -77,7 +77,7 @@ Die semantische Validierung überprüft die fachlich-inhaltliche Kohärenz der X Die Konformitätsregeln sind für die Version 5.0 und höher optimiert! ==== -Eine XPlanGML-Datei ist dann zu der jeweiligen XPlanGML-Version konform, wenn das XMLDokument gegen das jeweilige XPlanGML Schema validiert und alle in den Konformitätsbedingungen spezifizierten Regeln erfüllt werden. +Eine XPlanGML-Datei ist dann zu der jeweiligen XPlanGML-Version konform, wenn das XML-Dokument gegen das jeweilige XPlanGML Schema validiert und alle in den Konformitätsbedingungen spezifizierten Regeln erfüllt werden. [NOTE] ==== diff --git a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanWMS.adoc b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanWMS.adoc index a5d20bfe3d01090ba4d0f0d8377b4b0b7df41f3b..419c8b8abd2f5e99bf951d1c6d4fc103d5ba6513 100644 --- a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanWMS.adoc +++ b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/XPlanWMS.adoc @@ -36,17 +36,15 @@ http://<host>:<port>/xplan-services-wms/services/wms? [[xplanwms-adresse-xplanwerkwms]] ==== Adresse des XPlanWerkWMS -Die Adresse des XPlanWerkWMS ist abhängig von dem Planwerk das angefragt werden soll. Der Name des Plans wird im XPlanManager (s. <<xplanmanager-web>>) in der Auflistung der Pläne angezeigt und in der URL für den Platzhalter <PLANNAME> angegeben. Der Planname wird aus dem XPlanGML-Element `xplan:name` abgeleitet. Dabei werden Sonderzeichen wie `/` entfernt und der Planname für die Erstellung der URL des XPlanWerkWMS kodiert (weitere Informationen zu URL Syntax und Zeichenkodierung in https://datatracker.ietf.org/doc/html/rfc3986[RFC 3986 – Uniform Resource Identifier (URI)]). +Die Adresse des XPlanWerkWMS ist abhängig vom Namen des Planwerks, das angefragt werden soll. Der Name des Plans wird im XPlanManager (s. <<xplanmanager-web>>) in der Auflistung der Pläne angezeigt und in der URL für den Platzhalter <PLANNAME> angegeben. Der Planname wird aus dem XPlanGML-Element `xplan:name` abgeleitet. Dabei werden Sonderzeichen wie `/` entfernt und der Planname für die Erstellung der URL des XPlanWerkWMS kodiert (weitere Informationen zu URL Syntax und Zeichenkodierung in https://datatracker.ietf.org/doc/html/rfc3986[RFC 3986 – Uniform Resource Identifier (URI)]). -Die vollständige XPlanWerkWMS URL kann über die Kartenvorschau im XPlanManagerWeb abgerufen werden. - -IMPORTANT: Vermeiden Sie Sonderzeichen im Plannamen wie z. B. `:`, `&`, `#` , `/`, `\`, `?`, `@`, `'`, `"` oder Zeilenumbrüche. +Die vollständige URL des XPlanWerkWMS kann über die Kartenvorschau im XPlanManagerWeb abgerufen werden. ---- http://<host>:<port>/xplan-services-wms/services/planwerkwms/planname/<PLANNAME> ---- -TIP: Alternativ kann die URL auch ohne Sonderzeichen verwendet werden. Dafür müssen alle anderen Zeichen als `a-zA-Z0-9-_` aus <PLANNAME> entfernt werden. Die so erstellte URL liefert eine identische Response wie die dazugehörige, kodierte URL. +TIP: Neben der kodierten URL kann auch der Planname ohne Sonderzeichen verwendet werden. Dafür müssen alle anderen Zeichen als `a-zA-Z0-9-_` aus <PLANNAME> entfernt werden. Die so erstellte URL liefert die identische Response wie die dazugehörige, kodierte URL. [[xplanwms-adresse-xplanartwms]] ==== Adresse des XPlanArtWMS diff --git a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/aenderungsHistorie.adoc b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/aenderungsHistorie.adoc index 77be25e43da2724fc151ef6bea1482c1917ee32e..f7c53a41037c67979810eccd19684f9ea2b0b600 100644 --- a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/aenderungsHistorie.adoc +++ b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/aenderungsHistorie.adoc @@ -2,6 +2,23 @@ [[Aenderungshistorie]] == Änderungshistorie der xPlanBox +[[Aenderungshistorie-8.0.1]] +=== Version 8.0.1 + +==== Erweiterungen +- Konfigurationsoption für den Path-Style access für den Zugriff auf S3 hinzugefügt +- Konfigurationsoption für die Angabe eines RabbitMQ Virtual Host hinzugefügt + +==== Fehlerbehebungen + +- Doppelte Angabe der _internalId_ im XPlanGML bei Import eines Plans über XPlanManagerAPI mit Query-Parameter internalId und internalId im XPlanGML behoben +- Fehlende Ausgabe der _internalId_ aus dem importierten XPlanGML durch XPlanManagerAPI behoben +- Fehlerhaftes Datumsformat in Textreferenzen in XPlanManagerAPI v2 behoben +- Fehlerhafter HTTP Statuscode bei Angabe eines invaliden Datumsformat in PUT/POST JSON-Model der XPlanManagerAPI behoben +- Fehler in XPlanMapServer durch Zugriff auf die Georeferenzen in der Tabelle _xplanmgr.plans_ behoben +- Ausgabe des Elements _rasterType_ in der Ressource /api/v2/info im XPlanManagerAPI entfernt + + [[Aenderungshistorie-8.0]] === Version 8.0 @@ -14,6 +31,7 @@ Neben Fehlerbehebungen sowie Erweiterungen und Verbesserungen an den Komponenten - Ausgabe von Validierungsfehlern als GeoJSON im XPlanValidator - Aufteilung des Validierungsberichts je Planwerk in einer XPlanGML-Datei - Erweiterung von XPlanValidatorAPI und XPlanManagerAPI um Prüfungen von referenzierten Rasterdaten auf gültiges CRS und Bildformat +- Aktualisierung der Validierungsregeln auf v1.1.10 - Verbesserung der Initialisierung des XPlanManager - Einführung der REST-API Version 2 (v2) für XPlanManagerAPI und XPlanValidatorAPI mit asynchroner Verarbeitung über RabbitMQ - Verbesserter Validierungsbericht in REST-API v2 diff --git a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/bekannteProbleme.adoc b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/bekannteProbleme.adoc index fc384f3883695c28eacfe79e999f844b779bd80e..cb18117d30081abfa2f2da25d8f0891106d693f0 100644 --- a/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/bekannteProbleme.adoc +++ b/xplan-documentation/xplan-benutzerhandbuch/src/main/asciidoc/bekannteProbleme.adoc @@ -60,13 +60,18 @@ Wird beim Import eines Plans mit Rasterdaten die Option "Weiter ohne Rasterdaten Wenn ein Plan mit Rasterdaten über den XPlanManagerWeb mit aktivierter Übernahme der Rasterdaten importiert wird, werden die Rasterdaten übernommen und in der Kartenvorschau angezeigt. Wird der Plan erneut importiert, aber mit aktivierter Option "ohne Rasterdaten importieren", führt dies dazu, dass die Rasterdaten auch bei dem zuvor importierten Plan nicht mehr in der Kartenvorschau angezeigt werden. +==== XPlanManagerWeb/XPlanManagerAPI - Fehler beim Editieren: Multiple representations of the same entity + +Wird ein XPlanArchiv mit Anhängen z. B. Begleitdokumenten importiert und sind diese Dateien nicht oder durch eine absolute URL im XPlanGML referenziert, dann kommt es beim Hinzufügen einer Datei mit dem gleichen Namen über die Editierfunktion im XPlanManagerWeb oder entsprechende Funktion in der XPlanManagerAPI zu einem Fehler. +Ein solches XPlanArchiv kann entstehen, wenn ein XPlanArchiv über den XPlanManagerWeb oder die XPlanManagerAPI exportiert wird und die XPlanDokumenteAPI aktiviert ist. Dann werden die externen Referenzen von der xPlanBox automatisch angepasst. Das exportierte XPlanArchiv beinhaltet alle Anhänge des Plans sowie die absoluten Referenzen auf die XPlanDokumenteAPI im XPlanGML. + ==== XPlanDokumenteAPI - Abruf des World-Files bei GeoTIFF nicht möglich Bei Import eines Plans mit einer im XPlanGML referenzierten GeoTIFF-Datei als Rasterbasis und zusätzlich auch noch einem referenzierten World-File (tfw-Datei), dann ist die tfw-Datei nicht über die XPlanDokumenteAPI abfragbar. Wird die im exportierten XPlanGML angegebene URL aufgerufen, kann die tfw-Datei nicht abgerufen werden und ein HTTP-Statusfehler "404 - Not Found" wird von der XPlanDokumenteAPI zurückgegeben. -==== XPlanDokumenteAPI/XPlanManagerAPI/XPlanManagerWeb - Import von exportierten Plänen bei aktivierter XPlanDokumenteAPI nicht möglich +==== XPlanDokumenteAPI/XPlanManagerAPI/XPlanManagerWeb - Re-Import von exportierten Plänen mit Rasterdaten bei aktivierter XPlanDokumenteAPI nicht möglich -Wenn die XPlanDokumenteAPI aktiviert ist und ein XPlanArchiv mit Begleitdokumenten importiert wurde, dann werden die externen Referenzen von der xPlanBox automatisch angepasst. Wird das XPlanGML-Instanzdokument über den XPlanManagerAPI oder -Web wieder exportiert, dann müssen vor einem erneuten Import in die xPlanBox alle Referenzen manuell angepasst werden. +Wenn die XPlanDokumenteAPI aktiviert ist und ein XPlanArchiv mit Rasterdaten importiert wurde, dann werden die Referenzen auf die Rasterdaten von der xPlanBox automatisch angepasst. Wird das XPlanGML-Instanzdokument über den XPlanManagerAPI oder -Web wieder exportiert, dann müssen vor einem erneuten Import in die xPlanBox die Referenzen manuell angepasst werden. ==== XPlanValidatorAPI - Verwendung von vollqualifizierten Pfaden im HTTP-Header "X-Filename" diff --git a/xplan-documentation/xplan-betriebshandbuch/pom.xml b/xplan-documentation/xplan-betriebshandbuch/pom.xml index b141561e55360d556dc4f576d0e7052808cd7c98..3657a8127f1a90afc2739f1ddabaa6afefe577a4 100644 --- a/xplan-documentation/xplan-betriebshandbuch/pom.xml +++ b/xplan-documentation/xplan-betriebshandbuch/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-documentation</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/aktualisierung.adoc b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/aktualisierung.adoc index 7a7de63583c86b931d0fb805fdc731e278e1e1b6..cf5031cd5dfcb592304b01537c6818dad7ff712f 100644 --- a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/aktualisierung.adoc +++ b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/aktualisierung.adoc @@ -145,6 +145,22 @@ Zur Aktualisierung der Daten steht das <<kommandozeilen-anwendung,Kommandozeilen Weitere Informationen zum Kommandozeilenwerkzeug sind im Abschnitt <<kommandozeilen-anwendung>> beschrieben. +[[aktualisierung-version-8.0.1]] +=== Aktualisierung auf die Version 8.0.1 + +Für eine Installation der Bugfix-Version müssen folgende Schritte ausgeführt werden: + +* Austausch der Webapps: +** _xplan-manager-api.war_ +** _xplan-manager-web.war_ +** _xplan-validator-api.war_ +** _xplan-validator-executor.jar_ +** _xplan-dokumente-api.war_ +* Aktualisierung der Datenbank XPlanDB: +** Führen Sie das Liquibase-Skript wie in <<konfiguration-xplandb-liquibase>> beschrieben aus. + +TIP: Alle anderen Komponenten sind unverändert und müssen nicht aktualisiert werden. + [[aktualisierung-version-8.0]] === Aktualisierung auf die Version 8.0 diff --git a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/architektur.adoc b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/architektur.adoc index 11f916f703cbcb1de723f4f836974b3b674a821f..fd4874ef045e5db86f9245e8b3d14528fbed1d79 100644 --- a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/architektur.adoc +++ b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/architektur.adoc @@ -15,8 +15,10 @@ Das Gesamtsystem setzt sich aus folgenden Komponenten zusammen: * <<xplandokumente-api,XPlanDokumenteAPI>> * <<xplanvalidator-executor,XPlanValidatorExecutor>> * <<xplanwms,XPlanWMS, XPlanArtWMS und XPlanWerkWMS>> +* <<xplanmapserver,XPlanMapServer>> * <<xplanwfs,XPlanWFS>> * <<xplansynwfs,XPlanSynWFS>> +* <<xplanmapproxy,XPlanMapProxy>> * <<xplaninspirepluwms,XPlanInspirePluWMS>> * <<xplaninspirepluwfs,XPlanInspirePluWFS>> * <<xplanclitools,XPlanCLI Tools>> @@ -102,6 +104,13 @@ Der XPlanWMS greift auf dasselbe Datenbankschema wie der <<xplansynwfs>> in der Während der XPlanWMS planübergreifend arbeitet, beschränkt sich der XPlanWerkWMS auf einzelne Planwerke. Der XPlanArtWMS stellt je einen Endpunkt für jede Planart wie z. B. BPlan oder FPlan zur Verfügung. +[[xplanmapserver]] +=== XPlanMapServer + +Der XPlanMapServer ist auf dem Standard Web Map Service +(Version 1.1.1 und 1.3.0) des Open Geospatial Consortium (OGC) +basierender Kartendienst. Dieser bietet die Möglichkeit die Rasterdaten zu einem Planwerk abzufragen. + [[xplanwfs]] === XPlanWFS @@ -117,6 +126,13 @@ XPlanGML-Anwendungsschemas (XPlanSynGML). Dieses stellt eine vereinfachte und zusammenfassende Form der verschiedenen XPlanGML Versionen dar. Der XPlanSynWFS greift auf das synthetisierte Datenbankschema in der <<xplandb>> zu. +[[xplanmapproxy]] +=== XPlanMapProxy + +Der XPlanMapProxy ist auf dem Standard Web Map Service +(Version 1.1.1 und 1.3.0) und Web Map Tiling Service 1.0.0 des Open Geospatial Consortium (OGC) +basierender Kartendienst. Dieser bietet die Möglichkeiten kaskadierend auf die Inhalte des XPlanWMS und XPlanMapServer mit Cache-Funktion zuzugreifen. + [[xplaninspirepluwms]] === XPlanInspirePluWMS diff --git a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/installation/mapserver.adoc b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/installation/mapserver.adoc index 6327258d3da3028c4c3dbf3a730cd7eb5bc82fce..0e2a952813643b8342d1231dc54af21627331fd3 100644 --- a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/installation/mapserver.adoc +++ b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/installation/mapserver.adoc @@ -12,11 +12,11 @@ NOTE:: Der MapServer wird zusammen mit einem S3-Objektspeicher verwendet und erf [[installation-mapserver-linux]] ==== Linux -MapServer 8.0 kann über den Paketmanager der Linux-Distribution installiert werden. Weitere Hinweise zur Installation sind in der https://mapserver.org/installation/unix.html#installation[Installationsanleitung des MapServer] zu finden. +MapServer kann über den Paketmanager der Linux-Distribution installiert werden. Weitere Hinweise zur Installation sind in der https://mapserver.org/installation/unix.html#installation[Installationsanleitung des MapServer] zu finden. [[installation-mapserver-windows]] ==== Windows -MapServer 8.0 für Windows kann bei http://www.gisinternals.com/[GISInternals] heruntergeladen werden. +MapServer für Windows kann bei http://www.gisinternals.com/[GISInternals] heruntergeladen werden. diff --git a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/manager/externeReferenzen.adoc b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/manager/externeReferenzen.adoc index 1b050fc5786f04ab1161a44b9b5a43bd4776ef0c..329c7bb76f08feab7fa08294195d73ce22f46dfe 100644 --- a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/manager/externeReferenzen.adoc +++ b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/manager/externeReferenzen.adoc @@ -1,7 +1,9 @@ [[konfiguration-externe-refrenzen]] === Bereitstellung von Rasterdaten und Begleitdokumenten über API aktivieren -Um im XPlanManager den Austausch der relativen URLs in absolute URLs für den direkten Abruf der Rasterdaten und/oder Begleitdokumenten eines XPlanArchivs zu aktivieren, muss die Basis-URL der Schnittstelle über die Umgebungsvariable `XPLAN_DOCUMENT_URL_PUBLIC` gesetzt werden. Diese Erweiterung kann nur verwendet werden, wenn keine Daten in der XPlanDB vorhanden sind. +Um im XPlanManager den Austausch der relativen URLs in absolute URLs für den direkten Abruf der Rasterdaten und/oder Begleitdokumenten eines XPlanArchivs zu aktivieren, muss die Basis-URL der Schnittstelle über die Umgebungsvariable `XPLAN_DOCUMENT_URL_PUBLIC` gesetzt werden. + +Wenn die `XPLAN_DOCUMENT_URL_PUBLIC` nicht gesetzt ist, dann werden die im XPlanGML referenzierten Begleitdokumente unverändert in die Datenhaltung der XPlanDB übernommen. .Beispiel für die Verwendung der XPlanDokumenteAPI [source,properties] @@ -22,8 +24,7 @@ Beim Import eines XPlanArchivs mit Rasterdaten und/oder Begleitdokumenten werden * XPlanWMS: GetFeatureInfo-Anfrage in allen unterstützen Formaten (GML, HTML, TEXT) * XPlanWFS: GetFeature-Anfrage (insbs. GML-Format) * XPlanSynWFS: GetFeature-Anfrage (insbs. GML-Format) - * XPlanManagerWeb/XPlanManagerAPI: Abruf des XPlanGML + * XPlanManagerWeb/XPlanManagerAPI: Abruf des XPlanArchivs mit dem XPlanGML-Dokument -CAUTION: Wenn bereits Pläne in die XPlanDB importiert wurden, dann ist eine nachträgliche Umstellung auf Verwendung der XPlanDokumenteAPI nicht möglich, da der Datenbestand in der XPlanDB nicht automatisch angepasst werden kann. +CAUTION: Wenn bereits Pläne in die XPlanDB importiert wurden, dann ist eine nachträgliche Umstellung auf Verwendung der XPlanDokumenteAPI nicht möglich. Der Datenbestand in der XPlanDB wird nicht automatisch angepasst! Auch die nachträgliche Änderung der URL für die Umgebungsvariable `XPLAN_DOCUMENT_URL_PUBLIC` ist aus diesem Grund nicht möglich. -NOTE: Wenn die `XPLAN_DOCUMENT_URL_PUBLIC` nicht gesetzt ist, dann werden die im XPlanGML referenzierten Begleitdokumente unverändert in die Datenhaltung der XPlanDB übernommen und können über die <<konfiguration-xplanwms-gfi,GetAttachment-Operation des XPlanWMS>> abgerufen werden. diff --git a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/ueberblick.adoc b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/ueberblick.adoc index 930d85ac14f99fc1181094157ba4d882859360de..6ecd7f2c056173061496f84ceb0f6349a8981340 100644 --- a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/ueberblick.adoc +++ b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/ueberblick.adoc @@ -99,7 +99,7 @@ IMPORTANT: Unterstützt wird MapServer 8.0+. [[mapproxy]] === MapProxy -Optional kann https://mapproxy.org/[MapProxy] installiert werden. MapProxy kann als Proxy kaskadierend für den XPlanWMS und MapServer mit Cache-Funktion verwendet werden, um den Zugriff auf Raster- und Vektorebenen des XPlanWMS und MapServer zu beschleunigen. Der Zugriff auf MapProxy erfolgt über die Standardschnittstellen WMS und WMTS. Weitere Informationen zur Installation befinden sich im Abschnitt <<installation-mapproxy>>. +Optional kann https://mapproxy.org/[MapProxy] installiert werden. MapProxy kann als Proxy kaskadierend für den XPlanWMS und XPlanMapServer mit Cache-Funktion verwendet werden, um den Zugriff auf Raster- und Vektorebenen des XPlanWMS und XPlanMapServer zu beschleunigen. Der Zugriff auf MapProxy erfolgt über die Standardschnittstellen WMS und WMTS. Weitere Informationen zur Installation befinden sich im Abschnitt <<installation-mapproxy>>. IMPORTANT: Unterstützt wird MapProxy 1.16.0. diff --git a/xplan-documentation/xplan-webpages/pom.xml b/xplan-documentation/xplan-webpages/pom.xml index f7a1a3c4d28e535409feb94b10304eb86312136d..2f379cb522e68d5fe9bd4d40b9562e4907aa6a7d 100644 --- a/xplan-documentation/xplan-webpages/pom.xml +++ b/xplan-documentation/xplan-webpages/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-documentation</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-dokumente/pom.xml b/xplan-dokumente/pom.xml index 5d4974bc0395ca8282a0408674ae58ba41a26ffd..db8d2ceb0f66a6833c6d3b196f51c30e0867f696 100644 --- a/xplan-dokumente/pom.xml +++ b/xplan-dokumente/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplanbox</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <modules> diff --git a/xplan-dokumente/xplan-dokumente-api/pom.xml b/xplan-dokumente/xplan-dokumente-api/pom.xml index 63319536efdd57a369f4e1259111dc44986c9a89..54db9dc6e15bcb08fe085ca94d26d316f2263ceb 100755 --- a/xplan-dokumente/xplan-dokumente-api/pom.xml +++ b/xplan-dokumente/xplan-dokumente-api/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-dokumente</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-dokumente/xplan-dokumente-config/pom.xml b/xplan-dokumente/xplan-dokumente-config/pom.xml index eea11b8e6bd45122fefa655fff1056599df4772e..54ec94888e5104adf01006a4a62027fd95a34562 100644 --- a/xplan-dokumente/xplan-dokumente-config/pom.xml +++ b/xplan-dokumente/xplan-dokumente-config/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-dokumente</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-manager/pom.xml b/xplan-manager/pom.xml index 3e027c718b0b32cd54ac0b83ee4f31d76c4c2042..1b1253fcc38403684471c8abc64997aec74a29fe 100644 --- a/xplan-manager/pom.xml +++ b/xplan-manager/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplanbox</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <modules> diff --git a/xplan-manager/xplan-manager-api/pom.xml b/xplan-manager/xplan-manager-api/pom.xml index 1a49fb9bb8fcbe6f3b68e1c1adbf971c08f90221..8c35db7434deff20092f004f6b09a224aa735ee5 100644 --- a/xplan-manager/xplan-manager-api/pom.xml +++ b/xplan-manager/xplan-manager-api/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-manager</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/exception/ValidationExceptionMapper.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/exception/ValidationExceptionMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..90295f093baba0e5d270142435505718486945ae --- /dev/null +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/exception/ValidationExceptionMapper.java @@ -0,0 +1,44 @@ +/*- + * #%L + * xplan-core-api - Modul zur Gruppierung der Kernmodule + * %% + * Copyright (C) 2008 - 2025 Freie und Hansestadt Hamburg, developed by lat/lon gesellschaft für raumbezogene Informationssysteme mbH + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package de.latlon.xplanbox.api.manager.exception; + +import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST; + +import jakarta.validation.ValidationException; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.ext.ExceptionMapper; +import jakarta.ws.rs.ext.Provider; + +/** + * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a> + * @since 8.0.1 + */ +@Provider +public class ValidationExceptionMapper implements ExceptionMapper<ValidationException> { + + @Override + public Response toResponse(ValidationException exception) { + String msg = String.format("%s Cause: %s", exception.getMessage(), + exception.getCause() != null ? exception.getCause().getMessage() : "unknown"); + return Response.status(BAD_REQUEST).entity(msg).build(); + } + +} diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/handler/EditTextHandler.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/handler/EditTextHandler.java index ed608f2b97d3f5f7f408ae023f09ad79c1a9dfe9..c5040709d356a09b755e058230f301594a62c3dc 100644 --- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/handler/EditTextHandler.java +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/handler/EditTextHandler.java @@ -20,19 +20,19 @@ */ package de.latlon.xplanbox.api.manager.handler; -import de.latlon.xplan.manager.web.shared.XPlan; -import de.latlon.xplan.manager.web.shared.edit.XPlanToEdit; -import de.latlon.xplanbox.api.manager.exception.InvalidTextId; -import de.latlon.xplanbox.api.manager.v1.model.Text; -import org.springframework.stereotype.Component; - -import jakarta.inject.Singleton; import java.io.File; import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; +import de.latlon.xplanbox.api.manager.v2.model.Text; +import de.latlon.xplan.manager.web.shared.XPlan; +import de.latlon.xplan.manager.web.shared.edit.XPlanToEdit; +import de.latlon.xplanbox.api.manager.exception.InvalidTextId; +import jakarta.inject.Singleton; +import org.springframework.stereotype.Component; + /** * Handles editing of Text. * diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/handler/v2/ConfigHandlerV2.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/handler/v2/ConfigHandlerV2.java index 0b27a2df3c9f1e8d4623243f2f5b5ee6d14dac6b..cb9e641327ed7c88f543f5783db8feb032439813 100644 --- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/handler/v2/ConfigHandlerV2.java +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/handler/v2/ConfigHandlerV2.java @@ -22,7 +22,6 @@ package de.latlon.xplanbox.api.manager.handler.v2; import static org.slf4j.LoggerFactory.getLogger; -import java.util.Arrays; import java.util.List; import de.latlon.xplan.manager.configuration.ManagerConfiguration; @@ -65,22 +64,12 @@ public class ConfigHandlerV2 { @Autowired private List<String> activatedProfiles; - private enum RasterConfigurationSource { - - geotiff, mapserver - - } - public ManagerSystemConfig describeManagerSystem() { LOG.debug("Generating manager config information"); - RasterConfigurationSource rasterType = Arrays.stream(env.getActiveProfiles()) - .anyMatch(p -> RasterConfigurationSource.mapserver.name().equals(p)) ? RasterConfigurationSource.mapserver - : RasterConfigurationSource.geotiff; DefaultValidationConfiguration defaultValidationConfiguration = managerApiConfiguration .getDefaultValidationConfiguration(); return (ManagerSystemConfig) new ManagerSystemConfig().rasterCrs(defaultCrs) - .rasterType(rasterType.name()) .skipSemantisch(defaultValidationConfiguration.isSkipSemantisch()) .skipGeometrisch(defaultValidationConfiguration.isSkipGeometrisch()) .skipFlaechenschluss(defaultValidationConfiguration.isSkipFlaechenschluss()) diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/openapi/AbstractApiConfig.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/openapi/AbstractApiConfig.java index 51bb28403498ed9fab6520cf4ffdad2931a87c30..6e6ed400d77d82d1f6800a35f8691a182a8adeeb 100644 --- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/openapi/AbstractApiConfig.java +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/openapi/AbstractApiConfig.java @@ -36,6 +36,7 @@ import de.latlon.xplanbox.api.manager.config.ManagerApiConfiguration; import de.latlon.xplanbox.api.manager.exception.AmbiguousBereichNummernExceptionMapper; import de.latlon.xplanbox.api.manager.exception.PlanNotFoundExceptionMapper; import de.latlon.xplanbox.api.manager.exception.UnsupportedPlanExceptionMapper; +import de.latlon.xplanbox.api.manager.exception.ValidationExceptionMapper; import de.latlon.xplanbox.security.openapi.BearerSecurityOpenApiWriter; import io.swagger.v3.jaxrs2.integration.resources.BaseOpenApiResource; import io.swagger.v3.oas.models.ExternalDocumentation; @@ -71,6 +72,7 @@ public abstract class AbstractApiConfig extends ResourceConfig { register(openApiResource); register(ConstraintViolationExceptionMapper.class); + register(ValidationExceptionMapper.class); register(UnsupportedContentTypeExceptionMapper.class); register(ValidatorExceptionMapper.class); register(XPlanApiExceptionMapper.class); diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/openapi/v2/ApiV2Config.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/openapi/v2/ApiV2Config.java index 1e5d613ee413755e6b170b31b0b52155750c51b6..6a8a82296c3d804461e0501a029d21afb38314e8 100644 --- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/openapi/v2/ApiV2Config.java +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/openapi/v2/ApiV2Config.java @@ -103,7 +103,7 @@ public class ApiV2Config extends AbstractApiConfig { protected void addInfo(OpenAPI openApi, ManagerApiConfiguration managerApiConfiguration) { openApi.setInfo(new Info().title("XPlanManagerAPI") - .version("2.0.0") + .version("2.0.1") .description("XPlanManager REST API v2") .termsOfService(getTermsOfService(managerApiConfiguration)) .license(new License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0.html"))); diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v1/PlanTextApi.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v1/PlanTextApi.java index e79103d3567ac6cd0fdef35e2bdb6e463aed5bea..cecee0f0aa98f5840b81123e4fff19d19672ec5e 100644 --- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v1/PlanTextApi.java +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v1/PlanTextApi.java @@ -20,6 +20,9 @@ */ package de.latlon.xplanbox.api.manager.v1; +import static de.latlon.xplanbox.api.manager.v1.model.Text.convertToV1; +import static de.latlon.xplanbox.api.manager.v1.model.Text.convertToV2; + import java.io.File; import java.io.InputStream; import java.util.List; @@ -73,7 +76,7 @@ public class PlanTextApi { @ApiResponse(responseCode = "406", description = "Requested format is not available") }) public List<Text> getTexte(@PathParam("planId") @Parameter(description = "ID of the plan to be returned", example = "123") String planId) throws Exception { - return editTextHandler.retrieveTexte(planId); + return editTextHandler.retrieveTexte(planId).stream().map(Text::convertToV1).toList(); } @POST @@ -99,7 +102,7 @@ public class PlanTextApi { } Text text = textmodel.getValueAs(Text.class); File file = editTextHandler.storeAsFile(datei, dateiMeta); - return editTextHandler.addText(planId, text, file); + return convertToV1(editTextHandler.addText(planId, convertToV2(text), file)); } @GET @@ -118,7 +121,7 @@ public class PlanTextApi { @PathParam("id") @Parameter(description = "ID of the text to be returned (GML-Id of the feature)", example = "GML_ID_123") String id) throws Exception { - return editTextHandler.retrieveText(planId, id); + return convertToV1(editTextHandler.retrieveText(planId, id)); } @PUT @@ -148,7 +151,7 @@ public class PlanTextApi { } Text text = textmodel.getValueAs(Text.class); File file = editTextHandler.storeAsFile(datei, dateiMeta); - return editTextHandler.replaceText(planId, id, text, file); + return convertToV1(editTextHandler.replaceText(planId, id, convertToV2(text), file)); } } diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v1/model/Text.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v1/model/Text.java index 9490fd98c8451f04502ccf37027978efb1207c13..0288385a5d5d4af25c301a2a3682b10a8fe208fa 100644 --- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v1/model/Text.java +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v1/model/Text.java @@ -8,23 +8,27 @@ * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program 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 General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% */ package de.latlon.xplanbox.api.manager.v1.model; -import com.fasterxml.jackson.annotation.JsonProperty; -import de.latlon.xplan.manager.web.shared.edit.ExterneReferenzArt; -import de.latlon.xplan.manager.web.shared.edit.MimeTypes; -import de.latlon.xplan.manager.web.shared.edit.TextRechtscharacterType; +import static de.latlon.xplan.commons.util.TextPatternConstants.S_LENGTH; +import static de.latlon.xplan.commons.util.TextPatternConstants.TEXT_PATTERN; +import static de.latlon.xplan.commons.util.TextPatternConstants.XL_LENGTH; +import static de.latlon.xplan.commons.util.TextPatternConstants.XS_LENGTH; +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import de.latlon.xplanbox.api.commons.DateConverter; import jakarta.validation.Valid; import jakarta.validation.constraints.DecimalMax; import jakarta.validation.constraints.DecimalMin; @@ -33,12 +37,6 @@ import jakarta.validation.constraints.Size; import jakarta.xml.bind.annotation.XmlAccessType; import jakarta.xml.bind.annotation.XmlAccessorType; import jakarta.xml.bind.annotation.XmlRootElement; -import java.util.Objects; - -import static de.latlon.xplan.commons.util.TextPatternConstants.S_LENGTH; -import static de.latlon.xplan.commons.util.TextPatternConstants.TEXT_PATTERN; -import static de.latlon.xplan.commons.util.TextPatternConstants.XL_LENGTH; -import static de.latlon.xplan.commons.util.TextPatternConstants.XS_LENGTH; /** * Datatype for Text. @@ -71,47 +69,44 @@ public class Text { @DecimalMax("99999") private @Valid Integer rechtscharakter; - public static Text fromText(de.latlon.xplan.manager.web.shared.edit.Text oldText) { - return fromText(oldText.getFeatureId(), oldText); - } + public static Text convertToV1(de.latlon.xplanbox.api.manager.v2.model.Text textV2) { + de.latlon.xplanbox.api.manager.v2.model.Referenz refTextv2 = textV2.getRefText(); + return new Text().id(textV2.getId()) + .schluessel(textV2.getSchluessel()) + .gesetzlicheGrundlage(textV2.getGesetzlicheGrundlage()) + .text(textV2.getText()) + .rechtscharakter(textV2.getRechtscharakter()) + .refText(refTextv2 != null ? new Referenz().art(refTextv2.getArt()) + .beschreibung(refTextv2.getBeschreibung()) + .datum(DateConverter.convertToDate(refTextv2.getDatum())) + .georefMimeType(refTextv2.getGeorefMimeType()) + .georefURL(refTextv2.getGeorefURL()) + .informationssystemURL(refTextv2.getInformationssystemURL()) + .referenzMimeType(refTextv2.getReferenzMimeType()) + .referenzURL(refTextv2.getReferenzURL()) + .referenzName(refTextv2.getReferenzName()) : null); - public static Text fromText(String textId, de.latlon.xplan.manager.web.shared.edit.Text oldText) { - Referenz referenz = new Referenz().art(oldText.getArt() != null ? oldText.getArt().getCode() : null) - .beschreibung(oldText.getBeschreibung()) - .datum(oldText.getDatum()) - .georefMimeType(oldText.getGeorefMimeType() != null ? oldText.getGeorefMimeType().getCode() : null) - .georefURL(oldText.getGeoReference()) - .informationssystemURL(oldText.getInformationssystemURL()) - .referenzMimeType(oldText.getReferenzMimeType() != null ? oldText.getReferenzMimeType().getCode() : null) - .referenzURL(oldText.getReference()) - .referenzName(oldText.getReferenzName()); - Text text = new Text().id(textId) - .schluessel(oldText.getKey()) - .gesetzlicheGrundlage(oldText.getBasis()) - .text(oldText.getText()) - .rechtscharakter(oldText.getRechtscharakter() != null ? oldText.getRechtscharakter().getCode() : -1) - .refText(referenz); - return text; } - public de.latlon.xplan.manager.web.shared.edit.Text toText(String version, String type) { - de.latlon.xplan.manager.web.shared.edit.Text oldText = new de.latlon.xplan.manager.web.shared.edit.Text(); - oldText.setKey(schluessel); - oldText.setBasis(gesetzlicheGrundlage); - oldText.setText(text); - oldText.setRechtscharakter(TextRechtscharacterType.fromCode(rechtscharakter, version, type)); - if (refText != null) { - oldText.setReference(refText.getReferenzURL()); - oldText.setReferenzName(refText.getReferenzName()); - oldText.setReferenzMimeType(MimeTypes.getByCode(refText.getReferenzMimeType())); - oldText.setGeoReference(refText.getGeorefURL()); - oldText.setGeorefMimeType(MimeTypes.getByCode(refText.getGeorefMimeType())); - oldText.setArt(ExterneReferenzArt.getByCode(refText.getArt())); - oldText.setBeschreibung(refText.getBeschreibung()); - oldText.setDatum(refText.getDatum()); - oldText.setInformationssystemURL(refText.getInformationssystemURL()); - } - return oldText; + public static de.latlon.xplanbox.api.manager.v2.model.Text convertToV2(Text textV1) { + Referenz refTextV1 = textV1.getRefText(); + de.latlon.xplanbox.api.manager.v2.model.Text text = new de.latlon.xplanbox.api.manager.v2.model.Text() + .id(textV1.getId()) + .schluessel(textV1.getSchluessel()) + .gesetzlicheGrundlage(textV1.getGesetzlicheGrundlage()) + .text(textV1.getText()) + .rechtscharakter(textV1.getRechtscharakter()) + .refText(refTextV1 != null ? new de.latlon.xplanbox.api.manager.v2.model.Referenz().art(refTextV1.getArt()) + .beschreibung(refTextV1.getBeschreibung()) + .datum(DateConverter.convertToLocalDate(refTextV1.getDatum())) + .georefMimeType(refTextV1.getGeorefMimeType()) + .georefURL(refTextV1.getGeorefURL()) + .informationssystemURL(refTextV1.getInformationssystemURL()) + .referenzMimeType(refTextV1.getReferenzMimeType()) + .referenzURL(refTextV1.getReferenzURL()) + .referenzName(refTextV1.getReferenzName()) : null); + ; + return text; } public Text id(String id) { @@ -199,8 +194,8 @@ public class Text { /** * **/ - public Text rechtscharakter(int rechtscharakter) { - if (rechtscharakter > 0) + public Text rechtscharakter(Integer rechtscharakter) { + if (rechtscharakter != null && rechtscharakter > 0) this.rechtscharakter = rechtscharakter; else this.rechtscharakter = null; diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v2/PlanTextApi2.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v2/PlanTextApi2.java index 683471ec03bbb6a0a1fd1282f7fe99c33dd6dfbc..222a8d9c720177163b7d0fa529c81583ba1a6741 100644 --- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v2/PlanTextApi2.java +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v2/PlanTextApi2.java @@ -26,7 +26,7 @@ import java.util.List; import de.latlon.xplanbox.api.manager.exception.MissingRequestEntity; import de.latlon.xplanbox.api.manager.handler.EditTextHandler; -import de.latlon.xplanbox.api.manager.v1.model.Text; +import de.latlon.xplanbox.api.manager.v2.model.Text; import de.latlon.xplanbox.api.manager.validation.ModelValidator; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v2/model/ManagerSystemConfig.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v2/model/ManagerSystemConfig.java index b74d9feba1172bab178b6355203fbb34ef506dae..546b275ba1aaf4d60358f35f2a0273cbe62794c2 100644 --- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v2/model/ManagerSystemConfig.java +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v2/model/ManagerSystemConfig.java @@ -8,12 +8,12 @@ * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program 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 General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% @@ -46,8 +46,6 @@ public class ManagerSystemConfig extends SystemConfig { private @Valid String rasterCrs; - private @Valid String rasterType; - private @Valid Boolean skipSemantisch = false; private @Valid Boolean skipGeometrisch = false; @@ -79,24 +77,6 @@ public class ManagerSystemConfig extends SystemConfig { this.rasterCrs = rasterCrs; } - /** - * Typ der Rasterdatenhaltung: geotiff of mapserver - **/ - public ManagerSystemConfig rasterType(String rasterType) { - this.rasterType = rasterType; - return this; - } - - @Schema(example = "geotiff", description = "Typ der Rasterdatenhaltung: geotiff or mapserver") - @JsonProperty("rasterType") - public String getRasterType() { - return rasterType; - } - - public void setRasterType(String rasterType) { - this.rasterType = rasterType; - } - /** * Semantische Validierung bei Import ueberspringen **/ @@ -216,7 +196,6 @@ public class ManagerSystemConfig extends SystemConfig { } ManagerSystemConfig managerSystemConfig = (ManagerSystemConfig) o; return super.equals(o) && Objects.equals(this.rasterCrs, managerSystemConfig.rasterCrs) - && Objects.equals(this.rasterType, managerSystemConfig.rasterType) && Objects.equals(this.skipSemantisch, managerSystemConfig.skipSemantisch) && Objects.equals(this.skipGeometrisch, managerSystemConfig.skipGeometrisch) && Objects.equals(this.skipFlaechenschluss, managerSystemConfig.skipFlaechenschluss) @@ -226,8 +205,8 @@ public class ManagerSystemConfig extends SystemConfig { @Override public int hashCode() { - return Arrays.hashCode(new int[] { super.hashCode(), Objects.hash(rasterCrs, rasterType, skipSemantisch, - skipGeometrisch, skipFlaechenschluss, skipGeltungsbereich, skipLaufrichtung) }); + return Arrays.hashCode(new int[] { super.hashCode(), Objects.hash(rasterCrs, skipSemantisch, skipGeometrisch, + skipFlaechenschluss, skipGeltungsbereich, skipLaufrichtung) }); } @Override @@ -240,7 +219,6 @@ public class ManagerSystemConfig extends SystemConfig { .append(toIndentedString(getSupportedXPlanGmlVersions())) .append("\n"); sb.append(" rasterCrs: ").append(toIndentedString(rasterCrs)).append("\n"); - sb.append(" rasterType: ").append(toIndentedString(rasterType)).append("\n"); sb.append(" skipSemantisch: ").append(toIndentedString(skipSemantisch)).append("\n"); sb.append(" skipGeometrisch: ").append(toIndentedString(skipGeometrisch)).append("\n"); sb.append(" skipFlaechenschluss: ").append(toIndentedString(skipFlaechenschluss)).append("\n"); diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v2/model/Text.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v2/model/Text.java new file mode 100644 index 0000000000000000000000000000000000000000..f193b7702e8fc7a44e8780857b518a1264cc3ba3 --- /dev/null +++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/v2/model/Text.java @@ -0,0 +1,263 @@ +/*- + * #%L + * xplan-manager-api - Software zur Verwaltung von XPlanGML Daten + * %% + * Copyright (C) 2008 - 2025 Freie und Hansestadt Hamburg, developed by lat/lon gesellschaft für raumbezogene Informationssysteme mbH + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program 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 General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package de.latlon.xplanbox.api.manager.v2.model; + +import static de.latlon.xplan.commons.util.TextPatternConstants.S_LENGTH; +import static de.latlon.xplan.commons.util.TextPatternConstants.TEXT_PATTERN; +import static de.latlon.xplan.commons.util.TextPatternConstants.XL_LENGTH; +import static de.latlon.xplan.commons.util.TextPatternConstants.XS_LENGTH; + +import java.util.Objects; + +import com.fasterxml.jackson.annotation.JsonProperty; +import de.latlon.xplan.manager.web.shared.edit.ExterneReferenzArt; +import de.latlon.xplan.manager.web.shared.edit.MimeTypes; +import de.latlon.xplan.manager.web.shared.edit.TextRechtscharacterType; +import de.latlon.xplanbox.api.commons.DateConverter; +import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMax; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlRootElement; + +/** + * Datatype for Text. + * + * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz</a> + * @since 8.0.1 + */ +@XmlRootElement +@XmlAccessorType(XmlAccessType.FIELD) +public class Text { + + private String id; + + @Size(max = XS_LENGTH) + @Pattern(regexp = TEXT_PATTERN) + private @Valid String schluessel; + + @Size(max = S_LENGTH) + @Pattern(regexp = TEXT_PATTERN) + private @Valid String gesetzlicheGrundlage; + + @Size(max = XL_LENGTH) + @Pattern(regexp = TEXT_PATTERN) + private @Valid String text; + + private @Valid Referenz refText; + + @DecimalMin("1000") + @DecimalMax("99999") + private @Valid Integer rechtscharakter; + + public static Text fromText(de.latlon.xplan.manager.web.shared.edit.Text oldText) { + return fromText(oldText.getFeatureId(), oldText); + } + + public static Text fromText(String textId, de.latlon.xplan.manager.web.shared.edit.Text oldText) { + Referenz referenz = new Referenz().art(oldText.getArt() != null ? oldText.getArt().getCode() : null) + .beschreibung(oldText.getBeschreibung()) + .datum(DateConverter.convertToLocalDate(oldText.getDatum())) + .georefMimeType(oldText.getGeorefMimeType() != null ? oldText.getGeorefMimeType().getCode() : null) + .georefURL(oldText.getGeoReference()) + .informationssystemURL(oldText.getInformationssystemURL()) + .referenzMimeType(oldText.getReferenzMimeType() != null ? oldText.getReferenzMimeType().getCode() : null) + .referenzURL(oldText.getReference()) + .referenzName(oldText.getReferenzName()); + return new Text().id(textId) + .schluessel(oldText.getKey()) + .gesetzlicheGrundlage(oldText.getBasis()) + .text(oldText.getText()) + .rechtscharakter(oldText.getRechtscharakter() != null ? oldText.getRechtscharakter().getCode() : -1) + .refText(referenz); + } + + public de.latlon.xplan.manager.web.shared.edit.Text toText(String version, String type) { + de.latlon.xplan.manager.web.shared.edit.Text oldText = new de.latlon.xplan.manager.web.shared.edit.Text(); + oldText.setKey(schluessel); + oldText.setBasis(gesetzlicheGrundlage); + oldText.setText(text); + oldText.setRechtscharakter(TextRechtscharacterType.fromCode(rechtscharakter, version, type)); + if (refText != null) { + oldText.setReference(refText.getReferenzURL()); + oldText.setReferenzName(refText.getReferenzName()); + oldText.setReferenzMimeType(MimeTypes.getByCode(refText.getReferenzMimeType())); + oldText.setGeoReference(refText.getGeorefURL()); + oldText.setGeorefMimeType(MimeTypes.getByCode(refText.getGeorefMimeType())); + oldText.setArt(ExterneReferenzArt.getByCode(refText.getArt())); + oldText.setBeschreibung(refText.getBeschreibung()); + oldText.setDatum(DateConverter.convertToDate(refText.getDatum())); + oldText.setInformationssystemURL(refText.getInformationssystemURL()); + } + return oldText; + } + + public Text id(String id) { + this.id = id; + return this; + } + + @JsonProperty("id") + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * + **/ + public Text schluessel(String schluessel) { + this.schluessel = schluessel; + return this; + } + + @JsonProperty("schluessel") + public String getSchluessel() { + return schluessel; + } + + public void setSchluessel(String schluessel) { + this.schluessel = schluessel; + } + + /** + * + **/ + public Text gesetzlicheGrundlage(String gesetzlicheGrundlage) { + this.gesetzlicheGrundlage = gesetzlicheGrundlage; + return this; + } + + @JsonProperty("gesetzlicheGrundlage") + public String getGesetzlicheGrundlage() { + return gesetzlicheGrundlage; + } + + public void setGesetzlicheGrundlage(String gesetzlicheGrundlage) { + this.gesetzlicheGrundlage = gesetzlicheGrundlage; + } + + /** + * + **/ + public Text text(String text) { + this.text = text; + return this; + } + + @JsonProperty("text") + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + /** + * + **/ + public Text refText(Referenz refText) { + this.refText = refText; + return this; + } + + @JsonProperty("refText") + public Referenz getRefText() { + return refText; + } + + public void setRefText(Referenz refText) { + this.refText = refText; + } + + /** + * + **/ + public Text rechtscharakter(int rechtscharakter) { + if (rechtscharakter > 0) + this.rechtscharakter = rechtscharakter; + else + this.rechtscharakter = null; + return this; + } + + @JsonProperty("rechtscharakter") + public Integer getRechtscharakter() { + return rechtscharakter; + } + + public void setRechtscharakter(Integer rechtscharakter) { + this.rechtscharakter = rechtscharakter; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Text text = (Text) o; + return Objects.equals(this.schluessel, text.schluessel) + && Objects.equals(this.gesetzlicheGrundlage, text.gesetzlicheGrundlage) + && Objects.equals(this.text, text.text) && Objects.equals(this.refText, text.refText) + && Objects.equals(this.rechtscharakter, text.rechtscharakter); + } + + @Override + public int hashCode() { + return Objects.hash(schluessel, gesetzlicheGrundlage, text, refText, rechtscharakter); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Text {\n"); + + sb.append(" schluessel: ").append(toIndentedString(schluessel)).append("\n"); + sb.append(" gesetzlicheGrundlage: ").append(toIndentedString(gesetzlicheGrundlage)).append("\n"); + sb.append(" text: ").append(toIndentedString(text)).append("\n"); + sb.append(" refText: ").append(toIndentedString(refText)).append("\n"); + sb.append(" rechtscharakter: ").append(toIndentedString(rechtscharakter)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the + * first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} diff --git a/xplan-manager/xplan-manager-api/src/main/resources/application.properties b/xplan-manager/xplan-manager-api/src/main/resources/application.properties index 83110655a4ecebb519b1c0dafd17b57aaee279db..7facd9c78f5b96ab5e26ba1e155541a4dfa1f0bc 100644 --- a/xplan-manager/xplan-manager-api/src/main/resources/application.properties +++ b/xplan-manager/xplan-manager-api/src/main/resources/application.properties @@ -33,6 +33,7 @@ spring.rabbitmq.host=${XPLAN_RABBIT_HOST:localhost} spring.rabbitmq.password=${XPLAN_RABBIT_PASSWORD:guest} spring.rabbitmq.port=${XPLAN_RABBIT_PORT:5672} spring.rabbitmq.username=${XPLAN_RABBIT_USER:guest} +spring.rabbitmq.virtual-host=${XPLAN_RABBIT_VIRTUALHOST:} xplanbox.rabbitmq.public.topic.name=${XPLAN_RABBIT_PUBLIC_TOPIC} @@ -46,6 +47,7 @@ xplanbox.s3.accessKeyId=${XPLAN_S3_ACCESS_KEY} xplanbox.s3.endpoint.url=${XPLAN_S3_ENDPOINT} xplanbox.s3.region=${XPLAN_S3_REGION} xplanbox.s3.secretKey=${XPLAN_S3_SECRET_ACCESS_KEY} +xplanbox.s3.pathStyleAccessEnabled=${XPLAN_S3_PATHSTYLEACCESS_ENABLED:false} xplanbox.validation.profiles=${XPLAN_VALIDATION_PROFILES:} xplanbox.s3.bucket.validation=${XPLAN_S3_BUCKET_VALIDATION:validation} diff --git a/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/ManagerApiJerseyTest.java b/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/ManagerApiJerseyTest.java index 306943a35bf73e38b0f082ed2d1c17bbaf2452f6..a1918d0a9ccfa980736510fad82efdc0db02456d 100644 --- a/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/ManagerApiJerseyTest.java +++ b/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/ManagerApiJerseyTest.java @@ -26,6 +26,7 @@ import de.latlon.xplanbox.api.commons.exception.XPlanApiExceptionMapper; import de.latlon.xplanbox.api.manager.config.ApplicationContext; import de.latlon.xplanbox.api.manager.config.HsqlJpaContext; import de.latlon.xplanbox.api.manager.config.TestContext; +import de.latlon.xplanbox.api.manager.exception.ValidationExceptionMapper; import jakarta.ws.rs.core.Application; import org.glassfish.jersey.media.multipart.MultiPartFeature; import org.glassfish.jersey.server.ResourceConfig; @@ -56,6 +57,7 @@ public abstract class ManagerApiJerseyTest<T> extends JerseyTest { context.refresh(); resourceConfig.register(XPlanApiExceptionMapper.class); resourceConfig.register(MultiPartFeature.class); + resourceConfig.register(ValidationExceptionMapper.class); resourceConfig.packages("org.glassfish.jersey.examples.multipart"); resourceConfig.property("contextConfig", context); return resourceConfig; diff --git a/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/v2/PlanTextApi2Test.java b/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/v2/PlanTextApi2Test.java index e8fcfe6a3deda190e252e992c8a45f89fc14529c..a8994ccbc2d4ce4258e7d1f53b4677fe66575667 100644 --- a/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/v2/PlanTextApi2Test.java +++ b/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/v2/PlanTextApi2Test.java @@ -93,9 +93,23 @@ class PlanTextApi2Test extends ManagerApiJerseyTest<PlanTextApi2> { assertThat(response.getHeaderString(HttpHeaders.CONTENT_TYPE)).isEqualTo(APPLICATION_JSON); } + @Test + void verifyThat_replaceTextById_invalidDateTime_returnsCorrectStatusCodeForValidMediaType() + throws URISyntaxException { + FileDataBodyPart textmodel = createFileDataBodyPart("textmodel", "textmodel-datetime.json", + MediaType.APPLICATION_JSON_TYPE); + FileDataBodyPart filePart = createFileDataBodyPart("datei", "datei.pdf", null); + FormDataMultiPart multipart = (FormDataMultiPart) new FormDataMultiPart().bodyPart(filePart) + .bodyPart(textmodel); + + Response response = target("/plan/2/text/FEATURE_0f870967-bd6f-4367-9150-8a255f0290ad").request() + .put(Entity.entity(multipart, multipart.getMediaType())); + assertThat(response.getStatus()).isEqualTo(Response.Status.BAD_REQUEST.getStatusCode()); + } + private FileDataBodyPart createFileDataBodyPart(String name, String resource, MediaType mediaType) throws URISyntaxException { - File datei = new File(getClass().getResource("../v1/" + resource).toURI()); + File datei = new File(getClass().getResource("../v2/" + resource).toURI()); return new FileDataBodyPart(name, datei, mediaType); } diff --git a/xplan-manager/xplan-manager-api/src/test/resources/de/latlon/xplanbox/api/manager/v2/textmodel-datetime.json b/xplan-manager/xplan-manager-api/src/test/resources/de/latlon/xplanbox/api/manager/v2/textmodel-datetime.json new file mode 100644 index 0000000000000000000000000000000000000000..2a1c002ddeb8cd4c42bcf1b9b412c587ac8205c1 --- /dev/null +++ b/xplan-manager/xplan-manager-api/src/test/resources/de/latlon/xplanbox/api/manager/v2/textmodel-datetime.json @@ -0,0 +1,17 @@ +{ + "schluessel": "string", + "gesetzlicheGrundlage": "string", + "text": "string", + "refText": { + "georefURL": "string", + "georefMimeType": "string", + "art": "string", + "informationssystemURL": "string", + "referenzName": "string", + "referenzURL": "string", + "referenzMimeType": "string", + "beschreibung": "string", + "datum": "2021-08-31T14:19:35.752+0000" + }, + "rechtscharakter": 1000 +} diff --git a/xplan-manager/xplan-manager-api/src/test/resources/de/latlon/xplanbox/api/manager/v2/textmodel.json b/xplan-manager/xplan-manager-api/src/test/resources/de/latlon/xplanbox/api/manager/v2/textmodel.json new file mode 100644 index 0000000000000000000000000000000000000000..05192f972e92d6faa18c365fd6891df2a48c8ebc --- /dev/null +++ b/xplan-manager/xplan-manager-api/src/test/resources/de/latlon/xplanbox/api/manager/v2/textmodel.json @@ -0,0 +1,17 @@ +{ + "schluessel": "string", + "gesetzlicheGrundlage": "string", + "text": "string", + "refText": { + "georefURL": "string", + "georefMimeType": "string", + "art": "string", + "informationssystemURL": "string", + "referenzName": "string", + "referenzURL": "string", + "referenzMimeType": "string", + "beschreibung": "string", + "datum": "2021-08-31" + }, + "rechtscharakter": 1000 +} diff --git a/xplan-manager/xplan-manager-config/pom.xml b/xplan-manager/xplan-manager-config/pom.xml index f3fa97975580caff4e6e15425ef9188f617eeddf..4ebf572dafd520185933368fd6716e5271d5e80a 100644 --- a/xplan-manager/xplan-manager-config/pom.xml +++ b/xplan-manager/xplan-manager-config/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-manager</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-manager/xplan-manager-web/pom.xml b/xplan-manager/xplan-manager-web/pom.xml index 807e43f5c7eedd06140a1105bf36ef96a1f2447c..d4e75b89f775f98ba31b92c972a7c5b31eac45f8 100644 --- a/xplan-manager/xplan-manager-web/pom.xml +++ b/xplan-manager/xplan-manager-web/pom.xml @@ -9,7 +9,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-manager</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-tests/pom.xml b/xplan-tests/pom.xml index 7be9716243e53f1358c3bdb6d01d18d43312ba25..709407446f78d2f92aba754a799ba712c5045259 100644 --- a/xplan-tests/pom.xml +++ b/xplan-tests/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplanbox</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-tests/xplan-tests-integration/README.md b/xplan-tests/xplan-tests-integration/README.md index 0d13aef372cb5238c00ae6acf71909c4aff0a17d..1ab7f6f8f4cf386f0233236f0fc438e5db45d6e0 100644 --- a/xplan-tests/xplan-tests-integration/README.md +++ b/xplan-tests/xplan-tests-integration/README.md @@ -8,10 +8,10 @@ Bei einer lokale Ausführung der Tests muss der Webbrowser "Google Chrome" insta ``` mvn clean integration-test -Psystem-tests \ - -DXPLAN_VALIDATORAPI_URL_PUBLIC=https://xplanbox.lat-lon.de/xplan-validator-api \ - -DXPLAN_MANAGERAPI_URL_PUBLIC=https://xplanbox.lat-lon.de/xplan-manager-api \ - -DXPLAN_DOKUMENTEAPI_URL_PUBLIC=https://xplanbox.lat-lon.de/xplan-dokumente-api \ -DXPLAN_API_USERNAME=xplanbox -DXPLAN_API_PASSWORD='pwd' \ + -DXPLAN_DOKUMENTEAPI_URL_PUBLIC=https://xplanbox.lat-lon.de/xplan-dokumente-api \ + -DXPLAN_MANAGERAPI_URL_PUBLIC=https://xplanbox.lat-lon.de/xplan-manager-api \ + -DXPLAN_VALIDATORAPI_URL_PUBLIC=https://xplanbox.lat-lon.de/xplan-validator-api \ -DXPLAN_VALIDATOR_WEB_BASE_URL=https://xplanbox.lat-lon.de/xplan-validator-web \ -DXPLAN_VALIDATOR_WEB_USERNAME=xplanbox -DXPLAN_VALIDATOR_WEB_PASSWORD='PWD' ``` @@ -42,6 +42,7 @@ docker run --env XPLAN_VALIDATOR_WEB_BASE_URL=... xplanbox/xplan-tests-integrati - `SKIP_RABBIT_TESTS`: wenn `true` oder `1` werden die Tests ignoriert, für die eine Verbindung zum RabbitMQ Server benötigt wird. - `XPLAN_RABBIT_HOST`: der Host vom RabbitMQ Server (Default: `localhost`) - `XPLAN_RABBIT_PORT`: der Port vom RabbitMQ Server (Default: `5672`) +- `XPLAN_RABBIT_VIRTUALHOST`: der Virtual Host auf dem RabbitMQ Server (Default: ``) - `XPLAN_RABBIT_USER`: der Benutzername für die Verbindung zum RabbitMQ Server (Default: `guest`) - `XPLAN_RABBIT_PASSWORD`: das Passwort für die Verbindung zum RabbitMQ Server (Default: `guest`) - `XPLAN_RABBIT_PUBLIC_TOPIC`: der Name vom Topic Exchange (Default: `xplanbox-public`) diff --git a/xplan-tests/xplan-tests-integration/pom.xml b/xplan-tests/xplan-tests-integration/pom.xml index 5e36ca49917e4ccec1cc9b4b865c76d434720003..9cf797b9e76a9a14bc67e82972ca0d232d1e1e24 100644 --- a/xplan-tests/xplan-tests-integration/pom.xml +++ b/xplan-tests/xplan-tests-integration/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-tests</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-tests/xplan-tests-integration/runAllIntegrationTests.sh b/xplan-tests/xplan-tests-integration/runAllIntegrationTests.sh index df198263e234a82ff9dff731701694584436a5b6..6b106e5a5cbc5b985cd6a6f4098b88e0ddc51439 100755 --- a/xplan-tests/xplan-tests-integration/runAllIntegrationTests.sh +++ b/xplan-tests/xplan-tests-integration/runAllIntegrationTests.sh @@ -37,7 +37,7 @@ function waitForRightVersion() { ############################################ if [ -n "$XPLAN_NOTIFY_SLACK_CHANNEL" ] && [ -n "$XPLAN_NOTIFY_SLACK_TOKEN" ]; then - sendSlackMessage "Starting Integration tests..." + sendSlackMessage "Starting Integration tests (git revision: $GIT_REVISION)..." fi echo "Waiting for services with git revision $GIT_REVISION:" @@ -61,6 +61,12 @@ DISPLAY=:0 mvn integration-test -Psystem-tests \ -Dwebdriver.chrome.driver=/usr/bin/chromedriver kill -9 $xvfbPid +echo -e "\n" +echo "Results:" +results=`find target/surefire-reports/ -name 'TEST-*.xml' | xargs cat | grep "<testsuite" | sed 's/>.*/>/' | sed -e 's/[">]//g' -e 's/.*name=//' | sort` +echo -e "$results" +echo -e "\n" + echo "Generating html report..." mvn surefire-report:failsafe-report-only -q @@ -92,7 +98,9 @@ fi if [ -n "$XPLAN_NOTIFY_SLACK_CHANNEL" ] && [ -n "$XPLAN_NOTIFY_SLACK_TOKEN" ]; then echo "Sending slack notification to $XPLAN_NOTIFY_SLACK_CHANNEL" - message="Finished Integration tests" + formattedResults=`echo -e "$results" | sed 's/^/%0A* /'` + message="Finished Integration tests%0A\ +$formattedResults" if [ -n "$S3_PATH_PDF" ]; then message="$message%0A%0A\ Get test reports from S3 bucket with:%0A\ diff --git a/xplan-tests/xplan-tests-integration/src/test/java/de/latlon/xplanbox/tests/TestConfig.java b/xplan-tests/xplan-tests-integration/src/test/java/de/latlon/xplanbox/tests/TestConfig.java index 2b8e1a5d68e28af7fdf0cb427ffd06f1d83e93d8..eae1bcbd08f3380449a608f1b90d76c445d1d491 100644 --- a/xplan-tests/xplan-tests-integration/src/test/java/de/latlon/xplanbox/tests/TestConfig.java +++ b/xplan-tests/xplan-tests-integration/src/test/java/de/latlon/xplanbox/tests/TestConfig.java @@ -8,12 +8,12 @@ * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program 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 General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% @@ -30,8 +30,8 @@ public record TestConfig(String dokumenteApiBaseUrl, String managerApiBaseUrl, S String apiUsername, String apiPassword, String validatorWebBaseUrl, String validatorWebUsername, String validatorWebPassword, RabbitConfig rabbitConfig) { - public record RabbitConfig(String rabbitHost, int rabbitPort, String rabbitUsername, String rabbitPassword, - String publicTopicName, String publicTopicRoutingPrefix) { + public record RabbitConfig(String rabbitHost, int rabbitPort, String rabbitVirtualHost, String rabbitUsername, + String rabbitPassword, String publicTopicName, String publicTopicRoutingPrefix) { }; public static TestConfig getTestConfig() { @@ -51,13 +51,14 @@ public record TestConfig(String dokumenteApiBaseUrl, String managerApiBaseUrl, S String rabbitHost = getEnv("XPLAN_RABBIT_HOST", "localhost"); int rabbitPort = Integer.parseInt(getEnv("XPLAN_RABBIT_PORT", "5672"), 10); + String rabbitVirtualHost = getEnv("XPLAN_RABBIT_VIRTUALHOST", ""); String rabbitUsername = getEnv("XPLAN_RABBIT_USER", "guest"); String rabbitPassword = getEnv("XPLAN_RABBIT_PASSWORD", "guest"); String publicTopicName = getEnv("XPLAN_RABBIT_PUBLIC_TOPIC", "latlon.public"); String publicTopicRoutingPrefix = getEnv("XPLAN_RABBIT_PUBLIC_TOPIC_ROUTING_PREFIX", ""); - RabbitConfig rabbitConfig = new RabbitConfig(rabbitHost, rabbitPort, rabbitUsername, rabbitPassword, - publicTopicName, publicTopicRoutingPrefix); + RabbitConfig rabbitConfig = new RabbitConfig(rabbitHost, rabbitPort, rabbitVirtualHost, rabbitUsername, + rabbitPassword, publicTopicName, publicTopicRoutingPrefix); return new TestConfig(dokumenteApiBaseUrl, managerApiBaseUrl, validatorApiBaseUrl, apiUsername, apiPassword, validatorWebBaseUrl, validatorWebUsername, validatorWebPassword, rabbitConfig); } diff --git a/xplan-tests/xplan-tests-integration/src/test/java/de/latlon/xplanbox/tests/rabbit/AbstractRabbitITExecution.java b/xplan-tests/xplan-tests-integration/src/test/java/de/latlon/xplanbox/tests/rabbit/AbstractRabbitITExecution.java index e62d5b9d78f00c889ade1f2ec104458a3b782a5d..fd41537ab60cb97e65dc6f4826f5e5c0e793587d 100644 --- a/xplan-tests/xplan-tests-integration/src/test/java/de/latlon/xplanbox/tests/rabbit/AbstractRabbitITExecution.java +++ b/xplan-tests/xplan-tests-integration/src/test/java/de/latlon/xplanbox/tests/rabbit/AbstractRabbitITExecution.java @@ -8,12 +8,12 @@ * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program 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 General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% @@ -62,6 +62,7 @@ public abstract class AbstractRabbitITExecution { ConnectionFactory factory = new ConnectionFactory(); factory.setHost(rabbitConfig.rabbitHost()); factory.setPort(rabbitConfig.rabbitPort()); + factory.setVirtualHost(rabbitConfig.rabbitVirtualHost()); factory.setUsername(rabbitConfig.rabbitUsername()); factory.setPassword(rabbitConfig.rabbitPassword()); Connection connection = factory.newConnection(); diff --git a/xplan-tests/xplan-tests-integration/src/test/java/de/latlon/xplanbox/tests/rabbit/manager/ManagerPublicEventsIT.java b/xplan-tests/xplan-tests-integration/src/test/java/de/latlon/xplanbox/tests/rabbit/manager/ManagerPublicEventsIT.java index 14da7f6193820ecd6545567b6db6d66993bbaacd..fe8fed7fb783b1fd0598a5d7874e3dd8f0b79e38 100644 --- a/xplan-tests/xplan-tests-integration/src/test/java/de/latlon/xplanbox/tests/rabbit/manager/ManagerPublicEventsIT.java +++ b/xplan-tests/xplan-tests-integration/src/test/java/de/latlon/xplanbox/tests/rabbit/manager/ManagerPublicEventsIT.java @@ -8,12 +8,12 @@ * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program 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 General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * #L% @@ -29,6 +29,7 @@ import de.latlon.xplanbox.tests.FeignUtils; import de.latlon.xplanbox.tests.TestConfig; import de.latlon.xplanbox.tests.rabbit.AbstractRabbitITExecution; import feign.Feign; +import feign.auth.BasicAuthRequestInterceptor; import feign.jackson.JacksonDecoder; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable; @@ -48,6 +49,7 @@ class ManagerPublicEventsIT extends AbstractRabbitITExecution { .client(FeignUtils.unsecuredClient()) // .logger(new Logger.ErrorLogger()) // .logLevel(Level.FULL) + .requestInterceptor(new BasicAuthRequestInterceptor(testConfig.apiUsername(), testConfig.apiPassword())) .encoder(new SimpleBodyFileEncoder()) .decoder(new JacksonDecoder()) .target(ManagerApiV2.class, testConfig.managerApiBaseUrl()); diff --git a/xplan-tests/xplan-tests-manual/pom.xml b/xplan-tests/xplan-tests-manual/pom.xml index d809a0e504eab03639ce86f64604db89ed148809..74111a3b921739e0354965fcff3a4c28a9f2b80c 100644 --- a/xplan-tests/xplan-tests-manual/pom.xml +++ b/xplan-tests/xplan-tests-manual/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-tests</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> </project> diff --git a/xplan-tests/xplan-tests-soapui/pom.xml b/xplan-tests/xplan-tests-soapui/pom.xml index 7a6fb53f5d453b6927a7ee2ce99d8d623602e5c2..f585b8dd24f1dd569a8dc4aed1b8b77b4401cea0 100644 --- a/xplan-tests/xplan-tests-soapui/pom.xml +++ b/xplan-tests/xplan-tests-soapui/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-tests</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-tests/xplan-tests-soapui/runAllSoapUiTests.sh b/xplan-tests/xplan-tests-soapui/runAllSoapUiTests.sh index 50bfb8ebb6d062683f03e98befaab7796b8a579b..0707b022ee1b4c532303e9e00f9cd541236b559b 100755 --- a/xplan-tests/xplan-tests-soapui/runAllSoapUiTests.sh +++ b/xplan-tests/xplan-tests-soapui/runAllSoapUiTests.sh @@ -41,7 +41,7 @@ function waitForRightVersion() { ############################################ if [ -n "$XPLAN_NOTIFY_SLACK_CHANNEL" ] && [ -n "$XPLAN_NOTIFY_SLACK_TOKEN" ]; then - sendSlackMessage "Starting SoapUI tests..." + sendSlackMessage "Starting SoapUI tests (git revision: $GIT_REVISION)..." fi if [ -z ${XPLAN_DB_HOSTNAME+x} ]; then diff --git a/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api-soapui-project.xml b/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api-soapui-project.xml index 13bc028c376c5cfeec0cd882b74107438fa211d7..0e8ce2d30b9b1855543d5acd1aeca705be135ca1 100644 --- a/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api-soapui-project.xml +++ b/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api-soapui-project.xml @@ -13119,7 +13119,7 @@ if (jdbcUrl == ""){ <con:config xsi:type="con:JdbcRequestTestStep" convertColumnNamesToUpperCase="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:driver>org.postgresql.Driver</con:driver> <con:connectionString>${#Project#jdbcUrl}</con:connectionString> - <con:query>select plan,filename from xplanmgr.artefacts;</con:query> + <con:query>select plan,filename,artefacttype from xplanmgr.artefacts;</con:query> <con:assertion type="XPath Match" id="c626c665-ca92-4af6-8419-b36cb3dd893c" name="Exists postImg.png"> <con:configuration> <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdXPlanGML53}' and ARTEFACTS.FILENAME = 'postImg.png'])</path> @@ -13138,6 +13138,15 @@ if (jdbcUrl == ""){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="XPath Match" id="5710fe1e-6f12-4181-8694-e6c0b83b5cf2" name="postImg.pgw not RASTERBASIS"> + <con:configuration> + <path>/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdXPlanGML53}' and ARTEFACTS.FILENAME = 'postImg.pgw']/ARTEFACTS.ARTEFACTTYPE = 'RASTERBASIS'</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:properties/> </con:config> </con:testStep> @@ -13905,7 +13914,7 @@ if (jdbcUrl == ""){ <con:config xsi:type="con:JdbcRequestTestStep" convertColumnNamesToUpperCase="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:driver>org.postgresql.Driver</con:driver> <con:connectionString>${#Project#jdbcUrl}</con:connectionString> - <con:query>select plan,filename from xplanmgr.artefacts;</con:query> + <con:query>select plan,filename,artefacttype from xplanmgr.artefacts;</con:query> <con:assertion type="XPath Match" id="518f9564-7d7c-43a7-9bab-8af3c6ab860e" name="Exists postImg.png"> <con:configuration> <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdFPlan}' and ARTEFACTS.FILENAME = 'postImg.png'])</path> @@ -13924,6 +13933,15 @@ if (jdbcUrl == ""){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="XPath Match" id="518f9564-7d7c-43a7-9bab-8af3c6ab860e" name="postImg.pgw not RASTERBASIS"> + <con:configuration> + <path>/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdFPlan}' and ARTEFACTS.FILENAME = 'postImg.pgw']/ARTEFACTS.ARTEFACTTYPE = 'RASTERBASIS'</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:properties/> </con:config> </con:testStep> @@ -14204,7 +14222,7 @@ if (jdbcUrl == ""){ <con:config xsi:type="con:JdbcRequestTestStep" convertColumnNamesToUpperCase="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:driver>org.postgresql.Driver</con:driver> <con:connectionString>${#Project#jdbcUrl}</con:connectionString> - <con:query>select plan,filename from xplanmgr.artefacts;</con:query> + <con:query>select plan,filename,artefacttype from xplanmgr.artefacts;</con:query> <con:assertion type="XPath Match" id="b2bba16f-ae74-46ba-a523-30bc7163b8b2" name="Exists postImg.png"> <con:configuration> <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdLPlan}' and ARTEFACTS.FILENAME = 'postImg.png'])</path> @@ -14223,6 +14241,15 @@ if (jdbcUrl == ""){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="XPath Match" id="b2bba16f-ae74-46ba-a523-30bc7163b8b2" name="postImg.pgw not RASTERBASIS"> + <con:configuration> + <path>/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdLPlan}' and ARTEFACTS.FILENAME = 'postImg.pgw']/ARTEFACTS.ARTEFACTTYPE = 'RASTERBASIS'</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:properties/> </con:config> </con:testStep> @@ -14443,7 +14470,7 @@ if (jdbcUrl == ""){ <con:config xsi:type="con:JdbcRequestTestStep" convertColumnNamesToUpperCase="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:driver>org.postgresql.Driver</con:driver> <con:connectionString>${#Project#jdbcUrl}</con:connectionString> - <con:query>select plan,filename from xplanmgr.artefacts;</con:query> + <con:query>select plan,filename,artefacttype from xplanmgr.artefacts;</con:query> <con:assertion type="XPath Match" id="4e5d61b2-3df0-4601-a9c3-f73bf2304533" name="Exists postImg.png"> <con:configuration> <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdRPlan}' and ARTEFACTS.FILENAME = 'postImg.png'])</path> @@ -14462,6 +14489,15 @@ if (jdbcUrl == ""){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="XPath Match" id="4e5d61b2-3df0-4601-a9c3-f73bf2304533" name="postImg.pgw not RASTERBASIS"> + <con:configuration> + <path>/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdRPlan}' and ARTEFACTS.FILENAME = 'postImg.pgw']/ARTEFACTS.ARTEFACTTYPE = 'RASTERBASIS'</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:properties/> </con:config> </con:testStep> @@ -14684,7 +14720,7 @@ if (jdbcUrl == ""){ <con:config xsi:type="con:JdbcRequestTestStep" convertColumnNamesToUpperCase="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:driver>org.postgresql.Driver</con:driver> <con:connectionString>${#Project#jdbcUrl}</con:connectionString> - <con:query>select plan,filename from xplanmgr.artefacts;</con:query> + <con:query>select plan,filename,artefacttype from xplanmgr.artefacts;</con:query> <con:assertion type="XPath Match" id="403a72b4-1988-4e96-8c5f-5e89d77c0954" name="Exists postImg.png"> <con:configuration> <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdSOPlan}' and ARTEFACTS.FILENAME = 'postImg.png'])</path> @@ -14703,6 +14739,15 @@ if (jdbcUrl == ""){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="XPath Match" id="403a72b4-1988-4e96-8c5f-5e89d77c0954" name="postImg.pgw not RASTERBASIS"> + <con:configuration> + <path>/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdSOPlan}' and ARTEFACTS.FILENAME = 'postImg.pgw']/ARTEFACTS.ARTEFACTTYPE = 'RASTERBASIS'</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:properties/> </con:config> </con:testStep> @@ -15017,7 +15062,7 @@ if (jdbcUrl == ""){ <con:config xsi:type="con:JdbcRequestTestStep" convertColumnNamesToUpperCase="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:driver>org.postgresql.Driver</con:driver> <con:connectionString>${#Project#jdbcUrl}</con:connectionString> - <con:query>select plan,filename from xplanmgr.artefacts;</con:query> + <con:query>select plan,filename,artefacttype from xplanmgr.artefacts;</con:query> <con:assertion type="XPath Match" id="754f7477-aae0-4c92-b56e-1036ba3316aa" name="Exists putImg.png"> <con:configuration> <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdXPlanGML53}' and ARTEFACTS.FILENAME = 'putImg.png'])</path> @@ -15036,6 +15081,15 @@ if (jdbcUrl == ""){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="XPath Match" id="754f7477-aae0-4c92-b56e-1036ba3316aa" name="putImg.pgw not RASTERBASIS"> + <con:configuration> + <path>/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdXPlanGML53}' and ARTEFACTS.FILENAME = 'putImg.pgw']/ARTEFACTS.ARTEFACTTYPE = 'RASTERBASIS'</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:properties/> </con:config> </con:testStep> @@ -15823,7 +15877,7 @@ if (jdbcUrl == ""){ <con:config xsi:type="con:JdbcRequestTestStep" convertColumnNamesToUpperCase="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:driver>org.postgresql.Driver</con:driver> <con:connectionString>${#Project#jdbcUrl}</con:connectionString> - <con:query>select plan,filename from xplanmgr.artefacts;</con:query> + <con:query>select plan,filename,artefacttype from xplanmgr.artefacts;</con:query> <con:assertion type="XPath Match" id="4cf3837a-caf0-41de-b613-bb8739649972" name="Exists putImg.png"> <con:configuration> <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdFPlan}' and ARTEFACTS.FILENAME = 'putImg.png'])</path> @@ -15842,6 +15896,15 @@ if (jdbcUrl == ""){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="XPath Match" id="4cf3837a-caf0-41de-b613-bb8739649972" name="putImg.pgw not RASTERBASIS"> + <con:configuration> + <path>/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdFPlan}' and ARTEFACTS.FILENAME = 'putImg.pgw']/ARTEFACTS.ARTEFACTTYPE = 'RASTERBASIS'</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:properties/> </con:config> </con:testStep> @@ -16079,7 +16142,7 @@ if (jdbcUrl == ""){ <con:config xsi:type="con:JdbcRequestTestStep" convertColumnNamesToUpperCase="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:driver>org.postgresql.Driver</con:driver> <con:connectionString>${#Project#jdbcUrl}</con:connectionString> - <con:query>select plan,filename from xplanmgr.artefacts;</con:query> + <con:query>select plan,filename,artefacttype from xplanmgr.artefacts;</con:query> <con:assertion type="XPath Match" id="de22dc85-4185-4b18-a749-9c0dff0b4dbc" name="Exits putImg.png"> <con:configuration> <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdLPlan}' and ARTEFACTS.FILENAME = 'putImg.png'])</path> @@ -16098,6 +16161,15 @@ if (jdbcUrl == ""){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="XPath Match" id="de22dc85-4185-4b18-a749-9c0dff0b4dbc" name="putImg.pgw not RASTERBASIS"> + <con:configuration> + <path>/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdLPlan}' and ARTEFACTS.FILENAME = 'putImg.pgw']/ARTEFACTS.ARTEFACTTYPE = 'RASTERBASIS'</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:properties/> </con:config> </con:testStep> @@ -16335,7 +16407,7 @@ if (jdbcUrl == ""){ <con:config xsi:type="con:JdbcRequestTestStep" convertColumnNamesToUpperCase="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:driver>org.postgresql.Driver</con:driver> <con:connectionString>${#Project#jdbcUrl}</con:connectionString> - <con:query>select plan,filename from xplanmgr.artefacts;</con:query> + <con:query>select plan,filename,artefacttype from xplanmgr.artefacts;</con:query> <con:assertion type="XPath Match" id="941a4cb0-3f22-444a-a2ed-96301eee6b43" name="Exists putImg,png"> <con:configuration> <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdRPlan}' and ARTEFACTS.FILENAME = 'putImg.png'])</path> @@ -16354,6 +16426,15 @@ if (jdbcUrl == ""){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="XPath Match" id="941a4cb0-3f22-444a-a2ed-96301eee6b43" name="putImg.pgw not RASTERBASIS"> + <con:configuration> + <path>/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdRPlan}' and ARTEFACTS.FILENAME = 'putImg.pgw']/ARTEFACTS.ARTEFACTTYPE = 'RASTERBASIS'</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:properties/> </con:config> </con:testStep> @@ -16591,7 +16672,7 @@ if (jdbcUrl == ""){ <con:config xsi:type="con:JdbcRequestTestStep" convertColumnNamesToUpperCase="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:driver>org.postgresql.Driver</con:driver> <con:connectionString>${#Project#jdbcUrl}</con:connectionString> - <con:query>select plan,filename from xplanmgr.artefacts;</con:query> + <con:query>select plan,filename,artefacttype from xplanmgr.artefacts;</con:query> <con:assertion type="XPath Match" id="d096b504-060c-4dd0-9a83-73bf35f534df" name="Exists putImg.png"> <con:configuration> <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdSOPlan}' and ARTEFACTS.FILENAME = 'putImg.png'])</path> @@ -16610,6 +16691,15 @@ if (jdbcUrl == ""){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="XPath Match" id="d096b504-060c-4dd0-9a83-73bf35f534df" name="putImg.pgw not RASTERBASIS"> + <con:configuration> + <path>/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#currentPlanIdSOPlan}' and ARTEFACTS.FILENAME = 'putImg.pgw']/ARTEFACTS.ARTEFACTTYPE = 'RASTERBASIS'</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:properties/> </con:config> </con:testStep> @@ -22563,134 +22653,994 @@ assert expectedHeader == actualHeader</scriptText> </con:testStep> <con:properties/> </con:testCase> - <con:properties/> - </con:testSuite> - <con:testSuite id="0b9ba577-517d-4770-ae8b-842f1a09f403" name="Profiles v1 TestSuite"> - <con:settings/> - <con:runType>SEQUENTIAL</con:runType> - <con:testCase id="d85d5258-e301-44d8-ab37-b8bfae32ec8d" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/info TestCase" searchProperties="true"> + <con:testCase id="6e3f081e-c58c-47b4-908f-0e22727b413f" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Archive with internalId TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für den Import von Archiv mit internalId</con:description> <con:settings/> - <con:testStep type="restrequest" name="GET XX X.X XX showConfig" id="e6a87004-ca2f-4aa8-b721-f61ed8060d6c"> + <con:testStep type="httprequest" name="POST BP 5.3 xF,sS,sF,sG,sL importPlan" id="d76e1c11-2f61-44a4-b08c-9b998ad0e0c4"> <con:settings/> - <con:config service="XPlanManagerAPI" resourcePath="/info" methodName="showConfig" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:restRequest name="GET XX X.X XX showConfig" id="e9ab8dcf-b755-40af-baf7-aa17a2ca4cdc" mediaType="application/json"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1</con:endpoint> - <con:request/> - <con:originalUri>https://xplanbox.lat-lon.de/xmanager/api/v1/info</con:originalUri> - <con:assertion type="Valid HTTP Status Codes" id="8738532e-3368-48bb-a866-0b35c62f3643" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="9705d513-0993-43b9-9759-99e38583dfd5" name="JsonPath Existence Match id"> - <con:configuration> - <path>$.profiles[0].id</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="9705d513-0993-43b9-9759-99e38583dfd5" name="JsonPath Existence Match name"> - <con:configuration> - <path>$.profiles[0].name</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="9705d513-0993-43b9-9759-99e38583dfd5" name="JsonPath Existence Match description"> - <con:configuration> - <path>$.profiles[0].description</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="9705d513-0993-43b9-9759-99e38583dfd5" name="JsonPath Existence Match version"> - <con:configuration> - <path>$.profiles[0].version</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="9705d513-0993-43b9-9759-99e38583dfd5" name="JsonPath Existence Match source"> - <con:configuration> - <path>$.profiles[0].source</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:domain xsi:nil="true"/> - <con:authType>No Authorization</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:restRequest> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 5.3 xF,sS,sF,sG,sL importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1/plan</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>201</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="15cacc61-6240-4b6c-a361-b369fe6b4bcc" name="internalId"> + <con:configuration> + <path>$.xplanModelData.internalId</path> + <content>TESTID1</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>skipSemantisch</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipFlaechenschluss</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipLaufrichtung</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> </con:config> </con:testStep> - <con:testStep type="transfer" name="Property Transfer" id="35c10770-7e76-448c-873a-6e998e802208"> + <con:testStep type="transfer" name="POST BP 5.3 xF,sS,sF,sG,sL importPlan Property Transfer" id="2f6ff36c-8a5c-4a2e-9708-0ca97a7ca824"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="false" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>profilesId</con:name> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>GET XX X.X XX showConfig</con:sourceStep> - <con:sourcePath>$.profiles[0].id</con:sourcePath> - <con:targetType>profileId</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> + <con:sourceStep>POST BP 5.3 xF,sS,sF,sG,sL importPlan</con:sourceStep> + <con:sourcePath>$.id</con:sourcePath> + <con:targetType>planId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> <con:type>JSONPATH</con:type> <con:targetTransferType>JSONPATH</con:targetTransferType> <con:upgraded>true</con:upgraded> </con:transfers> </con:config> </con:testStep> - <con:properties/> - </con:testCase> - <con:testCase id="08dc4218-1cab-418d-a881-a9d3d90eec06" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan TestCase" searchProperties="true"> - <con:settings/> - <con:testStep type="restrequest" name="POST BP 4.1 sF,sS,pf importPlanWithProfil" id="70e48894-fd11-4425-b586-146f2f1fd0b9"> + <con:testStep type="httprequest" name="GET BP 5.3 pI retrievePlans" id="cbe70c4a-54f5-4ae0-9be2-ec8b4dfa4e06"> <con:settings/> - <con:config service="XPlanManagerAPI" resourcePath="/plan" methodName="import" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:restRequest name="POST BP 4.1 sF,sS,pf importPlanWithProfil" id="bf7971d6-e318-4bdc-b279-2bb920237af7" mediaType="application/octet-stream" postQueryString="false"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/vnd.xplanbox.api+json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1</con:endpoint> - <con:request/> - <con:originalUri>http://localhost/xplan-manager-api/xmanager/api/v1/plan</con:originalUri> - <con:assertion type="Valid HTTP Status Codes" id="175f3cab-acc4-43f8-857f-68775292193b" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>201,400</codes> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:domain xsi:nil="true"/> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:attachment> - <con:name>BP_4.1.zip</con:name> - <con:contentType>application/octet-stream</con:contentType> - <con:contentId>BP_4.1.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_4.1.zip</con:url> + <con:config method="GET" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="GET BP 5.3 pI retrievePlans" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1/plans</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="15cacc61-6240-4b6c-a361-b369fe6b4bcc" name="internalId"> + <con:configuration> + <path>$[0].xplanModelData.internalId</path> + <content>TESTID1</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>planId</con:name> + <con:value>${#TestCase#planId}</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.3 retrievePlanById" id="3680f45a-f2bd-4f35-b3ee-5ea4f666c7a7"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="GET BP 5.3 retrievePlanById" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1/plan/${#TestCase#planId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="15cacc61-6240-4b6c-a361-b369fe6b4bcc" name="internalId"> + <con:configuration> + <path>$.xplanModelData.internalId</path> + <content>TESTID1</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.3 retrievePlanByName" id="0ff0a343-72b0-4ed3-9c7d-496c8be15a26"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="GET BP 5.3 retrievePlanByName" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1/plan/name/BPlan002_5-3-soapui-internalid</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="15cacc61-6240-4b6c-a361-b369fe6b4bcc" name="internalId"> + <con:configuration> + <path>$[0].xplanModelData.internalId</path> + <content>TESTID1</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="DEL BP 5.3 pI deletePlan" id="7313e369-d921-402f-88aa-031731bda171"> + <con:settings/> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 5.3 pI deletePlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> + <con:configuration> + <path>$.message</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="Cleanup Properties" id="f8ff2c50-ec50-4fed-a546-580bc289407f"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>planId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>planId</con:name> + <con:value/> + </con:property> + </con:properties> + </con:testCase> + <con:testCase id="784702d8-a73c-4e00-80a3-5305679fabbc" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Archive with internalId and QueryParam internalId TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für den Import von Archiv mit internalId und Query-Parameter internalId</con:description> + <con:settings/> + <con:testStep type="httprequest" name="POST BP 5.3 xF,sS,sF,sG,sL,iI importPlan" id="45383389-521a-429a-a10c-7aad8cde0a9f"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 5.3 xF,sS,sF,sG,sL,iI importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1/plan</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>201</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="15cacc61-6240-4b6c-a361-b369fe6b4bcc" name="internalId"> + <con:configuration> + <path>$.xplanModelData.internalId</path> + <content>Test-overwrite-internalId</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>skipSemantisch</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipFlaechenschluss</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipLaufrichtung</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>internalId</con:name> + <con:value>Test-overwrite-internalId</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="POST BP 5.3 xF,sS,sF,sG,sL,iI importPlan Property Transfer" id="580c4fcf-b6af-4f71-a81e-baa30bedc9b8"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>POST BP 5.3 xF,sS,sF,sG,sL,iI importPlan</con:sourceStep> + <con:sourcePath>$.id</con:sourcePath> + <con:targetType>planId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.3 pI retrievePlans" id="c2448d4a-1988-4751-8fce-dd0abcfa5222"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="GET BP 5.3 pI retrievePlans" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1/plans</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="15cacc61-6240-4b6c-a361-b369fe6b4bcc" name="internalId"> + <con:configuration> + <path>$[0].xplanModelData.internalId</path> + <content>Test-overwrite-internalId</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>planId</con:name> + <con:value>${#TestCase#planId}</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.3 retrievePlanById" id="1110b405-fbcc-465b-86b8-3667af66ff59"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="GET BP 5.3 retrievePlanById" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1/plan/${#TestCase#planId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="15cacc61-6240-4b6c-a361-b369fe6b4bcc" name="internalId"> + <con:configuration> + <path>$.xplanModelData.internalId</path> + <content>Test-overwrite-internalId</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.3 retrievePlanByName" id="c12691e6-94b7-4587-a5d1-a328a8dfef5d"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="GET BP 5.3 retrievePlanByName" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1/plan/name/BPlan002_5-3-soapui-internalid</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="15cacc61-6240-4b6c-a361-b369fe6b4bcc" name="internalId"> + <con:configuration> + <path>$[0].xplanModelData.internalId</path> + <content>Test-overwrite-internalId</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="DEL BP 5.3 pI deletePlan" id="75dd56bb-dab8-4c52-bbca-c44be8196645"> + <con:settings/> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 5.3 pI deletePlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> + <con:configuration> + <path>$.message</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="Cleanup Properties" id="3d23f161-d5f6-4c45-b30d-27ac3529f625"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>planId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>planId</con:name> + <con:value/> + </con:property> + </con:properties> + </con:testCase> + <con:testCase id="0492331b-0833-40a6-84b1-089f6517cb0a" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Archive without internalId TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für den Import von Archiv ohne internalId</con:description> + <con:settings/> + <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL importPlan" id="5d28e30e-6c5f-4cf0-b8e4-503f8f8ada92"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1/plan</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>201</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="15cacc61-6240-4b6c-a361-b369fe6b4bcc" name="internalId"> + <con:configuration> + <path>$.xplanModelData.internalId</path> + <content>null</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan004_6-0.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>skipSemantisch</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipFlaechenschluss</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipLaufrichtung</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="POST BP 6.0 xF,sS,sF,sG,sL importPlan Property Transfer" id="dbfd7283-6d73-43b2-ae77-2e6e5fea7957"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>POST BP 6.0 xF,sS,sF,sG,sL importPlan</con:sourceStep> + <con:sourcePath>$.id</con:sourcePath> + <con:targetType>planId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0 pI retrievePlans" id="5affaf3c-4642-49ab-a54f-ab4688fb3e14"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="GET BP 6.0 pI retrievePlans" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1/plans</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="15cacc61-6240-4b6c-a361-b369fe6b4bcc" name="internalId"> + <con:configuration> + <path>$[0].xplanModelData.internalId</path> + <content>null</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>planId</con:name> + <con:value>${#TestCase#planId}</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0 retrievePlanById" id="e25500e9-6534-45fd-913b-c2c666dc866f"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="GET BP 6.0 retrievePlanById" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1/plan/${#TestCase#planId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="15cacc61-6240-4b6c-a361-b369fe6b4bcc" name="internalId"> + <con:configuration> + <path>$.xplanModelData.internalId</path> + <content>null</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0 retrievePlanByName" id="fe85d38d-fabf-42bb-9b55-e987ca04ad21"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="GET BP 6.0 retrievePlanByName" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1/plan/name/BPlan004_6-0</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="15cacc61-6240-4b6c-a361-b369fe6b4bcc" name="internalId"> + <con:configuration> + <path>$[0].xplanModelData.internalId</path> + <content>null</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="DEL BP 6.0 pI deletePlan" id="ab6cd953-f0b8-44fb-a1fc-cb0d438207f7"> + <con:settings/> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0 pI deletePlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> + <con:configuration> + <path>$.message</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="Cleanup Properties" id="0c2ed64a-4a0d-458f-8358-cf808d40e46e"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>planId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>planId</con:name> + <con:value/> + </con:property> + </con:properties> + </con:testCase> + <con:properties/> + </con:testSuite> + <con:testSuite id="0b9ba577-517d-4770-ae8b-842f1a09f403" name="Profiles v1 TestSuite"> + <con:settings/> + <con:runType>SEQUENTIAL</con:runType> + <con:testCase id="d85d5258-e301-44d8-ab37-b8bfae32ec8d" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/info TestCase" searchProperties="true"> + <con:settings/> + <con:testStep type="restrequest" name="GET XX X.X XX showConfig" id="e6a87004-ca2f-4aa8-b721-f61ed8060d6c"> + <con:settings/> + <con:config service="XPlanManagerAPI" resourcePath="/info" methodName="showConfig" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:restRequest name="GET XX X.X XX showConfig" id="e9ab8dcf-b755-40af-baf7-aa17a2ca4cdc" mediaType="application/json"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1</con:endpoint> + <con:request/> + <con:originalUri>https://xplanbox.lat-lon.de/xmanager/api/v1/info</con:originalUri> + <con:assertion type="Valid HTTP Status Codes" id="8738532e-3368-48bb-a866-0b35c62f3643" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="9705d513-0993-43b9-9759-99e38583dfd5" name="JsonPath Existence Match id"> + <con:configuration> + <path>$.profiles[0].id</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="9705d513-0993-43b9-9759-99e38583dfd5" name="JsonPath Existence Match name"> + <con:configuration> + <path>$.profiles[0].name</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="9705d513-0993-43b9-9759-99e38583dfd5" name="JsonPath Existence Match description"> + <con:configuration> + <path>$.profiles[0].description</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="9705d513-0993-43b9-9759-99e38583dfd5" name="JsonPath Existence Match version"> + <con:configuration> + <path>$.profiles[0].version</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="9705d513-0993-43b9-9759-99e38583dfd5" name="JsonPath Existence Match source"> + <con:configuration> + <path>$.profiles[0].source</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain xsi:nil="true"/> + <con:authType>No Authorization</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:restRequest> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="Property Transfer" id="35c10770-7e76-448c-873a-6e998e802208"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="false" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>profilesId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>GET XX X.X XX showConfig</con:sourceStep> + <con:sourcePath>$.profiles[0].id</con:sourcePath> + <con:targetType>profileId</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="08dc4218-1cab-418d-a881-a9d3d90eec06" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan TestCase" searchProperties="true"> + <con:settings/> + <con:testStep type="restrequest" name="POST BP 4.1 sF,sS,pf importPlanWithProfil" id="70e48894-fd11-4425-b586-146f2f1fd0b9"> + <con:settings/> + <con:config service="XPlanManagerAPI" resourcePath="/plan" methodName="import" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:restRequest name="POST BP 4.1 sF,sS,pf importPlanWithProfil" id="bf7971d6-e318-4bdc-b279-2bb920237af7" mediaType="application/octet-stream" postQueryString="false"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/vnd.xplanbox.api+json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1</con:endpoint> + <con:request/> + <con:originalUri>http://localhost/xplan-manager-api/xmanager/api/v1/plan</con:originalUri> + <con:assertion type="Valid HTTP Status Codes" id="175f3cab-acc4-43f8-857f-68775292193b" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>201,400</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain xsi:nil="true"/> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>BP_4.1.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BP_4.1.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_4.1.zip</con:url> <con:id>f164f967-c936-4019-aa8b-4fb3bda60c80</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -22714,15 +23664,967 @@ assert expectedHeader == actualHeader</scriptText> </con:restRequest> </con:config> </con:testStep> - <con:testStep type="transfer" name="Property Transfer" id="b23cc84c-19f3-4ee9-9924-d6a5f72d877f"> + <con:testStep type="transfer" name="Property Transfer" id="b23cc84c-19f3-4ee9-9924-d6a5f72d877f"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="false" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planIdProfile</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>POST BP 4.1 sF,sS,pf importPlanWithProfil</con:sourceStep> + <con:sourcePath>$.id</con:sourcePath> + <con:targetType>planIdProfile</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="387666a7-3721-4a64-849f-9b8e20c83581" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId} TestCase" searchProperties="true"> + <con:settings/> + <con:testStep type="restrequest" name="DEL BP 4.1 pI deletePlanWithProfil" id="5a05a8ff-fbd1-4621-b965-2905c8431ae7"> + <con:settings/> + <con:config service="XPlanManagerAPI" resourcePath="/plan/{planId}" methodName="delete" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:restRequest name="DEL BP 4.1 pI deletePlanWithProfil" id="d1cd7d2d-f354-4a5a-9fa0-1137ede48dcd" mediaType="application/json" postQueryString="false"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1</con:endpoint> + <con:request/> + <con:originalUri>http://localhost/xplan-manager-api/xmanager/api/v1/plan/</con:originalUri> + <con:assertion type="Valid HTTP Status Codes" id="859dc093-1e4d-4794-bcc1-58695077093f" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200,404</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain xsi:nil="true"/> + <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> + <con:preemptive>true</con:preemptive> + <con:authType>No Authorization</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <entry key="planId" value="${#TestSuite#planIdProfile}" xmlns="http://eviware.com/soapui/config"/> + </con:parameters> + </con:restRequest> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="aedaa003-bb2b-42b6-958c-57575e10ec85" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Cleanup Properties" searchProperties="true"> + <con:description>Gesetzte Werte werden wieder geleert</con:description> + <con:settings/> + <con:testStep type="transfer" name="Property Transfer" id="e40cda18-0926-49de-8cac-07dd1d3f6f89"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="false" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>profileId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>profileId</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="false" disabled="false" entitize="false" ignoreEmpty="false" transferChildNodes="false" transferToAll="false" useXQuery="false"> + <con:name>planIdProfile</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:sourcePath xsi:nil="true"/> + <con:targetType>planIdProfile</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:targetPath xsi:nil="true"/> + <con:type>XPATH</con:type> + <con:targetTransferType>XPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value/> + </con:property> + </con:properties> + </con:testCase> + <con:properties> + <con:property> + <con:name>profileId</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>planIdProfile</con:name> + <con:value/> + </con:property> + </con:properties> + </con:testSuite> + <con:testSuite id="a4f05c8c-eedf-42f6-be20-b18452375de0" name="XPlanManagerAPI v2 TestSuite"> + <con:description>TestSuite für XPlanManagerAPI version 2</con:description> + <con:settings/> + <con:runType>SEQUENTIAL</con:runType> + <con:testCase id="07ae12f0-ac5e-4cb1-8f1b-1e1eece581b8" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/ TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/"-Pfad</con:description> + <con:settings/> + <con:testStep type="httprequest" name="GET XX X.X XX openAPI" id="f14c1458-23c0-457b-b6d6-4edf36743743"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="726e80e0-3694-4e52-a9ca-a38258fe7503" name="GET XX X.X XX openAPI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="b1659bc9-5975-48fe-8c72-3bdf99daca0f" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="2e5a7efa-134b-4a50-b960-dff030686f34" name="openapi"> + <con:configuration> + <path>$.openapi</path> + <content>3.0.1</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath RegEx Match" id="c7bcd776-0947-4d88-923d-e40eb4bb599c" name="info.version"> + <con:configuration> + <path>$.info.version</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + <regEx>2.*</regEx> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="338faceb-131f-43eb-bf38-2bf035ec149f" name="path /"> + <con:configuration> + <path>$.paths./.get.operationId</path> + <content>openApi</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="338faceb-131f-43eb-bf38-2bf035ec149f" name="path /plan response 200 description"> + <con:configuration> + <path>$.paths./plan.post.responses.200.description</path> + <content>ImportReceipt with uuid of the import</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="338faceb-131f-43eb-bf38-2bf035ec149f" name="path /report/{uuid}"> + <con:configuration> + <path>$.paths./report/{uuid}.get.operationId</path> + <content>reportByUuid</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="2397109c-69bb-40f6-9b5a-2f5db5d69ade" name="path /report/{uuid}/geomfindings"> + <con:configuration> + <path>$.paths./report/{uuid}/geomfindings.get.operationId</path> + <content>geomfindingsByUuid</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="fc254bba-c565-40fd-be0b-d265e6144a76" name="path /report/{uuid}/geomfindings response 406 exists"> + <con:configuration> + <path>$.paths./report/{uuid}/geomfindings.get.responses.406</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="GroovyScriptAssertion" id="eb77ee0a-79c2-4ea5-a3c0-4bc0011fcd06" name="path /report/{uuid}/geomfindings.json"> + <con:configuration> + <scriptText>import groovy.json.JsonSlurper + +def json = new JsonSlurper().parseText(messageExchange.response.responseContent) + +assert json.paths.'/report/{uuid}/geomfindings.json'.get.operationId == 'geomfindingsJsonByUuid'</scriptText> + </con:configuration> + </con:assertion> + <con:assertion type="GroovyScriptAssertion" id="01846f0c-e87d-4974-9eb6-38ed2e944029" name="path /report/{uuid}/geomfindings.json response 406 exists"> + <con:configuration> + <scriptText>import groovy.json.JsonSlurper + +def json = new JsonSlurper().parseText(messageExchange.response.responseContent) + +assert json.paths.'/report/{uuid}/geomfindings.json'.get.responses.'406'</scriptText> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="baefa2ef-b925-44ef-b1bb-3e43e1a95a34" name="schema PlanInfo"> + <con:configuration> + <path>$.components.schemas.PlanInfo</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="a0fe450e-b235-4d07-bf3b-edd930c011f6" name="schema ValidationReport geomfindings"> + <con:configuration> + <path>$.components.schemas.ValidationReport.properties.geomfindings.$ref</path> + <content>#/components/schemas/FeatureCollection</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="GroovyScriptAssertion" id="4b10252b-c0ec-478b-8e74-b6f23c599c6b" name="securitySchemes"> + <con:configuration> + <scriptText>import groovy.json.JsonSlurper + +def jwtUrl = context.testCase.testSuite.project.getPropertyValue("jwtUrl"); + +if (jwtUrl != ""){ + def response = messageExchange.response.responseContent + def json = new JsonSlurper().parseText(response) + + def type = json.components.securitySchemes.Bearer.type + def scheme = json.components.securitySchemes.Bearer.scheme + def bearerFormat = json.components.securitySchemes.Bearer.bearerFormat + + assert(type == "http") + assert(scheme == "bearer") + assert(bearerFormat == "JWT") +}</scriptText> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="a0fe450e-b235-4d07-bf3b-edd930c011f6" name="schema Referenz datum"> + <con:configuration> + <path>$.components.schemas.Referenz.properties.datum.format</path> + <content>date</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET XX X.X XX invalidAcceptHeaderExpectError406" id="3b94ce9c-2426-464d-88fd-c906032c818c"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="726e80e0-3694-4e52-a9ca-a38258fe7503" name="GET XX X.X XX invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="b1659bc9-5975-48fe-8c72-3bdf99daca0f" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>406</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="9a952141-6600-4b2d-bccd-de0ce037bb89" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/info TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/info"-Pfad</con:description> + <con:settings/> + <con:testStep type="httprequest" name="GET XX X.X XX showConfig" id="11e7c2b5-68da-4905-bd1c-1dcc75ca2195"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="ada729bc-f24a-41d6-bcf5-4dd34948e273" name="GET XX X.X XX showConfig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/info</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="860eaa41-d4c0-4b28-9e32-132c7e894b18" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="1beb64fd-81c2-46b9-b690-f88938a487fc" name="hasVersion"> + <con:configuration> + <path>$.version</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="GroovyScriptAssertion" id="bf3730ab-4f4d-4167-b404-d09046ef994c" name="versionNotNull"> + <con:configuration> + <scriptText>import groovy.json.JsonSlurper + +json = new JsonSlurper().parseText(messageExchange.response.responseContent) +assert !(json.isEmpty()) + +assert json.version != null</scriptText> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="a525ec99-c1ee-4ed3-a1f4-19760fc2d1c0" name="supportedXPlanGmlVersions"> + <con:configuration> + <path>$.supportedXPlanGmlVersions</path> + <content>["XPLAN_40","XPLAN_41","XPLAN_50","XPLAN_51","XPLAN_52","XPLAN_53","XPLAN_54","XPLAN_60"]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET XX X.X XX invalidAcceptHeaderExpectError406" id="d28565da-26c0-4317-aa52-63895156e99a"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="ada729bc-f24a-41d6-bcf5-4dd34948e273" name="GET XX X.X XX invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/info</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="860eaa41-d4c0-4b28-9e32-132c7e894b18" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>406</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="e68513c7-b782-498e-9a43-fab6619cbbb3" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/plan"-Pfad</con:description> + <con:settings/> + <con:testStep type="httprequest" name="POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS importPlan" id="6b5d393f-424c-42fe-a468-ca531d60500d"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> + <con:configuration> + <path>$.uuid</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> + <con:configuration> + <path>$.statusLink</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> + <con:configuration> + <path>$.statusLink.href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BP_6.0.2.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0.2.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>skipSemantisch</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipFlaechenschluss</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipLaufrichtung</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter required="false" disableUrlEncoding="false"> + <con:name>internalId</con:name> + <con:value>soapui-test-id</con:value> + <con:style>QUERY</con:style> + <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> + <con:default/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>planStatus</con:name> + <con:value>FESTGESTELLT</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS importPlan Property Transfer" id="51ebcb92-bc33-47c6-9d74-b252f2f85fb6"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>uuid</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS importPlan</con:sourceStep> + <con:sourcePath>$.uuid</con:sourcePath> + <con:targetType>uuid</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="POST BP 6.0.2 pf invalidProfile" id="236ab532-d435-41e6-abde-5689be19b3e6"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0.2 pf invalidProfile" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> + <con:configuration> + <path>$.uuid</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> + <con:configuration> + <path>$.statusLink</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> + <con:configuration> + <path>$.statusLink.href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>FP_6.0.2.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0.2.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>profiles</con:name> + <con:value>invalid</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="POST BP 6.0.2 pf invalidProfile Property Transfer" id="4539114b-8cab-4e41-ab2b-9f1094957446"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>uuidInvalidProfile</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>POST BP 6.0.2 pf invalidProfile</con:sourceStep> + <con:sourcePath>$.uuid</con:sourcePath> + <con:targetType>uuidInvalidProfile</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="POST BP 6.0.2 XX mismatchingContentTypeAndFileType" id="4132883a-577d-4e97-a182-5759d85f25f2"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0.2 XX mismatchingContentTypeAndFileType" postQueryString="false" mediaType="text/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="c1df2d96-38e5-4318-8284-ad41312a8676" name="uuidExists"> + <con:configuration> + <path>$.uuid</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="c1df2d96-38e5-4318-8284-ad41312a8676" name="statusLinkExists"> + <con:configuration> + <path>$.statusLink</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="c1df2d96-38e5-4318-8284-ad41312a8676" name="hrefExists"> + <con:configuration> + <path>$.statusLink.href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>text/xml</con:contentType> + <con:contentId>FP_6.0.2.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0.2.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="POST BP 6.0.2 XX mismatchingContentTypeAndFileType Property Transfer" id="5b0ec99a-1f44-466a-b4da-403b4d20455a"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>uuidMismatchingTypes</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>POST BP 6.0.2 XX mismatchingContentTypeAndFileType</con:sourceStep> + <con:sourcePath>$.uuid</con:sourcePath> + <con:targetType>uuidMismatchingTypes</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="POST BP 6.0.2 XX invalidXSSExpectError400" id="401dbcc9-16e7-47bf-a7ed-21612d9fbf6d"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0.2 XX invalidXSSExpectError400" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="//"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>400</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BP_6.0.2.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0.2.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="POST BP 6.0.2 XX invalidAcceptHeaderExpectError406" id="03a65e66-247d-401c-bf31-853be62db322"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0.2 XX invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>406</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>FP_6.0.2.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0.2.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="POST BP 6.0 XX unsupportedMediaTypeZipExpectError415" id="5dfe142f-87e9-419c-b271-c608e7ec8393"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 XX unsupportedMediaTypeZipExpectError415" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>415</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>FP_6.0.2.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/Blankenese29_Test_60_InvalidContent.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="POST XX X.X XX unsupportedMediaTypeOdtExpectError415" id="e7b57a24-6f3d-4127-a9c2-53742acf6fc2"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST XX X.X XX unsupportedMediaTypeOdtExpectError415" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>415</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>FP_6.0.2.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/invalidContentType.odt</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="0bd6341f-a662-4437-9ac7-b4c14284ff61" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/status/{uuid} TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/status/{uuid}"-Pfad</con:description> + <con:settings/> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX pollStatus" id="21e02ed1-eb99-46e0-a831-776df2391487"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuid}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> + <con:configuration> + <path>$.status</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="groovy" name="pollStatus" id="07dfd200-af16-409e-9ec5-bf0d892d3f34"> + <con:settings/> + <con:config> + <script>import groovy.json.JsonSlurper + +def testStepName = "GET BP 6.0.2 XX pollStatus" +def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") +def json = new JsonSlurper().parseText(response) + +if( context.loopIndex == null ) + context.loopIndex = 0 + +if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ + sleep(1000) + testRunner.gotoStepByName(testStepName) +} else if (context.loopIndex == 40) { + context.loopIndex = null + assert(false) +} else { + context.loopIndex = null +}</script> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveStatus" id="7b5e345d-819e-4561-8158-053c5005060b"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuid}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="d27fd88e-b78e-4e28-acfc-dc25276fc1a1" name="status"> + <con:configuration> + <path>$.status</path> + <content>IMPORT_FINISHED</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="320f668b-21ff-4589-a944-cfbd07931e2a" name="importedPlanIdsExists"> + <con:configuration> + <path>$.importedPlanIds</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="493b851d-f4cf-4289-90b8-3cb49d482b72" name="linksExists"> + <con:configuration> + <path>$.links</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath RegEx Match" id="af671b26-7707-43bd-a3c9-5f085cd3dff5" name="schema report"> + <con:configuration> + <path>$.links[?(@.rel == 'report' && @.type == 'application/json')].schema</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + <regEx>^.*/api/v2#/components/schemas/ValidationReport.*$</regEx> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath RegEx Match" id="af671b26-7707-43bd-a3c9-5f085cd3dff5" name="schema planinfo"> + <con:configuration> + <path>$.links[?(@.rel == 'planinfo' && @.type == 'application/json')].schema</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + <regEx>/api/v2#/components/schemas/PlanInfo</regEx> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath RegEx Match" id="d9eefe15-72b1-4ead-a022-0839c587fcda" name="href report json"> + <con:configuration> + <path>$.links[?(@.rel == 'report' && @.type == 'application/json')].href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath RegEx Match" id="d9eefe15-72b1-4ead-a022-0839c587fcda" name="href report pdf"> + <con:configuration> + <path>$.links[?(@.rel == 'report' && @.type == 'application/pdf')].href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath RegEx Match" id="d9eefe15-72b1-4ead-a022-0839c587fcda" name="href planinfo"> + <con:configuration> + <path>$.links[?(@.rel == 'planinfo' && @.type == 'application/json')].href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + <regEx>^.*/api/v2/plan/.*$</regEx> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="GET BP 6.0.2 XX retrieveStatus Property Transfer" id="185a9506-2d65-4ce0-8891-af698dcdca55"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="false" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>planIdProfile</con:name> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 4.1 sF,sS,pf importPlanWithProfil</con:sourceStep> - <con:sourcePath>$.id</con:sourcePath> - <con:targetType>planIdProfile</con:targetType> + <con:sourceStep>GET BP 6.0.2 XX retrieveStatus</con:sourceStep> + <con:sourcePath>$.importedPlanIds[0]</con:sourcePath> + <con:targetType>planId</con:targetType> <con:targetStep>#TestSuite#</con:targetStep> <con:type>JSONPATH</con:type> <con:targetTransferType>JSONPATH</con:targetTransferType> @@ -22730,227 +24632,221 @@ assert expectedHeader == actualHeader</scriptText> </con:transfers> </con:config> </con:testStep> - <con:properties/> - </con:testCase> - <con:testCase id="387666a7-3721-4a64-849f-9b8e20c83581" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId} TestCase" searchProperties="true"> - <con:settings/> - <con:testStep type="restrequest" name="DEL BP 4.1 pI deletePlanWithProfil" id="5a05a8ff-fbd1-4621-b965-2905c8431ae7"> - <con:settings/> - <con:config service="XPlanManagerAPI" resourcePath="/plan/{planId}" methodName="delete" xsi:type="con:RestRequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:restRequest name="DEL BP 4.1 pI deletePlanWithProfil" id="d1cd7d2d-f354-4a5a-9fa0-1137ede48dcd" mediaType="application/json" postQueryString="false"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/xmanager/api/v1</con:endpoint> - <con:request/> - <con:originalUri>http://localhost/xplan-manager-api/xmanager/api/v1/plan/</con:originalUri> - <con:assertion type="Valid HTTP Status Codes" id="859dc093-1e4d-4794-bcc1-58695077093f" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200,404</codes> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:domain xsi:nil="true"/> - <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> - <con:preemptive>true</con:preemptive> - <con:authType>No Authorization</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters> - <entry key="planId" value="${#TestSuite#planIdProfile}" xmlns="http://eviware.com/soapui/config"/> - </con:parameters> - </con:restRequest> - </con:config> - </con:testStep> - <con:properties/> - </con:testCase> - <con:testCase id="aedaa003-bb2b-42b6-958c-57575e10ec85" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Cleanup Properties" searchProperties="true"> - <con:description>Gesetzte Werte werden wieder geleert</con:description> - <con:settings/> - <con:testStep type="transfer" name="Property Transfer" id="e40cda18-0926-49de-8cac-07dd1d3f6f89"> - <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="false" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>profileId</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>profileId</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="false" disabled="false" entitize="false" ignoreEmpty="false" transferChildNodes="false" transferToAll="false" useXQuery="false"> - <con:name>planIdProfile</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:sourcePath xsi:nil="true"/> - <con:targetType>planIdProfile</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:targetPath xsi:nil="true"/> - <con:type>XPATH</con:type> - <con:targetTransferType>XPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> - </con:config> - </con:testStep> - <con:properties> - <con:property> - <con:name>empty</con:name> - <con:value/> - </con:property> - </con:properties> - </con:testCase> - <con:properties> - <con:property> - <con:name>profileId</con:name> - <con:value/> - </con:property> - <con:property> - <con:name>planIdProfile</con:name> - <con:value/> - </con:property> - </con:properties> - </con:testSuite> - <con:testSuite id="a4f05c8c-eedf-42f6-be20-b18452375de0" name="XPlanManagerAPI v2 TestSuite"> - <con:description>TestSuite für XPlanManagerAPI version 2</con:description> - <con:settings/> - <con:runType>SEQUENTIAL</con:runType> - <con:testCase id="07ae12f0-ac5e-4cb1-8f1b-1e1eece581b8" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/ TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/"-Pfad</con:description> - <con:settings/> - <con:testStep type="httprequest" name="GET XX X.X XX openAPI" id="f14c1458-23c0-457b-b6d6-4edf36743743"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX pollStatusInvalidProfile" id="3410ff8c-b573-44f7-a823-0aa74269ac72"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="726e80e0-3694-4e52-a9ca-a38258fe7503" name="GET XX X.X XX openAPI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX pollStatusInvalidProfile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuidInvalidProfile}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="b1659bc9-5975-48fe-8c72-3bdf99daca0f" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="2e5a7efa-134b-4a50-b960-dff030686f34" name="openapi"> - <con:configuration> - <path>$.openapi</path> - <content>3.0.1</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="c7bcd776-0947-4d88-923d-e40eb4bb599c" name="info.version"> + <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> <con:configuration> - <path>$.info.version</path> + <path>$.status</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>2.*</regEx> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="338faceb-131f-43eb-bf38-2bf035ec149f" name="path /"> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="groovy" name="pollStatusInvalidProfile" id="e41e9e45-1764-4625-9bf4-8f97f2e03b51"> + <con:settings/> + <con:config> + <script>import groovy.json.JsonSlurper + +def testStepName = "GET BP 6.0.2 XX pollStatusInvalidProfile" +def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") +def json = new JsonSlurper().parseText(response) + +if( context.loopIndex == null ) + context.loopIndex = 0 + +if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ + sleep(1000) + testRunner.gotoStepByName(testStepName) +} else if (context.loopIndex == 40) { + context.loopIndex = null + assert(false) +} else { + context.loopIndex = null +}</script> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidProfile" id="8307a0f5-93c1-464b-806a-e7ab8b510755"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX invalidProfile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuidInvalidProfile}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.paths./.get.operationId</path> - <content>openApi</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="338faceb-131f-43eb-bf38-2bf035ec149f" name="path /plan response 200 description"> + <con:assertion type="JsonPath Match" id="4f337b40-5001-46e3-ae48-6c4fcc1920a5" name="status"> <con:configuration> - <path>$.paths./plan.post.responses.200.description</path> - <content>ImportReceipt with uuid of the import</content> + <path>$.status</path> + <content>VALIDATION_FAILED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="338faceb-131f-43eb-bf38-2bf035ec149f" name="path /report/{uuid}"> + <con:assertion type="JsonPath Match" id="c1848a54-240f-4a71-a77d-d352334d6b1f" name="errorMsg"> <con:configuration> - <path>$.paths./report/{uuid}.get.operationId</path> - <content>reportByUuid</content> + <path>$.errorMsg</path> + <content>Profile with id invalid does not exist</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="2397109c-69bb-40f6-9b5a-2f5db5d69ade" name="path /report/{uuid}/geomfindings"> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX pollStatusMismatchingTypes" id="41c913d2-42d4-4e18-8b73-8558153a656b"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX pollStatusMismatchingTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuidMismatchingTypes}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.paths./report/{uuid}/geomfindings.get.operationId</path> - <content>geomfindingsByUuid</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="fc254bba-c565-40fd-be0b-d265e6144a76" name="path /report/{uuid}/geomfindings response 406 exists"> + <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> <con:configuration> - <path>$.paths./report/{uuid}/geomfindings.get.responses.406</path> + <path>$.status</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="GroovyScriptAssertion" id="eb77ee0a-79c2-4ea5-a3c0-4bc0011fcd06" name="path /report/{uuid}/geomfindings.json"> - <con:configuration> - <scriptText>import groovy.json.JsonSlurper - -def json = new JsonSlurper().parseText(messageExchange.response.responseContent) + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="groovy" name="pollStatusMismatchingTypes" id="3babb438-a8e0-4474-a305-647b06b616da"> + <con:settings/> + <con:config> + <script>import groovy.json.JsonSlurper -assert json.paths.'/report/{uuid}/geomfindings.json'.get.operationId == 'geomfindingsJsonByUuid'</scriptText> - </con:configuration> - </con:assertion> - <con:assertion type="GroovyScriptAssertion" id="01846f0c-e87d-4974-9eb6-38ed2e944029" name="path /report/{uuid}/geomfindings.json response 406 exists"> - <con:configuration> - <scriptText>import groovy.json.JsonSlurper +def testStepName = "GET BP 6.0.2 XX pollStatusMismatchingTypes" +def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") +def json = new JsonSlurper().parseText(response) -def json = new JsonSlurper().parseText(messageExchange.response.responseContent) +if( context.loopIndex == null ) + context.loopIndex = 0 -assert json.paths.'/report/{uuid}/geomfindings.json'.get.responses.'406'</scriptText> +if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ + sleep(1000) + testRunner.gotoStepByName(testStepName) +} else if (context.loopIndex == 40) { + context.loopIndex = null + assert(false) +} else { + context.loopIndex = null +}</script> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX mismatchingContentTypeAndFileType" id="376bae1d-09d7-4f00-803a-cb9da3c4b22b"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX mismatchingContentTypeAndFileType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuidMismatchingTypes}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="baefa2ef-b925-44ef-b1bb-3e43e1a95a34" name="schema PlanInfo"> + <con:assertion type="JsonPath Match" id="4f337b40-5001-46e3-ae48-6c4fcc1920a5" name="status"> <con:configuration> - <path>$.components.schemas.PlanInfo</path> - <content>true</content> + <path>$.status</path> + <content>VALIDATION_FAILED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="a0fe450e-b235-4d07-bf3b-edd930c011f6" name="schema ValidationReport geomfindings"> + <con:assertion type="JsonPath Match" id="c1848a54-240f-4a71-a77d-d352334d6b1f" name="errorMsg"> <con:configuration> - <path>$.components.schemas.ValidationReport.properties.geomfindings.$ref</path> - <content>#/components/schemas/FeatureCollection</content> + <path>$.errorMsg</path> + <content>Could not read attached file as XPlanGML</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="GroovyScriptAssertion" id="4b10252b-c0ec-478b-8e74-b6f23c599c6b" name="securitySchemes"> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidUuidExpectError404" id="bbb4f23e-2fd0-4cab-856f-8cae8679b1a6"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX invalidUuidExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/invalid</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> - <scriptText>import groovy.json.JsonSlurper - -def jwtUrl = context.testCase.testSuite.project.getPropertyValue("jwtUrl"); - -if (jwtUrl != ""){ - def response = messageExchange.response.responseContent - def json = new JsonSlurper().parseText(response) - - def type = json.components.securitySchemes.Bearer.type - def scheme = json.components.securitySchemes.Bearer.scheme - def bearerFormat = json.components.securitySchemes.Bearer.bearerFormat - - assert(type == "http") - assert(scheme == "bearer") - assert(bearerFormat == "JWT") -}</scriptText> + <codes>404</codes> </con:configuration> </con:assertion> <con:credentials> @@ -22966,15 +24862,15 @@ if (jwtUrl != ""){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET XX X.X XX invalidAcceptHeaderExpectError406" id="3b94ce9c-2426-464d-88fd-c906032c818c"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" id="6d808e19-6722-4ed2-ae65-8c16efcc698f"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="726e80e0-3694-4e52-a9ca-a38258fe7503" name="GET XX X.X XX invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="b1659bc9-5975-48fe-8c72-3bdf99daca0f" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>406</codes> </con:configuration> @@ -22994,45 +24890,35 @@ if (jwtUrl != ""){ </con:testStep> <con:properties/> </con:testCase> - <con:testCase id="9a952141-6600-4b2d-bccd-de0ce037bb89" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/info TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/info"-Pfad</con:description> + <con:testCase id="67870df1-23e1-4192-889c-1215d60abdef" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/report/{uuid} TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/status/{uuid}"-Pfad</con:description> <con:settings/> - <con:testStep type="httprequest" name="GET XX X.X XX showConfig" id="11e7c2b5-68da-4905-bd1c-1dcc75ca2195"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveReportJson" id="85410f40-220a-4e1a-9010-c0ea528c6445"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="ada729bc-f24a-41d6-bcf5-4dd34948e273" name="GET XX X.X XX showConfig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/info</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="860eaa41-d4c0-4b28-9e32-132c7e894b18" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="1beb64fd-81c2-46b9-b690-f88938a487fc" name="hasVersion"> + <con:assertion type="JsonPath Match" id="f1ed37db-538c-4c70-b650-bde8b1c510e2" name="plans.name"> <con:configuration> - <path>$.version</path> - <content>true</content> + <path>$.plans[?(@.name == 'BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI')].name</path> + <content>[BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="GroovyScriptAssertion" id="bf3730ab-4f4d-4167-b404-d09046ef994c" name="versionNotNull"> - <con:configuration> - <scriptText>import groovy.json.JsonSlurper - -json = new JsonSlurper().parseText(messageExchange.response.responseContent) -assert !(json.isEmpty()) - -assert json.version != null</scriptText> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="a525ec99-c1ee-4ed3-a1f4-19760fc2d1c0" name="supportedXPlanGmlVersions"> + <con:assertion type="JsonPath Match" id="f1ed37db-538c-4c70-b650-bde8b1c510e2" name="plans.type"> <con:configuration> - <path>$.supportedXPlanGmlVersions</path> - <content>["XPLAN_40","XPLAN_41","XPLAN_50","XPLAN_51","XPLAN_52","XPLAN_53","XPLAN_54","XPLAN_60"]</content> + <path>$.plans[?(@.name == 'BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI')].type</path> + <content>[BP_Plan]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -23051,17 +24937,26 @@ assert json.version != null</scriptText> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET XX X.X XX invalidAcceptHeaderExpectError406" id="d28565da-26c0-4317-aa52-63895156e99a"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveReportPdf" id="e6cae4d0-b1ed-4ebd-980e-1258d6608047"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="ada729bc-f24a-41d6-bcf5-4dd34948e273" name="GET XX X.X XX invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/info</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="860eaa41-d4c0-4b28-9e32-132c7e894b18" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> - <codes>406</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="e6a3edaf-71fd-4bc3-b441-7ed174a5932c" name="contentType"> + <con:configuration> + <path>/data/@contentType</path> + <content>application/pdf</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> @@ -23077,52 +24972,43 @@ assert json.version != null</scriptText> <con:parameters/> </con:config> </con:testStep> - <con:properties/> - </con:testCase> - <con:testCase id="e68513c7-b782-498e-9a43-fab6619cbbb3" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/plan"-Pfad</con:description> - <con:settings/> - <con:testStep type="httprequest" name="POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS importPlan" id="6b5d393f-424c-42fe-a468-ca531d60500d"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidUuidExpectError404" id="b62b4284-57e9-49e4-8f2c-b675d679c233"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX invalidUuidExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Accept" value="application/json"/> - <con:entry key="X-Filename" value="soapui-test"/> -</xml-fragment></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/invalid</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> - <con:configuration> - <path>$.uuid</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.statusLink</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>404</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" id="b41034a8-dd5c-4b35-98a9-43ab9b8e2baa"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.statusLink.href</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>406</codes> </con:configuration> </con:assertion> <con:credentials> @@ -23133,106 +25019,51 @@ assert json.version != null</scriptText> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>FP_6.0.2.zip</con:name> - <con:contentType>application/octet-stream</con:contentType> - <con:contentId>BP_6.0.2.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0.2.zip</con:url> - <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters> - <con:parameter> - <con:name>skipSemantisch</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipFlaechenschluss</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipGeltungsbereich</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipLaufrichtung</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter required="false" disableUrlEncoding="false"> - <con:name>internalId</con:name> - <con:value>soapui-test-id</con:value> - <con:style>QUERY</con:style> - <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> - <con:default/> - <con:description xsi:nil="true"/> - </con:parameter> - <con:parameter> - <con:name>planStatus</con:name> - <con:value>FESTGESTELLT</con:value> - <con:style>QUERY</con:style> - </con:parameter> - </con:parameters> - </con:config> - </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS importPlan Property Transfer" id="51ebcb92-bc33-47c6-9d74-b252f2f85fb6"> - <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>uuid</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS importPlan</con:sourceStep> - <con:sourcePath>$.uuid</con:sourcePath> - <con:targetType>uuid</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> + <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pf invalidProfile" id="236ab532-d435-41e6-abde-5689be19b3e6"> + <con:properties/> + </con:testCase> + <con:testCase id="9bed2e5b-6a9c-4da6-a527-01affd76103e" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/report/{uuid}/geomfindings TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/report/{uuid}/geomfindings"-Pfad</con:description> + <con:settings/> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveGeomfindings" id="88b564b2-2628-4f72-ac57-5d4ee11976eb"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0.2 pf invalidProfile" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveGeomfindings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Accept" value="application/json"/> - <con:entry key="X-Filename" value="soapui-test"/> -</xml-fragment></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/geo+json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}/geomfindings</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> + <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="type"> <con:configuration> - <path>$.uuid</path> - <content>true</content> + <path>$.type</path> + <content>FeatureCollection</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> + <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="bbox"> <con:configuration> - <path>$.statusLink</path> - <content>true</content> + <path>$.bbox</path> + <content>null</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> + <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="features"> <con:configuration> - <path>$.statusLink.href</path> - <content>true</content> + <path>$.features</path> + <content>[]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -23246,78 +25077,48 @@ assert json.version != null</scriptText> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>FP_6.0.2.zip</con:name> - <con:contentType>application/octet-stream</con:contentType> - <con:contentId>FP_6.0.2.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0.2.zip</con:url> - <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters> - <con:parameter> - <con:name>profiles</con:name> - <con:value>invalid</con:value> - <con:style>QUERY</con:style> - </con:parameter> - </con:parameters> + <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0.2 pf invalidProfile Property Transfer" id="4539114b-8cab-4e41-ab2b-9f1094957446"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidUuidExpectError404" id="29a869ba-0b72-4035-8d1d-37453b496b54"> <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>uuidInvalidProfile</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0.2 pf invalidProfile</con:sourceStep> - <con:sourcePath>$.uuid</con:sourcePath> - <con:targetType>uuidInvalidProfile</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX invalidUuidExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/geo+json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/invalid/geomfindings</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>404</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 XX mismatchingContentTypeAndFileType" id="4132883a-577d-4e97-a182-5759d85f25f2"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" id="19ca2181-ad13-4ae6-b4fb-4b34de7568b6"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0.2 XX mismatchingContentTypeAndFileType" postQueryString="false" mediaType="text/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}/geomfindings</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c1df2d96-38e5-4318-8284-ad41312a8676" name="uuidExists"> - <con:configuration> - <path>$.uuid</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c1df2d96-38e5-4318-8284-ad41312a8676" name="statusLinkExists"> - <con:configuration> - <path>$.statusLink</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c1df2d96-38e5-4318-8284-ad41312a8676" name="hrefExists"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.statusLink.href</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>406</codes> </con:configuration> </con:assertion> <con:credentials> @@ -23328,48 +25129,54 @@ assert json.version != null</scriptText> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>FP_6.0.2.zip</con:name> - <con:contentType>text/xml</con:contentType> - <con:contentId>FP_6.0.2.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0.2.zip</con:url> - <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0.2 XX mismatchingContentTypeAndFileType Property Transfer" id="5b0ec99a-1f44-466a-b4da-403b4d20455a"> - <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>uuidMismatchingTypes</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0.2 XX mismatchingContentTypeAndFileType</con:sourceStep> - <con:sourcePath>$.uuid</con:sourcePath> - <con:targetType>uuidMismatchingTypes</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 XX invalidXSSExpectError400" id="401dbcc9-16e7-47bf-a7ed-21612d9fbf6d"> + <con:properties/> + </con:testCase> + <con:testCase id="9b6558ff-76b1-4c95-9911-f521141fbcd9" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/report/{uuid}/geomfindings.json TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/report/{uuid}/geomfindings.json"-Pfad</con:description> + <con:settings/> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveGeomfindings" id="81505cf3-1b14-42ef-b175-3484cce434a0"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0.2 XX invalidXSSExpectError400" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveGeomfindings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Accept" value="application/json"/> - <con:entry key="X-Filename" value="//"/> -</xml-fragment></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/geo+json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}/geomfindings.json</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="type"> + <con:configuration> + <path>$.type</path> + <content>FeatureCollection</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="bbox"> + <con:configuration> + <path>$.bbox</path> + <content>null</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="features"> <con:configuration> - <codes>400</codes> + <path>$.features</path> + <content>[]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> @@ -23380,62 +25187,49 @@ assert json.version != null</scriptText> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>FP_6.0.2.zip</con:name> - <con:contentType>application/octet-stream</con:contentType> - <con:contentId>BP_6.0.2.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0.2.zip</con:url> - <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 XX invalidAcceptHeaderExpectError406" id="03a65e66-247d-401c-bf31-853be62db322"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveGeomfindingsNoAcceptHeader" id="27a26a43-bd93-40e2-833c-48af5b6d3c7e"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0.2 XX invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveGeomfindingsNoAcceptHeader" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}/geomfindings.json</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> - <codes>406</codes> + <codes>200</codes> </con:configuration> </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:attachment> - <con:name>FP_6.0.2.zip</con:name> - <con:contentType>application/octet-stream</con:contentType> - <con:contentId>FP_6.0.2.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0.2.zip</con:url> - <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> - </con:attachment> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0 XX unsupportedMediaTypeZipExpectError415" id="5dfe142f-87e9-419c-b271-c608e7ec8393"> - <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 XX unsupportedMediaTypeZipExpectError415" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="type"> <con:configuration> - <codes>415</codes> + <path>$.type</path> + <content>FeatureCollection</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="bbox"> + <con:configuration> + <path>$.bbox</path> + <content>null</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="features"> + <con:configuration> + <path>$.features</path> + <content>[]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> @@ -23446,29 +25240,22 @@ assert json.version != null</scriptText> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>FP_6.0.2.zip</con:name> - <con:contentType>application/octet-stream</con:contentType> - <con:contentId>FP_6.0.2.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/Blankenese29_Test_60_InvalidContent.zip</con:url> - <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST XX X.X XX unsupportedMediaTypeOdtExpectError415" id="e7b57a24-6f3d-4127-a9c2-53742acf6fc2"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidUuidExpectError404" id="c917f544-3f02-4f23-a1f1-7e7835e246e6"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST XX X.X XX unsupportedMediaTypeOdtExpectError415" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX invalidUuidExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/geo+json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/invalid/geomfindings.json</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> - <codes>415</codes> + <codes>404</codes> </con:configuration> </con:assertion> <con:credentials> @@ -23479,43 +25266,22 @@ assert json.version != null</scriptText> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>FP_6.0.2.zip</con:name> - <con:contentType>application/octet-stream</con:contentType> - <con:contentId>FP_6.0.2.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/invalidContentType.odt</con:url> - <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:properties/> - </con:testCase> - <con:testCase id="0bd6341f-a662-4437-9ac7-b4c14284ff61" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/status/{uuid} TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/status/{uuid}"-Pfad</con:description> - <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX pollStatus" id="21e02ed1-eb99-46e0-a831-776df2391487"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" id="e24f5ec0-e242-44fd-9516-ed95e0f61ff3"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}/geomfindings.json</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.status</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>406</codes> </con:configuration> </con:assertion> <con:credentials> @@ -23531,164 +25297,110 @@ assert json.version != null</scriptText> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="07dfd200-af16-409e-9ec5-bf0d892d3f34"> - <con:settings/> - <con:config> - <script>import groovy.json.JsonSlurper - -def testStepName = "GET BP 6.0.2 XX pollStatus" -def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") -def json = new JsonSlurper().parseText(response) - -if( context.loopIndex == null ) - context.loopIndex = 0 - -if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ - sleep(1000) - testRunner.gotoStepByName(testStepName) -} else if (context.loopIndex == 40) { - context.loopIndex = null - assert(false) -} else { - context.loopIndex = null -}</script> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveStatus" id="7b5e345d-819e-4561-8158-053c5005060b"> + <con:properties/> + </con:testCase> + <con:testCase id="6d00085e-8474-4a41-b422-5187e0c865a4" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plans TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/plans"-Pfad</con:description> + <con:settings/> + <con:testStep type="httprequest" name="GET BP 6.0.2 pN getByPlanName" id="378a5ad5-02d4-435c-bfac-610cbfe4d3c0"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="241a13cd-fc19-4992-83ba-d7e6b56b3743" name="GET BP 6.0.2 pN getByPlanName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plans</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="e21d229a-4da0-46d6-95ba-9d521f98ad6d" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d27fd88e-b78e-4e28-acfc-dc25276fc1a1" name="status"> + <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="type"> <con:configuration> - <path>$.status</path> - <content>IMPORT_FINISHED</content> + <path>$[0].type</path> + <content>BP_Plan</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="320f668b-21ff-4589-a944-cfbd07931e2a" name="importedPlanIdsExists"> + <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="version"> <con:configuration> - <path>$.importedPlanIds</path> - <content>true</content> + <path>$[0].version</path> + <content>XPLAN_60</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="493b851d-f4cf-4289-90b8-3cb49d482b72" name="linksExists"> + <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="planStatus"> <con:configuration> - <path>$.links</path> - <content>true</content> + <path>$[0].planStatus</path> + <content>FESTGESTELLT</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="af671b26-7707-43bd-a3c9-5f085cd3dff5" name="schema report"> + <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="gemeinden.ags"> <con:configuration> - <path>$.links[?(@.rel == 'report' && @.type == 'application/json')].schema</path> - <content>true</content> + <path>$[0].xplanModelData.gemeinden[0].ags</path> + <content>02000000</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2#/components/schemas/ValidationReport.*$</regEx> </con:configuration> </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="af671b26-7707-43bd-a3c9-5f085cd3dff5" name="schema planinfo"> + <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="gemeinden.gemeindeName"> <con:configuration> - <path>$.links[?(@.rel == 'planinfo' && @.type == 'application/json')].schema</path> - <content>false</content> + <path>$[0].xplanModelData.gemeinden[0].gemeindeName</path> + <content>Freie und Hansestadt Hamburg</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>/api/v2#/components/schemas/PlanInfo</regEx> </con:configuration> </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="d9eefe15-72b1-4ead-a022-0839c587fcda" name="href report json"> + <con:assertion type="JsonPath RegEx Match" id="661feb7b-2379-46aa-a994-f7034df08aaf" name="link self"> <con:configuration> - <path>$.links[?(@.rel == 'report' && @.type == 'application/json')].href</path> + <path>$[0].links[?(@.rel == 'self' && (@.type == 'application/json'))].href</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> + <regEx>^.*/api/v2/plan/.*$</regEx> </con:configuration> </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="d9eefe15-72b1-4ead-a022-0839c587fcda" name="href report pdf"> + <con:assertion type="JsonPath Count" id="1f02b841-df99-4f50-bc12-f75834e396e0" name="link self count"> <con:configuration> - <path>$.links[?(@.rel == 'report' && @.type == 'application/pdf')].href</path> - <content>true</content> + <path>$[0].links[?(@.rel == 'self')]</path> + <content>1</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> </con:configuration> </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="d9eefe15-72b1-4ead-a022-0839c587fcda" name="href planinfo"> + <con:assertion type="JsonPath RegEx Match" id="39a75872-c3c6-4fe9-ac53-858e3008c208" name="link planwerkwms"> <con:configuration> - <path>$.links[?(@.rel == 'planinfo' && @.type == 'application/json')].href</path> + <path>$[0].links[?(@.rel == 'planwerkwms')].href</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/plan/.*$</regEx> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="transfer" name="GET BP 6.0.2 XX retrieveStatus Property Transfer" id="185a9506-2d65-4ce0-8891-af698dcdca55"> - <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>planId</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>GET BP 6.0.2 XX retrieveStatus</con:sourceStep> - <con:sourcePath>$.importedPlanIds[0]</con:sourcePath> - <con:targetType>planId</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX pollStatusInvalidProfile" id="3410ff8c-b573-44f7-a823-0aa74269ac72"> - <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX pollStatusInvalidProfile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuidInvalidProfile}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="57fc059a-8898-4adf-9161-588cdaa49fbf" name="geltungsbereichWGS84.type"> <con:configuration> - <codes>200</codes> + <path>$[0].geltungsbereichWGS84.type</path> + <content>Polygon</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> + <con:assertion type="JsonPath Existence Match" id="4e500b26-89ef-4749-b0fd-707dc9ec031a" name="geltungsbereichWGS84.coordinates exists"> <con:configuration> - <path>$.status</path> + <path>$[0].geltungsbereichWGS84.coordinates</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> @@ -23705,189 +25417,114 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="groovy" name="pollStatusInvalidProfile" id="e41e9e45-1764-4625-9bf4-8f97f2e03b51"> - <con:settings/> - <con:config> - <script>import groovy.json.JsonSlurper - -def testStepName = "GET BP 6.0.2 XX pollStatusInvalidProfile" -def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") -def json = new JsonSlurper().parseText(response) - -if( context.loopIndex == null ) - context.loopIndex = 0 - -if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ - sleep(1000) - testRunner.gotoStepByName(testStepName) -} else if (context.loopIndex == 40) { - context.loopIndex = null - assert(false) -} else { - context.loopIndex = null -}</script> + <con:parameters> + <con:parameter> + <con:name>planName</con:name> + <con:value>BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>includeGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidProfile" id="8307a0f5-93c1-464b-806a-e7ab8b510755"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI getByPlanId" id="075daffd-664c-441f-b138-6fe75430bc69"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX invalidProfile" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="241a13cd-fc19-4992-83ba-d7e6b56b3743" name="GET BP 6.0.2 pI getByPlanId" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuidInvalidProfile}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plans</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="e21d229a-4da0-46d6-95ba-9d521f98ad6d" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="4f337b40-5001-46e3-ae48-6c4fcc1920a5" name="status"> + <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="type"> <con:configuration> - <path>$.status</path> - <content>VALIDATION_FAILED</content> + <path>$[0].type</path> + <content>BP_Plan</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="c1848a54-240f-4a71-a77d-d352334d6b1f" name="errorMsg"> + <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="version"> <con:configuration> - <path>$.errorMsg</path> - <content>Profile with id invalid does not exist</content> + <path>$[0].version</path> + <content>XPLAN_60</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX pollStatusMismatchingTypes" id="41c913d2-42d4-4e18-8b73-8558153a656b"> - <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX pollStatusMismatchingTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuidMismatchingTypes}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="planStatus"> <con:configuration> - <codes>200</codes> + <path>$[0].planStatus</path> + <content>FESTGESTELLT</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> + <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="gemeinden.ags"> <con:configuration> - <path>$.status</path> - <content>true</content> + <path>$[0].xplanModelData.gemeinden[0].ags</path> + <content>02000000</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="groovy" name="pollStatusMismatchingTypes" id="3babb438-a8e0-4474-a305-647b06b616da"> - <con:settings/> - <con:config> - <script>import groovy.json.JsonSlurper - -def testStepName = "GET BP 6.0.2 XX pollStatusMismatchingTypes" -def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") -def json = new JsonSlurper().parseText(response) - -if( context.loopIndex == null ) - context.loopIndex = 0 - -if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ - sleep(1000) - testRunner.gotoStepByName(testStepName) -} else if (context.loopIndex == 40) { - context.loopIndex = null - assert(false) -} else { - context.loopIndex = null -}</script> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX mismatchingContentTypeAndFileType" id="376bae1d-09d7-4f00-803a-cb9da3c4b22b"> - <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX mismatchingContentTypeAndFileType" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuidMismatchingTypes}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="gemeinden.gemeindeName"> <con:configuration> - <codes>200</codes> + <path>$[0].xplanModelData.gemeinden[0].gemeindeName</path> + <content>Freie und Hansestadt Hamburg</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="4f337b40-5001-46e3-ae48-6c4fcc1920a5" name="status"> + <con:assertion type="JsonPath RegEx Match" id="661feb7b-2379-46aa-a994-f7034df08aaf" name="link self"> <con:configuration> - <path>$.status</path> - <content>VALIDATION_FAILED</content> + <path>$[0].links[?(@.rel == 'self' && (@.type == 'application/json'))].href</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> + <regEx>^.*/api/v2/plan/.*$</regEx> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="c1848a54-240f-4a71-a77d-d352334d6b1f" name="errorMsg"> + <con:assertion type="JsonPath Count" id="1f02b841-df99-4f50-bc12-f75834e396e0" name="link self count"> <con:configuration> - <path>$.errorMsg</path> - <content>Could not read attached file as XPlanGML</content> + <path>$[0].links[?(@.rel == 'self')]</path> + <content>1</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidUuidExpectError404" id="bbb4f23e-2fd0-4cab-856f-8cae8679b1a6"> - <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX invalidUuidExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/invalid</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="JsonPath RegEx Match" id="c4de6278-26a0-4499-b07a-a01eb57cafd2" name="link planwerkwms"> <con:configuration> - <codes>404</codes> + <path>$[0].links[?(@.rel == 'planwerkwms')].href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="c49ca5e9-39d5-475d-b721-c32dc9fe86e5" name="geltungsbereichWGS84"> + <con:configuration> + <path>exists(//*:geltungsbereichWGS84)</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> @@ -23900,18 +25537,24 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> + <con:parameters> + <con:parameter> + <con:name>planId</con:name> + <con:value>${#TestSuite#planId}</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" id="6d808e19-6722-4ed2-ae65-8c16efcc698f"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pN invalidAcceptHeaderExpectError406" id="cbb9bf86-65c4-4e27-9ea9-91ec18b81012"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="241a13cd-fc19-4992-83ba-d7e6b56b3743" name="GET BP 6.0.2 pN invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestSuite#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plans</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="e21d229a-4da0-46d6-95ba-9d521f98ad6d" name="Valid HTTP Status Codes"> <con:configuration> <codes>406</codes> </con:configuration> @@ -23926,40 +25569,37 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> + <con:parameters> + <con:parameter> + <con:name>planName</con:name> + <con:value>BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> </con:config> </con:testStep> <con:properties/> </con:testCase> - <con:testCase id="67870df1-23e1-4192-889c-1215d60abdef" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/report/{uuid} TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/status/{uuid}"-Pfad</con:description> + <con:testCase id="2150525e-2aeb-46bc-bc45-a9d05a41995a" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/archive TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/plan/{planId}/archive"-Pfad</con:description> <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveReportJson" id="85410f40-220a-4e1a-9010-c0ea528c6445"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI getArchiveById" id="3c7a13c1-91ed-45bc-a1a8-dae32811ec02"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI getArchiveById" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/zip" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/archive</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="f1ed37db-538c-4c70-b650-bde8b1c510e2" name="plans.name"> - <con:configuration> - <path>$.plans[?(@.name == 'BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI')].name</path> - <content>[BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="f1ed37db-538c-4c70-b650-bde8b1c510e2" name="plans.type"> + <con:assertion type="XPath Match" id="0cafd298-2bed-4e17-81ec-6884448ebe77" name="contentType"> <con:configuration> - <path>$.plans[?(@.name == 'BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI')].type</path> - <content>[BP_Plan]</content> + <path>/data/@contentType</path> + <content>application/zip</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -23978,26 +25618,17 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveReportPdf" id="e6cae4d0-b1ed-4ebd-980e-1258d6608047"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="4873d48d-ee5a-4896-96f7-2e9504591f90"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/zip" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/archive</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="XPath Match" id="e6a3edaf-71fd-4bc3-b441-7ed174a5932c" name="contentType"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> - <path>/data/@contentType</path> - <content>application/pdf</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>400</codes> </con:configuration> </con:assertion> <con:credentials> @@ -24013,15 +25644,15 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidUuidExpectError404" id="b62b4284-57e9-49e4-8f2c-b675d679c233"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="fc0defba-fc1e-4de2-8d15-97d676688c73"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX invalidUuidExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/zip" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/invalid</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/archive</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> <codes>404</codes> </con:configuration> @@ -24039,15 +25670,15 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" id="b41034a8-dd5c-4b35-98a9-43ab9b8e2baa"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="015a3f06-7310-4423-94b1-7fa1b94f582e"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/archive</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> <codes>406</codes> </con:configuration> @@ -24067,44 +25698,44 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:testStep> <con:properties/> </con:testCase> - <con:testCase id="9bed2e5b-6a9c-4da6-a527-01affd76103e" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/report/{uuid}/geomfindings TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/report/{uuid}/geomfindings"-Pfad</con:description> + <con:testCase id="3b8ec81f-78d9-48ae-920c-e17c55d22c2f" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/basisdaten TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/plan/{planId}/basisdaten"-Pfad</con:description> <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveGeomfindings" id="88b564b2-2628-4f72-ac57-5d4ee11976eb"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI getBasisdaten" id="9767ff03-4166-40a9-898a-417e1764a336"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveGeomfindings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI getBasisdaten" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/geo+json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}/geomfindings</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/basisdaten</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="type"> + <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="name"> <con:configuration> - <path>$.type</path> - <content>FeatureCollection</content> + <path>$.name</path> + <content>BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="bbox"> + <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="planArt"> <con:configuration> - <path>$.bbox</path> - <content>null</content> + <path>$.planArt</path> + <content>1000</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="features"> + <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="rechtsstand"> <con:configuration> - <path>$.features</path> - <content>[]</content> + <path>$.rechtsstand</path> + <content>3000</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -24113,6 +25744,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24123,17 +25755,17 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidUuidExpectError404" id="29a869ba-0b72-4035-8d1d-37453b496b54"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="472a928d-ed1b-4591-9b50-7fb69cc6324e"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX invalidUuidExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/geo+json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/invalid/geomfindings</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/basisdaten</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <codes>404</codes> + <codes>400</codes> </con:configuration> </con:assertion> <con:credentials> @@ -24149,17 +25781,17 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" id="19ca2181-ad13-4ae6-b4fb-4b34de7568b6"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="c984f858-a128-40eb-8b98-7f1f03105d16"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}/geomfindings</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/basisdaten</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <codes>406</codes> + <codes>404</codes> </con:configuration> </con:assertion> <con:credentials> @@ -24175,49 +25807,17 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:properties/> - </con:testCase> - <con:testCase id="9b6558ff-76b1-4c95-9911-f521141fbcd9" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/report/{uuid}/geomfindings.json TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/report/{uuid}/geomfindings.json"-Pfad</con:description> - <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveGeomfindings" id="81505cf3-1b14-42ef-b175-3484cce434a0"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="526bd21f-82e8-44a9-a22e-a643005c67b5"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveGeomfindings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/geo+json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}/geomfindings.json</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/basisdaten</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="type"> - <con:configuration> - <path>$.type</path> - <content>FeatureCollection</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="bbox"> - <con:configuration> - <path>$.bbox</path> - <content>null</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="features"> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.features</path> - <content>[]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>406</codes> </con:configuration> </con:assertion> <con:credentials> @@ -24233,41 +25833,77 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveGeomfindingsNoAcceptHeader" id="27a26a43-bd93-40e2-833c-48af5b6d3c7e"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI replaceBasisdaten" id="f5a5b269-7f4e-46f3-9666-1cf581178783"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveGeomfindingsNoAcceptHeader" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI replaceBasisdaten" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}/geomfindings.json</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/basisdaten</con:endpoint> + <con:request>{ + "name": "BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI-modified", + "beschreibung": null, + "planArt": 1000, + "verfahren": null, + "rechtsstand": 3000, + "rechtsverordnungsDatum": "2024-08-19", + "technHerstellDatum": "2024-08-18", + "untergangsDatum": "2054-08-19" +}</con:request> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="type"> + <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="name"> <con:configuration> - <path>$.type</path> - <content>FeatureCollection</content> + <path>$.name</path> + <content>BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI-modified</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="bbox"> + <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="planArt"> <con:configuration> - <path>$.bbox</path> - <content>null</content> + <path>$.planArt</path> + <content>1000</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d7f432a9-5dd7-46bb-80ad-e8e78f623aa8" name="features"> + <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="rechtsstand"> <con:configuration> - <path>$.features</path> - <content>[]</content> + <path>$.rechtsstand</path> + <content>3000</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="462dac20-7d34-4b9d-b5ef-4a7d0e4ec044" name="rechtsverordnungsDatum"> + <con:configuration> + <path>$.rechtsverordnungsDatum</path> + <content>2024-08-19</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="462dac20-7d34-4b9d-b5ef-4a7d0e4ec044" name="technHerstellDatum"> + <con:configuration> + <path>$.technHerstellDatum</path> + <content>2024-08-18</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="462dac20-7d34-4b9d-b5ef-4a7d0e4ec044" name="untergangsDatum"> + <con:configuration> + <path>$.untergangsDatum</path> + <content>2054-08-19</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -24276,6 +25912,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24286,15 +25923,60 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidUuidExpectError404" id="c917f544-3f02-4f23-a1f1-7e7835e246e6"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="05b528fc-4add-465d-b4fe-428da58dfa9e"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX invalidUuidExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/basisdaten</con:endpoint> + <con:request>{ + "name": "BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI-modified", + "beschreibung": null, + "planArt": 1000, + "verfahren": null, + "rechtsstand": 3000, + "rechtsverordnungsDatum": null, + "technHerstellDatum": null, + "untergangsDatum": null +}</con:request> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>400</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain/> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI notExistingPlanIdExpectError404" id="5ef8a26b-714e-49b3-8a29-2b75cb1a576e"> + <con:settings/> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/geo+json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/invalid/geomfindings.json</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/basisdaten</con:endpoint> + <con:request>{ + "name": "BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI-modified", + "beschreibung": null, + "planArt": 1000, + "verfahren": null, + "rechtsstand": 3000, + "rechtsverordnungsDatum": null, + "technHerstellDatum": null, + "untergangsDatum": null +}</con:request> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>404</codes> </con:configuration> @@ -24302,6 +25984,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24312,15 +25995,24 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" id="e24f5ec0-e242-44fd-9516-ed95e0f61ff3"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="cc325cd8-dab8-4fdc-a8a8-eb548f6ba1ff"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestSuite#uuid}/geomfindings.json</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/basisdaten</con:endpoint> + <con:request>{ + "name": "BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI-modified", + "beschreibung": null, + "planArt": 1000, + "verfahren": null, + "rechtsstand": 3000, + "rechtsverordnungsDatum": null, + "technHerstellDatum": null, + "untergangsDatum": null +}</con:request> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>406</codes> </con:configuration> @@ -24328,6 +26020,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24338,119 +26031,32 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:properties/> - </con:testCase> - <con:testCase id="6d00085e-8474-4a41-b422-5187e0c865a4" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plans TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/plans"-Pfad</con:description> - <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 pN getByPlanName" id="378a5ad5-02d4-435c-bfac-610cbfe4d3c0"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI xssExpectError400" id="839598ba-cc6a-4f56-a75d-bded567ea850"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="241a13cd-fc19-4992-83ba-d7e6b56b3743" name="GET BP 6.0.2 pN getByPlanName" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI xssExpectError400" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plans</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="e21d229a-4da0-46d6-95ba-9d521f98ad6d" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="type"> - <con:configuration> - <path>$[0].type</path> - <content>BP_Plan</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="version"> - <con:configuration> - <path>$[0].version</path> - <content>XPLAN_60</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="planStatus"> - <con:configuration> - <path>$[0].planStatus</path> - <content>FESTGESTELLT</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="gemeinden.ags"> - <con:configuration> - <path>$[0].xplanModelData.gemeinden[0].ags</path> - <content>02000000</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="gemeinden.gemeindeName"> - <con:configuration> - <path>$[0].xplanModelData.gemeinden[0].gemeindeName</path> - <content>Freie und Hansestadt Hamburg</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="661feb7b-2379-46aa-a994-f7034df08aaf" name="link self"> - <con:configuration> - <path>$[0].links[?(@.rel == 'self' && (@.type == 'application/json'))].href</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/plan/.*$</regEx> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Count" id="1f02b841-df99-4f50-bc12-f75834e396e0" name="link self count"> - <con:configuration> - <path>$[0].links[?(@.rel == 'self')]</path> - <content>1</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="39a75872-c3c6-4fe9-ac53-858e3008c208" name="link planwerkwms"> - <con:configuration> - <path>$[0].links[?(@.rel == 'planwerkwms')].href</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="57fc059a-8898-4adf-9161-588cdaa49fbf" name="geltungsbereichWGS84.type"> - <con:configuration> - <path>$[0].geltungsbereichWGS84.type</path> - <content>Polygon</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="4e500b26-89ef-4749-b0fd-707dc9ec031a" name="geltungsbereichWGS84.coordinates exists"> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/basisdaten</con:endpoint> + <con:request>{ + "name": "ffXSSTestﬕ", + "beschreibung": null, + "planArt": 1000, + "verfahren": null, + "rechtsstand": 3000, + "rechtsverordnungsDatum": null, + "technHerstellDatum": null, + "untergangsDatum": null +}</con:request> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <path>$[0].geltungsbereichWGS84.coordinates</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>400</codes> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24458,111 +26064,40 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters> - <con:parameter> - <con:name>planName</con:name> - <con:value>BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>includeGeltungsbereich</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - </con:parameters> + <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI getByPlanId" id="075daffd-664c-441f-b138-6fe75430bc69"> + <con:properties/> + </con:testCase> + <con:testCase id="93feb88e-f923-4e62-bd1e-4638a2526b04" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/aenderungen TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/plan/{planId}/aenderungen"-Pfad</con:description> + <con:settings/> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI getAenderungen" id="c93b560c-ae99-4163-a86e-a171710a2cb2"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="241a13cd-fc19-4992-83ba-d7e6b56b3743" name="GET BP 6.0.2 pI getByPlanId" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI getAenderungen" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plans</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/aenderungen</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="e21d229a-4da0-46d6-95ba-9d521f98ad6d" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="type"> - <con:configuration> - <path>$[0].type</path> - <content>BP_Plan</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="version"> - <con:configuration> - <path>$[0].version</path> - <content>XPLAN_60</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="planStatus"> - <con:configuration> - <path>$[0].planStatus</path> - <content>FESTGESTELLT</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="gemeinden.ags"> - <con:configuration> - <path>$[0].xplanModelData.gemeinden[0].ags</path> - <content>02000000</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="6045130d-e4df-49a7-883b-3688df7dc91b" name="gemeinden.gemeindeName"> - <con:configuration> - <path>$[0].xplanModelData.gemeinden[0].gemeindeName</path> - <content>Freie und Hansestadt Hamburg</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="661feb7b-2379-46aa-a994-f7034df08aaf" name="link self"> - <con:configuration> - <path>$[0].links[?(@.rel == 'self' && (@.type == 'application/json'))].href</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/plan/.*$</regEx> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Count" id="1f02b841-df99-4f50-bc12-f75834e396e0" name="link self count"> - <con:configuration> - <path>$[0].links[?(@.rel == 'self')]</path> - <content>1</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="c4de6278-26a0-4499-b07a-a01eb57cafd2" name="link planwerkwms"> + <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="aendert"> <con:configuration> - <path>$[0].links[?(@.rel == 'planwerkwms')].href</path> - <content>true</content> + <path>$.aendert</path> + <content>[]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> </con:configuration> </con:assertion> - <con:assertion type="XPath Match" id="c49ca5e9-39d5-475d-b721-c32dc9fe86e5" name="geltungsbereichWGS84"> + <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="wurdeGeaendertVon"> <con:configuration> - <path>exists(//*:geltungsbereichWGS84)</path> - <content>false</content> + <path>$.wurdeGeaendertVon</path> + <content>[]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -24571,6 +26106,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24578,24 +26114,72 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters> - <con:parameter> - <con:name>planId</con:name> - <con:value>${#TestSuite#planId}</con:value> - <con:style>QUERY</con:style> - </con:parameter> - </con:parameters> + <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pN invalidAcceptHeaderExpectError406" id="cbb9bf86-65c4-4e27-9ea9-91ec18b81012"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="e30a3193-444a-4edb-a047-9652a4841e4a"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="241a13cd-fc19-4992-83ba-d7e6b56b3743" name="GET BP 6.0.2 pN invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/aenderungen</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>400</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain/> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="938d495a-1813-4fcd-beba-67e7dbe3f9ec"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/aenderungen</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>404</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain/> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="4ecad8dc-3b11-4f71-8a07-b22272f824dc"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plans</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/aenderungen</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="e21d229a-4da0-46d6-95ba-9d521f98ad6d" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>406</codes> </con:configuration> @@ -24603,6 +26187,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24610,37 +26195,60 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters> - <con:parameter> - <con:name>planName</con:name> - <con:value>BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI</con:value> - <con:style>QUERY</con:style> - </con:parameter> - </con:parameters> + <con:parameters/> </con:config> </con:testStep> - <con:properties/> - </con:testCase> - <con:testCase id="2150525e-2aeb-46bc-bc45-a9d05a41995a" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/archive TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/plan/{planId}/archive"-Pfad</con:description> - <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI getArchiveById" id="3c7a13c1-91ed-45bc-a1a8-dae32811ec02"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI replaceAenderung" id="2db9d6e5-644b-4fb3-ae34-2424b982e4e8"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI getArchiveById" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI replaceAenderung" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/zip" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/archive</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/aenderungen</con:endpoint> + <con:request>{ + "aendert": [ { + "planName": "geaendert", + "rechtscharakter": 1000, + "nummer": "1.1" + }], + "wurdeGeaendertVon": [] +}</con:request> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="XPath Match" id="0cafd298-2bed-4e17-81ec-6884448ebe77" name="contentType"> + <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="planName"> <con:configuration> - <path>/data/@contentType</path> - <content>application/zip</content> + <path>$.aendert[0].planName</path> + <content>geaendert</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="rechtscharakter"> + <con:configuration> + <path>$.aendert[0].rechtscharakter</path> + <content>1000</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="nummer"> + <con:configuration> + <path>$.aendert[0].nummer</path> + <content>1.1</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="wurdeGeaendertVon"> + <con:configuration> + <path>$.wurdeGeaendertVon</path> + <content>[]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -24649,6 +26257,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24659,15 +26268,22 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="4873d48d-ee5a-4896-96f7-2e9504591f90"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="9c845e83-9e6b-4fe6-a54f-6b7fc775c501"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/zip" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/archive</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/aenderungen</con:endpoint> + <con:request>{ + "aendert": [ { + "planName": "geaendert", + "rechtscharakter": 1000, + "nummer": "1.1" + }], + "wurdeGeaendertVon": [] +}</con:request> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>400</codes> </con:configuration> @@ -24675,6 +26291,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24685,15 +26302,22 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="fc0defba-fc1e-4de2-8d15-97d676688c73"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI notExistingPlanIdExpectError404" id="db1c0f87-e4e6-42b3-8d45-594c99fc8544"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/zip" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/archive</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/aenderungen</con:endpoint> + <con:request>{ + "aendert": [ { + "planName": "geaendert", + "rechtscharakter": 1000, + "nummer": "1.1" + }], + "wurdeGeaendertVon": [] +}</con:request> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>404</codes> </con:configuration> @@ -24701,6 +26325,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24711,15 +26336,22 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="015a3f06-7310-4423-94b1-7fa1b94f582e"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="758cf285-c79f-45a2-9d5e-0f5591822afa"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/archive</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/aenderungen</con:endpoint> + <con:request>{ + "aendert": [ { + "planName": "geaendert", + "rechtscharakter": 1000, + "nummer": "1.1" + }], + "wurdeGeaendertVon": [] +}</con:request> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>406</codes> </con:configuration> @@ -24727,6 +26359,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24737,49 +26370,56 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:properties/> - </con:testCase> - <con:testCase id="3b8ec81f-78d9-48ae-920c-e17c55d22c2f" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/basisdaten TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/plan/{planId}/basisdaten"-Pfad</con:description> - <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI getBasisdaten" id="9767ff03-4166-40a9-898a-417e1764a336"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI xssExpectError400" id="115d3e56-7f99-4f4e-b707-bf0037290c53"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI getBasisdaten" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI xssExpectError400" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/basisdaten</con:endpoint> - <con:request/> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/aenderungen</con:endpoint> + <con:request>{ + "aendert": [ { + "planName": "ffXSSTestﬕ", + "rechtscharakter": 1000, + "nummer": "1.1" + }], + "wurdeGeaendertVon": [] +}</con:request> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="name"> - <con:configuration> - <path>$.name</path> - <content>BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="planArt"> - <con:configuration> - <path>$.planArt</path> - <content>1000</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>400</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="rechtsstand"> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain/> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:properties/> + </con:testCase> + <con:testCase id="080643b5-a241-41a5-b422-46d67c997820" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/text TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/plan/{planId}/text"-Pfad</con:description> + <con:settings/> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI getTexte" id="4fc99a55-fd0b-4c65-befe-2bbb6ea14aaa"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI getTexte" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.rechtsstand</path> - <content>3000</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>200</codes> </con:configuration> </con:assertion> <con:credentials> @@ -24796,13 +26436,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="472a928d-ed1b-4591-9b50-7fb69cc6324e"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="f7f5d700-a4a5-4c6d-8b5c-82943c66b93c"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/basisdaten</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/text</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -24812,6 +26452,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24822,13 +26463,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="c984f858-a128-40eb-8b98-7f1f03105d16"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="8294a8c9-009b-40ee-b0ca-a4cfc2f90d51"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/basisdaten</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/text</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -24838,6 +26479,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24848,13 +26490,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="526bd21f-82e8-44a9-a22e-a643005c67b5"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="ac91dcc3-ed28-40f2-9e0a-333afc1edef6"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/basisdaten</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -24864,6 +26506,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> + <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -24874,82 +26517,37 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI replaceBasisdaten" id="f5a5b269-7f4e-46f3-9666-1cf581178783"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI addText" id="ded1d86e-6533-4243-9012-86bb6761305f"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI replaceBasisdaten" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI addText" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/basisdaten</con:endpoint> - <con:request>{ - "name": "BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI-modified", - "beschreibung": null, - "planArt": 1000, - "verfahren": null, - "rechtsstand": 3000, - "rechtsverordnungsDatum": "2024-08-19", - "technHerstellDatum": "2024-08-18", - "untergangsDatum": "2054-08-19" -}</con:request> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text</con:endpoint> + <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="name"> - <con:configuration> - <path>$.name</path> - <content>BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI-modified</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="planArt"> + <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="schluessel"> <con:configuration> - <path>$.planArt</path> - <content>1000</content> + <path>$.schluessel</path> + <content>HN 9 geaendert</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="rechtsstand"> + <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="rechtscharakter"> <con:configuration> - <path>$.rechtsstand</path> + <path>$.rechtscharakter</path> <content>3000</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="462dac20-7d34-4b9d-b5ef-4a7d0e4ec044" name="rechtsverordnungsDatum"> - <con:configuration> - <path>$.rechtsverordnungsDatum</path> - <content>2024-08-19</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="462dac20-7d34-4b9d-b5ef-4a7d0e4ec044" name="technHerstellDatum"> - <con:configuration> - <path>$.technHerstellDatum</path> - <content>2024-08-18</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="462dac20-7d34-4b9d-b5ef-4a7d0e4ec044" name="untergangsDatum"> - <con:configuration> - <path>$.untergangsDatum</path> - <content>2054-08-19</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> @@ -24959,28 +26557,49 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>application/pdf</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postText.pdf</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>textmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postText.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="05b528fc-4add-465d-b4fe-428da58dfa9e"> + <con:testStep type="transfer" name="POST BP 6.0.2 pI addText Property Transfer" id="2a74f745-5a65-4e4f-be65-849be6ce75f7"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>textId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>POST BP 6.0.2 pI addText</con:sourceStep> + <con:sourcePath>$.id</con:sourcePath> + <con:targetType>textId</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="b573ebde-77c0-4111-a958-34a9c6133822"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/basisdaten</con:endpoint> - <con:request>{ - "name": "BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI-modified", - "beschreibung": null, - "planArt": 1000, - "verfahren": null, - "rechtsstand": 3000, - "rechtsverordnungsDatum": null, - "technHerstellDatum": null, - "untergangsDatum": null -}</con:request> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/text</con:endpoint> + <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>400</codes> @@ -24995,28 +26614,33 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>application/pdf</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postText.pdf</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>textmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postText.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI notExistingPlanIdExpectError404" id="5ef8a26b-714e-49b3-8a29-2b75cb1a576e"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI notExistingPlanIdExpectError404" id="148c2420-0b5a-4854-89ed-0348320170f4"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/basisdaten</con:endpoint> - <con:request>{ - "name": "BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI-modified", - "beschreibung": null, - "planArt": 1000, - "verfahren": null, - "rechtsstand": 3000, - "rechtsverordnungsDatum": null, - "technHerstellDatum": null, - "untergangsDatum": null -}</con:request> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/text</con:endpoint> + <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>404</codes> @@ -25031,28 +26655,33 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>application/pdf</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postText.pdf</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>textmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postText.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="cc325cd8-dab8-4fdc-a8a8-eb548f6ba1ff"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="a4c5e2c9-1429-409f-b293-2d325a0e6585"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/basisdaten</con:endpoint> - <con:request>{ - "name": "BPlan_SO-Objekte-Test_6-0-2_SoapUI-XPlanManagerAPI-modified", - "beschreibung": null, - "planArt": 1000, - "verfahren": null, - "rechtsstand": 3000, - "rechtsverordnungsDatum": null, - "technHerstellDatum": null, - "untergangsDatum": null -}</con:request> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text</con:endpoint> + <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>406</codes> @@ -25067,28 +26696,74 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>application/pdf</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postText.pdf</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>textmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postText.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidMediaTypeExpectError415" id="d2c57e66-16c2-4fe7-aeee-173ad067ea9f"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidMediaTypeExpectError415" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>415</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain/> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>application/vnd.oasis.opendocument.text</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/invalidContentType.odt</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>textmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postText.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI xssExpectError400" id="839598ba-cc6a-4f56-a75d-bded567ea850"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidContentInJsonExpectError400" id="7677393b-bea9-497c-a230-1d473ba2cada"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI xssExpectError400" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidContentInJsonExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/basisdaten</con:endpoint> - <con:request>{ - "name": "ffXSSTestﬕ", - "beschreibung": null, - "planArt": 1000, - "verfahren": null, - "rechtsstand": 3000, - "rechtsverordnungsDatum": null, - "technHerstellDatum": null, - "untergangsDatum": null -}</con:request> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text</con:endpoint> + <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>400</codes> @@ -25103,6 +26778,20 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>application/pdf</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postText.pdf</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>textmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postTextInvalidContent.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> @@ -25110,35 +26799,44 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:testStep> <con:properties/> </con:testCase> - <con:testCase id="93feb88e-f923-4e62-bd1e-4638a2526b04" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/aenderungen TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/plan/{planId}/aenderungen"-Pfad</con:description> + <con:testCase id="da0530c0-34be-4674-be0a-c66442e5d24d" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/text/{id} TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/plan/{planId}/text/{id}"-Pfad</con:description> <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI getAenderungen" id="c93b560c-ae99-4163-a86e-a171710a2cb2"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id getTextById" id="df9fa718-9e7e-4df0-a7b2-a5c14ce7ce14"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI getAenderungen" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id getTextById" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/aenderungen</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text/${#TestSuite#textId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="aendert"> + <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="id"> <con:configuration> - <path>$.aendert</path> - <content>[]</content> + <path>$.id</path> + <content>${#TestSuite#textId}</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="wurdeGeaendertVon"> + <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="schluessel"> <con:configuration> - <path>$.wurdeGeaendertVon</path> - <content>[]</content> + <path>$.schluessel</path> + <content>HN 9 geaendert</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="rechtscharakter"> + <con:configuration> + <path>$.rechtscharakter</path> + <content>3000</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -25158,13 +26856,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="e30a3193-444a-4edb-a047-9652a4841e4a"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="a2a2e844-c1cd-401d-a657-669466d34e2b"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/aenderungen</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/text/invalid</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25185,13 +26883,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="938d495a-1813-4fcd-beba-67e7dbe3f9ec"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id notExistingIdExpectError404" id="3bd21efb-918e-43e7-b942-0cc2414c6214"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id notExistingIdExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/aenderungen</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/text/999999999</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25212,13 +26910,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="4ecad8dc-3b11-4f71-8a07-b22272f824dc"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="ae1381f2-124c-45b0-800a-868c6fb22594"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/aenderungen</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text/${#TestSuite#textId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25239,57 +26937,41 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI replaceAenderung" id="2db9d6e5-644b-4fb3-ae34-2424b982e4e8"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id replaceTextById" id="a6cc6bc2-7065-4de9-9051-c81484e62636"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI replaceAenderung" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id replaceTextById" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/aenderungen</con:endpoint> - <con:request>{ - "aendert": [ { - "planName": "geaendert", - "rechtscharakter": 1000, - "nummer": "1.1" - }], - "wurdeGeaendertVon": [] -}</con:request> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text/${#TestSuite#textId}</con:endpoint> + <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="planName"> - <con:configuration> - <path>$.aendert[0].planName</path> - <content>geaendert</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="rechtscharakter"> + <con:assertion type="JsonPath Match" id="92560390-05d4-48e4-9680-b882e944790c" name="id"> <con:configuration> - <path>$.aendert[0].rechtscharakter</path> - <content>1000</content> + <path>$.id</path> + <content>${#TestSuite#textId}</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="nummer"> + <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="schluessel"> <con:configuration> - <path>$.aendert[0].nummer</path> - <content>1.1</content> + <path>$.schluessel</path> + <content>HN 9 geaendert</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="f3689ccf-6d8e-4c43-995f-ac1eabca8a1d" name="wurdeGeaendertVon"> + <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="rechtscharakter"> <con:configuration> - <path>$.wurdeGeaendertVon</path> - <content>[]</content> + <path>$.rechtscharakter</path> + <content>3000</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -25304,26 +26986,33 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putText.txt</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>textmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putText.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="9c845e83-9e6b-4fe6-a54f-6b7fc775c501"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="1c6d3528-2be3-4f15-8367-11237a2264d2"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/aenderungen</con:endpoint> - <con:request>{ - "aendert": [ { - "planName": "geaendert", - "rechtscharakter": 1000, - "nummer": "1.1" - }], - "wurdeGeaendertVon": [] -}</con:request> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/text/${#TestSuite#textId}</con:endpoint> + <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>400</codes> @@ -25338,26 +27027,33 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putText.txt</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>textmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putText.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI notExistingPlanIdExpectError404" id="db1c0f87-e4e6-42b3-8d45-594c99fc8544"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id notExistingIdExpectError404" id="a10ad6d0-f09a-4a9a-bb94-95daf9b15734"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id notExistingIdExpectError404" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/aenderungen</con:endpoint> - <con:request>{ - "aendert": [ { - "planName": "geaendert", - "rechtscharakter": 1000, - "nummer": "1.1" - }], - "wurdeGeaendertVon": [] -}</con:request> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/text/999999999</con:endpoint> + <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>404</codes> @@ -25372,29 +27068,77 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putText.txt</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>textmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putText.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="758cf285-c79f-45a2-9d5e-0f5591822afa"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="ea5bea5b-a327-4923-aa98-ea9c60a836fe"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/aenderungen</con:endpoint> - <con:request>{ - "aendert": [ { - "planName": "geaendert", - "rechtscharakter": 1000, - "nummer": "1.1" - }], - "wurdeGeaendertVon": [] -}</con:request> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text/${#TestSuite#textId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>406</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain/> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putText.txt</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>textmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putText.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidMediaTypeExpectError415" id="19190b3a-98b7-40a5-ba26-25083a2fe118"> + <con:settings/> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidMediaTypeExpectError415" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text/${#TestSuite#textId}</con:endpoint> + <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <codes>406</codes> + <codes>415</codes> </con:configuration> </con:assertion> <con:credentials> @@ -25406,26 +27150,33 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>application/vnd.oasis.opendocument.text</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/invalidContentType.odt</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>textmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putText.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI xssExpectError400" id="115d3e56-7f99-4f4e-b707-bf0037290c53"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidContentInJsonExpectError400" id="685c723f-5c5d-40db-9b03-23c756c53d1c"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI xssExpectError400" postQueryString="false" mediaType="application/json" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidContentInJsonExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/aenderungen</con:endpoint> - <con:request>{ - "aendert": [ { - "planName": "ffXSSTestﬕ", - "rechtscharakter": 1000, - "nummer": "1.1" - }], - "wurdeGeaendertVon": [] -}</con:request> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text/${#TestSuite#textId}</con:endpoint> + <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>400</codes> @@ -25440,6 +27191,20 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putText.txt</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>textmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putTextInvalidContent.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> @@ -25447,16 +27212,16 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:testStep> <con:properties/> </con:testCase> - <con:testCase id="080643b5-a241-41a5-b422-46d67c997820" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/text TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/plan/{planId}/text"-Pfad</con:description> + <con:testCase id="72840d67-96bc-44ad-8416-cd054fd228f3" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/dokument TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/plan/{planId}/dokument"-Pfad</con:description> <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI getTexte" id="4fc99a55-fd0b-4c65-befe-2bbb6ea14aaa"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI getDokumente" id="927948a4-fcce-44ce-9ed5-4d4840bde928"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI getTexte" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI getDokumente" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25477,13 +27242,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="f7f5d700-a4a5-4c6d-8b5c-82943c66b93c"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="51fe6383-e02d-4c29-ba1e-c92979a6c9e1"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/text</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/dokument</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25504,13 +27269,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="8294a8c9-009b-40ee-b0ca-a4cfc2f90d51"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="6451ffcb-c1b5-4f4c-8a92-f699617e9bb6"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/text</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/dokument</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25531,13 +27296,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="ac91dcc3-ed28-40f2-9e0a-333afc1edef6"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="297a65b8-1fac-42d1-bd32-5f93c8c7a551"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25558,32 +27323,23 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI addText" id="ded1d86e-6533-4243-9012-86bb6761305f"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI addDokument" id="22d1bdfe-ad49-4ea4-be3f-2c52951ff239"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI addText" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI addDokument" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="schluessel"> - <con:configuration> - <path>$.schluessel</path> - <content>HN 9 geaendert</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="rechtscharakter"> + <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="typ"> <con:configuration> - <path>$.rechtscharakter</path> - <content>3000</content> + <path>$.typ</path> + <content>1010</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -25602,14 +27358,14 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:name>postText.pdf</con:name> <con:contentType>application/pdf</con:contentType> <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postText.pdf</con:url> + <con:url>${projectDir}/xplan-manager-api/attachments/postDok.pdf</con:url> <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> </con:attachment> <con:attachment> <con:name>postText.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>textmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postText.json</con:url> + <con:contentId>dokumentmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postDok.json</con:url> <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -25617,15 +27373,15 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0.2 pI addText Property Transfer" id="2a74f745-5a65-4e4f-be65-849be6ce75f7"> + <con:testStep type="transfer" name="POST BP 6.0.2 pI addDokument Property Transfer" id="27778152-6117-40a8-83bf-152c67b04811"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>textId</con:name> + <con:name>dokumentId</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0.2 pI addText</con:sourceStep> + <con:sourceStep>POST BP 6.0.2 pI addDokument</con:sourceStep> <con:sourcePath>$.id</con:sourcePath> - <con:targetType>textId</con:targetType> + <con:targetType>dokumentId</con:targetType> <con:targetStep>#TestSuite#</con:targetStep> <con:type>JSONPATH</con:type> <con:targetTransferType>JSONPATH</con:targetTransferType> @@ -25633,13 +27389,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="b573ebde-77c0-4111-a958-34a9c6133822"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="dbf484d8-1f29-49d9-8474-031010d82102"> <con:settings/> <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/text</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/dokument</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25659,14 +27415,14 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:name>postText.pdf</con:name> <con:contentType>application/pdf</con:contentType> <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postText.pdf</con:url> + <con:url>${projectDir}/xplan-manager-api/attachments/postDok.pdf</con:url> <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> </con:attachment> <con:attachment> <con:name>postText.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>textmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postText.json</con:url> + <con:contentId>dokumentmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postDok.json</con:url> <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -25674,13 +27430,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI notExistingPlanIdExpectError404" id="148c2420-0b5a-4854-89ed-0348320170f4"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI notExistingPlanIdExpectError404" id="5f2abe58-f7c9-4590-bf9d-d4a5b6e8dcba"> <con:settings/> <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/text</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/dokument</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25700,14 +27456,14 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:name>postText.pdf</con:name> <con:contentType>application/pdf</con:contentType> <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postText.pdf</con:url> + <con:url>${projectDir}/xplan-manager-api/attachments/postDok.pdf</con:url> <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> </con:attachment> <con:attachment> <con:name>postText.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>textmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postText.json</con:url> + <con:contentId>dokumentmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postDok.json</con:url> <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -25715,13 +27471,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="a4c5e2c9-1429-409f-b293-2d325a0e6585"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="6a5a257f-b22b-4db0-8486-5c3b7f16e6a2"> <con:settings/> <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25741,14 +27497,14 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:name>postText.pdf</con:name> <con:contentType>application/pdf</con:contentType> <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postText.pdf</con:url> + <con:url>${projectDir}/xplan-manager-api/attachments/postDok.pdf</con:url> <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> </con:attachment> <con:attachment> <con:name>postText.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>textmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postText.json</con:url> + <con:contentId>dokumentmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postDok.json</con:url> <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -25756,13 +27512,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidMediaTypeExpectError415" id="d2c57e66-16c2-4fe7-aeee-173ad067ea9f"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidMediaTypeExpectError415" id="8acfb022-e53f-4e5a-a9f6-a127123455e7"> <con:settings/> <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidMediaTypeExpectError415" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25788,8 +27544,8 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:attachment> <con:name>postText.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>textmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postText.json</con:url> + <con:contentId>dokumentmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postDok.json</con:url> <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -25797,13 +27553,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidContentInJsonExpectError400" id="7677393b-bea9-497c-a230-1d473ba2cada"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidContentInJsonExpectError400" id="a24a03bc-19ef-4eb1-afb0-3428ba2966ac"> <con:settings/> <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidContentInJsonExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25823,14 +27579,14 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:name>postText.pdf</con:name> <con:contentType>application/pdf</con:contentType> <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postText.pdf</con:url> + <con:url>${projectDir}/xplan-manager-api/attachments/postDok.pdf</con:url> <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> </con:attachment> <con:attachment> <con:name>postText.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>textmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postTextInvalidContent.json</con:url> + <con:contentId>dokumentmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postDokInvalidContent.json</con:url> <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -25840,16 +27596,16 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:testStep> <con:properties/> </con:testCase> - <con:testCase id="da0530c0-34be-4674-be0a-c66442e5d24d" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/text/{id} TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/plan/{planId}/text/{id}"-Pfad</con:description> + <con:testCase id="267fbe04-ad48-479a-bbbb-5f19a65fd77a" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/dokument/{id} TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/plan/{planId}/dokument/{id}"-Pfad</con:description> <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id getTextById" id="df9fa718-9e7e-4df0-a7b2-a5c14ce7ce14"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id getDokumentById" id="aa17cee4-d09d-4892-aa8f-57dc1a8afd39"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id getTextById" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id getDokumentById" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text/${#TestSuite#textId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestSuite#dokumentId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25859,28 +27615,46 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="id"> <con:configuration> <path>$.id</path> - <content>${#TestSuite#textId}</content> + <content>${#TestSuite#dokumentId}</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="schluessel"> + <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="typ"> <con:configuration> - <path>$.schluessel</path> - <content>HN 9 geaendert</content> + <path>$.typ</path> + <content>1010</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="rechtscharakter"> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain/> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="9bfb83fb-7a5b-4046-8804-67901a8f0807"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/dokument/${#TestSuite#dokumentId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.rechtscharakter</path> - <content>3000</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>400</codes> </con:configuration> </con:assertion> <con:credentials> @@ -25897,13 +27671,67 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="a2a2e844-c1cd-401d-a657-669466d34e2b"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id notExistingIdExpectError404" id="373b11f4-dbfc-41f3-81ba-ce013f0821ce"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id notExistingIdExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/dokument/999999999</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>404</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain/> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="d5c866db-8ddc-4025-8308-dfbed63a1b6b"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestSuite#dokumentId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>406</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain/> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="f1b085e6-ba96-45f3-9ffc-12177a151c62"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/text/invalid</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/dokument/${#TestSuite#dokumentId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25919,18 +27747,32 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>application/pdf</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putDok.pdf</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>dokumentmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putDok.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id notExistingIdExpectError404" id="3bd21efb-918e-43e7-b942-0cc2414c6214"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id notExistingIdExpectError404" id="cf56cce1-6d67-447e-9904-9514f4def4c8"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id notExistingIdExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id notExistingIdExpectError404" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/text/999999999</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/dokument/999999999</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25946,18 +27788,32 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>application/pdf</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putDok.pdf</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>dokumentmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putDok.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="ae1381f2-124c-45b0-800a-868c6fb22594"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="7d071706-c3f7-4f81-a013-50322f61a300"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text/${#TestSuite#textId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestSuite#dokumentId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -25973,49 +27829,36 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>postText.pdf</con:name> + <con:contentType>application/pdf</con:contentType> + <con:contentId>datei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putDok.pdf</con:url> + <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + </con:attachment> + <con:attachment> + <con:name>postText.json</con:name> + <con:contentType>application/json</con:contentType> + <con:contentId>dokumentmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putDok.json</con:url> + <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id replaceTextById" id="a6cc6bc2-7065-4de9-9051-c81484e62636"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidMediaTypeExpectError415" id="9cbd2eaa-014c-4015-b507-f5944e7a49e4"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id replaceTextById" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidMediaTypeExpectError415" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text/${#TestSuite#textId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestSuite#dokumentId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="92560390-05d4-48e4-9680-b882e944790c" name="id"> - <con:configuration> - <path>$.id</path> - <content>${#TestSuite#textId}</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="schluessel"> - <con:configuration> - <path>$.schluessel</path> - <content>HN 9 geaendert</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="rechtscharakter"> - <con:configuration> - <path>$.rechtscharakter</path> - <content>3000</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>415</codes> </con:configuration> </con:assertion> <con:credentials> @@ -26029,16 +27872,16 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:credentials> <con:attachment> <con:name>postText.pdf</con:name> - <con:contentType>text/plain</con:contentType> + <con:contentType>application/vnd.oasis.opendocument.text</con:contentType> <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putText.txt</con:url> + <con:url>${projectDir}/xplan-manager-api/attachments/invalidContentType.odt</con:url> <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> </con:attachment> <con:attachment> <con:name>postText.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>textmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putText.json</con:url> + <con:contentId>dokumentmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putDok.json</con:url> <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -26046,13 +27889,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="1c6d3528-2be3-4f15-8367-11237a2264d2"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidContentInJsonExpectError400" id="51da4eba-94f0-4da7-9024-ca14cd6be805"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidContentInJsonExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/text/${#TestSuite#textId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestSuite#dokumentId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26070,16 +27913,16 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:credentials> <con:attachment> <con:name>postText.pdf</con:name> - <con:contentType>text/plain</con:contentType> + <con:contentType>application/pdf</con:contentType> <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putText.txt</con:url> + <con:url>${projectDir}/xplan-manager-api/attachments/putDok.pdf</con:url> <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> </con:attachment> <con:attachment> <con:name>postText.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>textmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putText.json</con:url> + <con:contentId>dokumentmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putDokInvalidContent.json</con:url> <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -26087,17 +27930,26 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id notExistingIdExpectError404" id="a10ad6d0-f09a-4a9a-bb94-95daf9b15734"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id replaceDokumentById" id="130d5826-9c20-40d3-99c4-3863a38fbd4e"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id notExistingIdExpectError404" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id replaceDokumentById" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/text/999999999</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestSuite#dokumentId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <codes>404</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="typ"> + <con:configuration> + <path>$.typ</path> + <content>1030</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> @@ -26111,16 +27963,16 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:credentials> <con:attachment> <con:name>postText.pdf</con:name> - <con:contentType>text/plain</con:contentType> + <con:contentType>application/pdf</con:contentType> <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putText.txt</con:url> + <con:url>${projectDir}/xplan-manager-api/attachments/putDok.pdf</con:url> <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> </con:attachment> <con:attachment> <con:name>postText.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>textmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putText.json</con:url> + <con:contentId>dokumentmodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putDok.json</con:url> <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -26128,17 +27980,33 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="ea5bea5b-a327-4923-aa98-ea9c60a836fe"> + <con:testStep type="transfer" name="PUT BP 6.0.2 pI,id replaceDokumentById Property Transfer" id="19f7876b-fee3-4012-8b07-9d902dbbe102"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>replacedDokumentId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>PUT BP 6.0.2 pI,id replaceDokumentById</con:sourceStep> + <con:sourcePath>$.id</con:sourcePath> + <con:targetType>replacedDokumentId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="209c8b35-fbb2-42a2-a79d-d0f9a1d1d537"> + <con:settings/> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text/${#TestSuite#textId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/dokument/${#TestCase#replacedDokumentId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <codes>406</codes> + <codes>400</codes> </con:configuration> </con:assertion> <con:credentials> @@ -26150,36 +28018,22 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putText.txt</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> - </con:attachment> - <con:attachment> - <con:name>postText.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>textmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putText.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidMediaTypeExpectError415" id="19190b3a-98b7-40a5-ba26-25083a2fe118"> + <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id notExistingIdExpectError404" id="18e48297-efef-4bd1-87c2-3ef8516290a9"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidMediaTypeExpectError415" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id notExistingIdExpectError404" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text/${#TestSuite#textId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/dokument/999999999</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <codes>415</codes> + <codes>404</codes> </con:configuration> </con:assertion> <con:credentials> @@ -26191,36 +28045,67 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>application/vnd.oasis.opendocument.text</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/invalidContentType.odt</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> - </con:attachment> - <con:attachment> - <con:name>postText.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>textmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putText.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidContentInJsonExpectError400" id="685c723f-5c5d-40db-9b03-23c756c53d1c"> + <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="b38ea79d-b53a-4669-986a-5df82bb74fae"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidContentInJsonExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestCase#replacedDokumentId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>406</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:domain/> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id deleteDokumentById" id="d3318fe4-f665-4f8d-9275-505ca5abe89a"> + <con:settings/> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id deleteDokumentById" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/text/${#TestSuite#textId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestCase#replacedDokumentId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> - <codes>400</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="id"> + <con:configuration> + <path>$.id</path> + <content>${#TestCase#replacedDokumentId}</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="typ"> + <con:configuration> + <path>$.typ</path> + <content>1030</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> @@ -26232,37 +28117,45 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putText.txt</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> - </con:attachment> - <con:attachment> - <con:name>postText.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>textmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putTextInvalidContent.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:properties/> + <con:testStep type="transfer" name="Cleanup Properties" id="d72bc92d-659e-4390-b267-6152a74dd939"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>replacedDokumentId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>replacedDokumentId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>replacedDokumentId</con:name> + <con:value/> + </con:property> + </con:properties> </con:testCase> - <con:testCase id="72840d67-96bc-44ad-8416-cd054fd228f3" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/dokument TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/plan/{planId}/dokument"-Pfad</con:description> + <con:testCase id="ccadec16-905d-4fe8-aafd-93091c764534" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/rasterbasis TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/plan/{planId}/rasterbasis"-Pfad</con:description> <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI getDokumente" id="927948a4-fcce-44ce-9ed5-4d4840bde928"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI getRasterBasis" id="b1d19332-c2ce-4f1f-ad4a-06135d97734e"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI getDokumente" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI getRasterBasis" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26283,13 +28176,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="51fe6383-e02d-4c29-ba1e-c92979a6c9e1"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="835a4908-c8d6-474e-81ab-8955bb9b0021"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/dokument</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/rasterbasis</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26310,13 +28203,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="6451ffcb-c1b5-4f4c-8a92-f699617e9bb6"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="93f44e37-e364-40b6-9d66-af2f0f42d19b"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/dokument</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/rasterbasis</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26337,13 +28230,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="297a65b8-1fac-42d1-bd32-5f93c8c7a551"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="839e7f5e-86ee-4064-86e8-e39485049be7"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26364,23 +28257,32 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI addDokument" id="22d1bdfe-ad49-4ea4-be3f-2c52951ff239"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI addRasterBasis" id="2d691e01-0ff4-4bce-84fb-b5b68de9a311"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI addDokument" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI addRasterBasis" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="typ"> + <con:assertion type="JsonPath Match" id="ef3e40e8-ca3a-496f-a0c9-2fdb0ab4290c" name="referenzName"> <con:configuration> - <path>$.typ</path> - <content>1010</content> + <path>$.referenzName</path> + <content>postImg</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="ef3e40e8-ca3a-496f-a0c9-2fdb0ab4290c" name="bereichNummer"> + <con:configuration> + <path>$.bereichNummer</path> + <content>0</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -26396,33 +28298,40 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>application/pdf</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDok.pdf</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + <con:name>postImg.png</con:name> + <con:contentType>image/png</con:contentType> + <con:contentId>rasterdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postImg.png</con:url> + <con:id>bc046f4c-3ac0-4429-8147-60c18d35f321</con:id> </con:attachment> <con:attachment> - <con:name>postText.json</con:name> + <con:name>postImg.pgw</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>georeferenzdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postImg.pgw</con:url> + <con:id>7e00e2a0-8b73-4665-b2ac-b458ef84b730</con:id> + </con:attachment> + <con:attachment> + <con:name>postDokRaster.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>dokumentmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDok.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + <con:contentId>rasterbasismodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postDokRaster.json</con:url> + <con:id>8419d223-e80a-4b12-a72d-c0fc95349d12</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0.2 pI addDokument Property Transfer" id="27778152-6117-40a8-83bf-152c67b04811"> + <con:testStep type="transfer" name="POST BP 6.0.2 pI addRasterBasis Property Transfer" id="963638c6-a6bc-407b-a4ae-ba9bf980b0b9"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>dokumentId</con:name> + <con:name>rasterbasisId</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0.2 pI addDokument</con:sourceStep> + <con:sourceStep>POST BP 6.0.2 pI addRasterBasis</con:sourceStep> <con:sourcePath>$.id</con:sourcePath> - <con:targetType>dokumentId</con:targetType> + <con:targetType>rasterbasisId</con:targetType> <con:targetStep>#TestSuite#</con:targetStep> <con:type>JSONPATH</con:type> <con:targetTransferType>JSONPATH</con:targetTransferType> @@ -26430,13 +28339,61 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="dbf484d8-1f29-49d9-8474-031010d82102"> + <con:testStep type="groovy" name="skipNextStepIfJdbcUrlMissing" id="bc4005a1-dcfb-4b6d-99e2-0d72f539765d"> + <con:settings/> + <con:config> + <script>def jdbcUrl = context.testCase.testSuite.project.getPropertyValue("jdbcUrl"); + +if (jdbcUrl == ""){ + def currentStepIndex = context.currentStepIndex; + def stepToGo = testRunner.testCase.getTestStepAt(currentStepIndex + 2).getName(); + testRunner.gotoStepByName(stepToGo); +}</script> + </con:config> + </con:testStep> + <con:testStep type="jdbc" name="JDBC BP 6.0.2 XX checkRasterbasis" id="bfbad32a-3ad0-43a0-9045-c525354688c5"> + <con:settings/> + <con:config xsi:type="con:JdbcRequestTestStep" convertColumnNamesToUpperCase="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:driver>org.postgresql.Driver</con:driver> + <con:connectionString>${#Project#jdbcUrl}</con:connectionString> + <con:query>select plan,filename,artefacttype from xplanmgr.artefacts;</con:query> + <con:assertion type="XPath Match" id="c626c665-ca92-4af6-8419-b36cb3dd893c" name="Exists postImg.png"> + <con:configuration> + <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#planId}' and ARTEFACTS.FILENAME = 'postImg.png'])</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="5710fe1e-6f12-4181-8694-e6c0b83b5cf2" name="Exists postImg.pgw"> + <con:configuration> + <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#planId}' and ARTEFACTS.FILENAME = 'postImg.pgw'])</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="5710fe1e-6f12-4181-8694-e6c0b83b5cf2" name="postImg.pgw not RASTERBASIS"> + <con:configuration> + <path>/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#planId}' and ARTEFACTS.FILENAME = 'postImg.pgw']/ARTEFACTS.ARTEFACTTYPE = 'RASTERBASIS'</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:properties/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="ee7c04b1-7df3-4e01-8716-50a597447493"> <con:settings/> <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/dokument</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/rasterbasis</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26453,31 +28410,38 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>application/pdf</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDok.pdf</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + <con:name>postImg.png</con:name> + <con:contentType>image/png</con:contentType> + <con:contentId>rasterdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postImg.png</con:url> + <con:id>bc046f4c-3ac0-4429-8147-60c18d35f321</con:id> </con:attachment> <con:attachment> - <con:name>postText.json</con:name> + <con:name>postImg.pgw</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>georeferenzdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postImg.pgw</con:url> + <con:id>7e00e2a0-8b73-4665-b2ac-b458ef84b730</con:id> + </con:attachment> + <con:attachment> + <con:name>postDokRaster.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>dokumentmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDok.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + <con:contentId>rasterbasismodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postDokRaster.json</con:url> + <con:id>8419d223-e80a-4b12-a72d-c0fc95349d12</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI notExistingPlanIdExpectError404" id="5f2abe58-f7c9-4590-bf9d-d4a5b6e8dcba"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI notExistingPlanIdExpectError404" id="0e7bfe85-1992-4889-9849-b9dfe9881e12"> <con:settings/> <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/dokument</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/rasterbasis</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26494,31 +28458,38 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>application/pdf</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDok.pdf</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + <con:name>postImg.png</con:name> + <con:contentType>image/png</con:contentType> + <con:contentId>rasterdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postImg.png</con:url> + <con:id>bc046f4c-3ac0-4429-8147-60c18d35f321</con:id> </con:attachment> <con:attachment> - <con:name>postText.json</con:name> + <con:name>postImg.pgw</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>georeferenzdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postImg.pgw</con:url> + <con:id>7e00e2a0-8b73-4665-b2ac-b458ef84b730</con:id> + </con:attachment> + <con:attachment> + <con:name>postDokRaster.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>dokumentmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDok.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + <con:contentId>rasterbasismodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postDokRaster.json</con:url> + <con:id>8419d223-e80a-4b12-a72d-c0fc95349d12</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="6a5a257f-b22b-4db0-8486-5c3b7f16e6a2"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="abb3e882-1da3-4dcb-9a1f-559bb438e7f5"> <con:settings/> <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26535,31 +28506,38 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>application/pdf</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDok.pdf</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + <con:name>postImg.png</con:name> + <con:contentType>image/png</con:contentType> + <con:contentId>rasterdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postImg.png</con:url> + <con:id>bc046f4c-3ac0-4429-8147-60c18d35f321</con:id> </con:attachment> <con:attachment> - <con:name>postText.json</con:name> + <con:name>postImg.pgw</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>georeferenzdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postImg.pgw</con:url> + <con:id>7e00e2a0-8b73-4665-b2ac-b458ef84b730</con:id> + </con:attachment> + <con:attachment> + <con:name>postDokRaster.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>dokumentmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDok.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + <con:contentId>rasterbasismodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postDokRaster.json</con:url> + <con:id>8419d223-e80a-4b12-a72d-c0fc95349d12</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidMediaTypeExpectError415" id="8acfb022-e53f-4e5a-a9f6-a127123455e7"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidMediaTypeExpectError415" id="4cee4bea-712f-4df2-bbdb-7e4b334e7ddd"> <con:settings/> <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidMediaTypeExpectError415" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26576,31 +28554,38 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postText.pdf</con:name> + <con:name>postImg.png</con:name> <con:contentType>application/vnd.oasis.opendocument.text</con:contentType> - <con:contentId>datei</con:contentId> + <con:contentId>rasterdatei</con:contentId> <con:url>${projectDir}/xplan-manager-api/attachments/invalidContentType.odt</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + <con:id>bc046f4c-3ac0-4429-8147-60c18d35f321</con:id> + </con:attachment> + <con:attachment> + <con:name>postImg.pgw</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>georeferenzdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postImg.pgw</con:url> + <con:id>7e00e2a0-8b73-4665-b2ac-b458ef84b730</con:id> </con:attachment> <con:attachment> - <con:name>postText.json</con:name> + <con:name>postDokRaster.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>dokumentmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDok.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + <con:contentId>rasterbasismodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postDokRaster.json</con:url> + <con:id>8419d223-e80a-4b12-a72d-c0fc95349d12</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidContentInJsonExpectError400" id="a24a03bc-19ef-4eb1-afb0-3428ba2966ac"> + <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidContentInJsonExpectError400" id="5113bb78-6181-43b0-950b-c09cfcc11fae"> <con:settings/> <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidContentInJsonExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26617,18 +28602,25 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>application/pdf</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDok.pdf</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + <con:name>postImg.png</con:name> + <con:contentType>image/png</con:contentType> + <con:contentId>rasterdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postImg.png</con:url> + <con:id>bc046f4c-3ac0-4429-8147-60c18d35f321</con:id> </con:attachment> <con:attachment> - <con:name>postText.json</con:name> + <con:name>postImg.pgw</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>georeferenzdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postImg.pgw</con:url> + <con:id>7e00e2a0-8b73-4665-b2ac-b458ef84b730</con:id> + </con:attachment> + <con:attachment> + <con:name>postDokRaster.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>dokumentmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDokInvalidContent.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + <con:contentId>rasterbasismodel</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/postDokRasterInvalidContent.json</con:url> + <con:id>8419d223-e80a-4b12-a72d-c0fc95349d12</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> @@ -26637,35 +28629,44 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:testStep> <con:properties/> </con:testCase> - <con:testCase id="267fbe04-ad48-479a-bbbb-5f19a65fd77a" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/dokument/{id} TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/plan/{planId}/dokument/{id}"-Pfad</con:description> + <con:testCase id="ebb3fc3f-b954-43ec-96e2-7ef39257e8d3" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/rasterbasis/{id} TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/plan/{planId}/rasterbasis/{id}"-Pfad</con:description> <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id getDokumentById" id="aa17cee4-d09d-4892-aa8f-57dc1a8afd39"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id getRasterbasisById" id="49759f0c-cb2f-4f8a-a76e-49b8c65b65af"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id getDokumentById" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id getRasterbasisById" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestSuite#dokumentId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> + <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="referenzName"> + <con:configuration> + <path>$.referenzName</path> + <content>postImg</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="id"> <con:configuration> <path>$.id</path> - <content>${#TestSuite#dokumentId}</content> + <content>${#TestSuite#rasterbasisId}</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="typ"> + <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="bereichNummer"> <con:configuration> - <path>$.typ</path> - <content>1010</content> + <path>$.bereichNummer</path> + <content>0</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -26685,13 +28686,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="9bfb83fb-7a5b-4046-8804-67901a8f0807"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="94d5775b-3338-4113-87f7-33d90db58c1f"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/dokument/${#TestSuite#dokumentId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26712,13 +28713,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id notExistingIdExpectError404" id="373b11f4-dbfc-41f3-81ba-ce013f0821ce"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id notExistingIdExpectError404" id="8995d151-1693-408b-ad0b-ee9fe3e8291f"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id notExistingIdExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/dokument/999999999</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/rasterbasis/999999999</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26739,13 +28740,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="d5c866db-8ddc-4025-8308-dfbed63a1b6b"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="9e0ea2f9-8728-4ff5-b35a-3b5796d5e2b3"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestSuite#dokumentId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26766,13 +28767,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="f1b085e6-ba96-45f3-9ffc-12177a151c62"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="edb041b9-fc28-46fb-a44b-087037a15d93"> <con:settings/> <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/dokument/${#TestSuite#dokumentId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26789,31 +28790,40 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>application/pdf</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putDok.pdf</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + <con:name>putImg.png</con:name> + <con:contentType>image/png</con:contentType> + <con:contentId>rasterdatei</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/attachments/putImg.png</con:url> + <con:id>322fb9cb-5a4b-4cd7-9892-e2c60feded4b</con:id> </con:attachment> <con:attachment> - <con:name>postText.json</con:name> + <con:name>putImg.pgw</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>georeferenzdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putImg.pgw</con:url> + <con:id>7bce64d6-46bb-41e0-b869-673d1c926ce0</con:id> + </con:attachment> + <con:attachment> + <con:name>putDokRaster.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>dokumentmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putDok.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + <con:contentId>rasterbasismodel</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/attachments/putDokRaster.json</con:url> + <con:id>db9fe229-0045-4809-803f-8b64a0a59c53</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id notExistingIdExpectError404" id="cf56cce1-6d67-447e-9904-9514f4def4c8"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id notExistingIdExpectError404" id="aca5362f-e32a-4701-9ea5-c8fab50d60cd"> <con:settings/> <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id notExistingIdExpectError404" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/dokument/999999999</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/rasterbasis/999999999</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26830,31 +28840,40 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>application/pdf</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putDok.pdf</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + <con:name>putImg.png</con:name> + <con:contentType>image/png</con:contentType> + <con:contentId>rasterdatei</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/attachments/putImg.png</con:url> + <con:id>322fb9cb-5a4b-4cd7-9892-e2c60feded4b</con:id> </con:attachment> <con:attachment> - <con:name>postText.json</con:name> + <con:name>putImg.pgw</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>georeferenzdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putImg.pgw</con:url> + <con:id>7bce64d6-46bb-41e0-b869-673d1c926ce0</con:id> + </con:attachment> + <con:attachment> + <con:name>putDokRaster.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>dokumentmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putDok.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + <con:contentId>rasterbasismodel</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/attachments/putDokRaster.json</con:url> + <con:id>db9fe229-0045-4809-803f-8b64a0a59c53</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="7d071706-c3f7-4f81-a013-50322f61a300"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="8d05a382-bae2-44db-b97b-0950bfabd497"> <con:settings/> <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestSuite#dokumentId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26871,31 +28890,40 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>application/pdf</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putDok.pdf</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + <con:name>putImg.png</con:name> + <con:contentType>image/png</con:contentType> + <con:contentId>rasterdatei</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/attachments/putImg.png</con:url> + <con:id>322fb9cb-5a4b-4cd7-9892-e2c60feded4b</con:id> </con:attachment> <con:attachment> - <con:name>postText.json</con:name> + <con:name>putImg.pgw</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>georeferenzdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putImg.pgw</con:url> + <con:id>7bce64d6-46bb-41e0-b869-673d1c926ce0</con:id> + </con:attachment> + <con:attachment> + <con:name>putDokRaster.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>dokumentmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putDok.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + <con:contentId>rasterbasismodel</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/attachments/putDokRaster.json</con:url> + <con:id>db9fe229-0045-4809-803f-8b64a0a59c53</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidMediaTypeExpectError415" id="9cbd2eaa-014c-4015-b507-f5944e7a49e4"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidMediaTypeExpectError415" id="8e2385f5-784a-4719-80e9-1e934e2a4e4d"> <con:settings/> <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidMediaTypeExpectError415" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestSuite#dokumentId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26912,31 +28940,40 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postText.pdf</con:name> + <con:name>putImg.png</con:name> <con:contentType>application/vnd.oasis.opendocument.text</con:contentType> - <con:contentId>datei</con:contentId> + <con:contentId>rasterdatei</con:contentId> + <con:part xsi:nil="true"/> <con:url>${projectDir}/xplan-manager-api/attachments/invalidContentType.odt</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + <con:id>322fb9cb-5a4b-4cd7-9892-e2c60feded4b</con:id> </con:attachment> <con:attachment> - <con:name>postText.json</con:name> + <con:name>putImg.pgw</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>georeferenzdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putImg.pgw</con:url> + <con:id>7bce64d6-46bb-41e0-b869-673d1c926ce0</con:id> + </con:attachment> + <con:attachment> + <con:name>putDokRaster.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>dokumentmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putDok.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + <con:contentId>rasterbasismodel</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/attachments/putDokRaster.json</con:url> + <con:id>db9fe229-0045-4809-803f-8b64a0a59c53</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidContentInJsonExpectError400" id="51da4eba-94f0-4da7-9024-ca14cd6be805"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidContentInJsonExpectError400" id="27a97564-7a59-4ca0-b78f-804e28b25f81"> <con:settings/> <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidContentInJsonExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestSuite#dokumentId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -26953,41 +28990,50 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>application/pdf</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putDok.pdf</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + <con:name>putImg.png</con:name> + <con:contentType>image/png</con:contentType> + <con:contentId>rasterdatei</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/attachments/putImg.png</con:url> + <con:id>322fb9cb-5a4b-4cd7-9892-e2c60feded4b</con:id> </con:attachment> <con:attachment> - <con:name>postText.json</con:name> + <con:name>putImg.pgw</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>georeferenzdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putImg.pgw</con:url> + <con:id>7bce64d6-46bb-41e0-b869-673d1c926ce0</con:id> + </con:attachment> + <con:attachment> + <con:name>putDokRaster.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>dokumentmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putDokInvalidContent.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + <con:contentId>rasterbasismodel</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/attachments/putDokRasterInvalidContent.json</con:url> + <con:id>db9fe229-0045-4809-803f-8b64a0a59c53</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id replaceDokumentById" id="130d5826-9c20-40d3-99c4-3863a38fbd4e"> + <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id replaceRasterbasisById" id="60528307-d243-478c-83da-18d1a1a401f5"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id replaceDokumentById" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id replaceRasterbasisById" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestSuite#dokumentId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="typ"> + <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="bereichNummer"> <con:configuration> - <path>$.typ</path> - <content>1030</content> + <path>$.bereichNummer</path> + <content>0</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -27003,33 +29049,42 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postText.pdf</con:name> - <con:contentType>application/pdf</con:contentType> - <con:contentId>datei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putDok.pdf</con:url> - <con:id>20c61354-f2d7-40a6-9847-7dce2ebc979e</con:id> + <con:name>putImg.png</con:name> + <con:contentType>image/png</con:contentType> + <con:contentId>rasterdatei</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/attachments/putImg.png</con:url> + <con:id>322fb9cb-5a4b-4cd7-9892-e2c60feded4b</con:id> + </con:attachment> + <con:attachment> + <con:name>putImg.pgw</con:name> + <con:contentType>text/plain</con:contentType> + <con:contentId>georeferenzdatei</con:contentId> + <con:url>${projectDir}/xplan-manager-api/attachments/putImg.pgw</con:url> + <con:id>7bce64d6-46bb-41e0-b869-673d1c926ce0</con:id> </con:attachment> <con:attachment> - <con:name>postText.json</con:name> + <con:name>putDokRaster.json</con:name> <con:contentType>application/json</con:contentType> - <con:contentId>dokumentmodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putDok.json</con:url> - <con:id>262fdc19-67e6-449d-85ee-9787a4c968e1</con:id> + <con:contentId>rasterbasismodel</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/attachments/putDokRaster.json</con:url> + <con:id>db9fe229-0045-4809-803f-8b64a0a59c53</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="PUT BP 6.0.2 pI,id replaceDokumentById Property Transfer" id="19f7876b-fee3-4012-8b07-9d902dbbe102"> + <con:testStep type="transfer" name="PUT BP 6.0.2 pI,id replaceRasterbasisById Property Transfer" id="457e6bcb-6660-453f-9076-fd0a546b8f8a"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>replacedDokumentId</con:name> + <con:name>replacedRasterbasisId</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>PUT BP 6.0.2 pI,id replaceDokumentById</con:sourceStep> + <con:sourceStep>PUT BP 6.0.2 pI,id replaceRasterbasisById</con:sourceStep> <con:sourcePath>$.id</con:sourcePath> - <con:targetType>replacedDokumentId</con:targetType> + <con:targetType>replacedRasterbasisId</con:targetType> <con:targetStep>#TestCase#</con:targetStep> <con:type>JSONPATH</con:type> <con:targetTransferType>JSONPATH</con:targetTransferType> @@ -27037,13 +29092,61 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="209c8b35-fbb2-42a2-a79d-d0f9a1d1d537"> + <con:testStep type="groovy" name="skipNextStepIfJdbcUrlMissing" id="38a22ff5-0d41-4d17-8034-c085dc96311e"> + <con:settings/> + <con:config> + <script>def jdbcUrl = context.testCase.testSuite.project.getPropertyValue("jdbcUrl"); + +if (jdbcUrl == ""){ + def currentStepIndex = context.currentStepIndex; + def stepToGo = testRunner.testCase.getTestStepAt(currentStepIndex + 2).getName(); + testRunner.gotoStepByName(stepToGo); +}</script> + </con:config> + </con:testStep> + <con:testStep type="jdbc" name="JDBC BP 6.0.2 XX checkRasterbasis" id="985ab614-3058-47c1-b851-6910a19761cc"> + <con:settings/> + <con:config xsi:type="con:JdbcRequestTestStep" convertColumnNamesToUpperCase="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:driver>org.postgresql.Driver</con:driver> + <con:connectionString>${#Project#jdbcUrl}</con:connectionString> + <con:query>select plan,filename,artefacttype from xplanmgr.artefacts;</con:query> + <con:assertion type="XPath Match" id="754f7477-aae0-4c92-b56e-1036ba3316aa" name="Exists putImg.png"> + <con:configuration> + <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#planId}' and ARTEFACTS.FILENAME = 'putImg.png'])</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="754f7477-aae0-4c92-b56e-1036ba3316aa" name="Exists putImg.pgw"> + <con:configuration> + <path>exists(/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#planId}' and ARTEFACTS.FILENAME = 'putImg.pgw'])</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="XPath Match" id="754f7477-aae0-4c92-b56e-1036ba3316aa" name="putImg.pgw not RASTERBASIS"> + <con:configuration> + <path>/Results/ResultSet/Row[ARTEFACTS.PLAN = '${#TestSuite#planId}' and ARTEFACTS.FILENAME = 'putImg.pgw']/ARTEFACTS.ARTEFACTTYPE = 'RASTERBASIS'</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:properties/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="8469a42e-2148-440e-887f-62d9fbe19151"> <con:settings/> <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/dokument/${#TestCase#replacedDokumentId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/rasterbasis/${#TestCase#replacedRasterbasisId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -27064,13 +29167,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id notExistingIdExpectError404" id="18e48297-efef-4bd1-87c2-3ef8516290a9"> + <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id notExistingIdExpectError404" id="367033df-565e-4e08-8be5-fdff813bb31f"> <con:settings/> <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id notExistingIdExpectError404" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/dokument/999999999</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/rasterbasis/999999999</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -27091,13 +29194,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="b38ea79d-b53a-4669-986a-5df82bb74fae"> + <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="2a403e57-7682-4b5e-9d6e-b91b73ea0888"> <con:settings/> <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestCase#replacedDokumentId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestCase#replacedRasterbasisId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -27118,13 +29221,13 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id deleteDokumentById" id="d3318fe4-f665-4f8d-9275-505ca5abe89a"> + <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id deleteRasterbasisById" id="d197eb2e-f916-4aaa-9562-8a9ad5662b23"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id deleteDokumentById" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id deleteRasterbasisById" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/dokument/${#TestCase#replacedDokumentId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestCase#replacedRasterbasisId}</con:endpoint> <con:request/> <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> <con:configuration> @@ -27134,16 +29237,16 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="id"> <con:configuration> <path>$.id</path> - <content>${#TestCase#replacedDokumentId}</content> + <content>${#TestCase#replacedRasterbasisId}</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="typ"> + <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="bereichNummer"> <con:configuration> - <path>$.typ</path> - <content>1030</content> + <path>$.bereichNummer</path> + <content>0</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -27163,14 +29266,14 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="d72bc92d-659e-4390-b267-6152a74dd939"> + <con:testStep type="transfer" name="Cleanup Properties" id="6fd8be50-3542-4623-abaf-d90daac7458e"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>replacedDokumentId</con:name> + <con:name>replacedRasterbasisId</con:name> <con:sourceType>empty</con:sourceType> <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>replacedDokumentId</con:targetType> + <con:targetType>replacedRasterbasisId</con:targetType> <con:targetStep>#TestCase#</con:targetStep> <con:upgraded>true</con:upgraded> </con:transfers> @@ -27182,31 +29285,131 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:value/> </con:property> <con:property> - <con:name>replacedDokumentId</con:name> + <con:name>replacedRasterbasisId</con:name> <con:value/> </con:property> </con:properties> </con:testCase> - <con:testCase id="ccadec16-905d-4fe8-aafd-93091c764534" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/rasterbasis TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/plan/{planId}/rasterbasis"-Pfad</con:description> + <con:testCase id="253222fc-e5f0-47f9-99b7-5b78d91f05c3" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId} TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Tests für den "/plan/{planId}"-Pfad</con:description> <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI getRasterBasis" id="b1d19332-c2ce-4f1f-ad4a-06135d97734e"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI acceptApplicationJson" id="c6005e2e-fd92-46f5-aad1-104f36aef455"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI getRasterBasis" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI acceptApplicationJson" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> + <con:assertion type="JsonPath Match" id="98e8e899-1aa0-49a9-88a4-c2ccaf9f4519" name="type"> + <con:configuration> + <path>$.type</path> + <content>BP_Plan</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="5b37bf48-1272-473a-b0fa-8af44fb4bda9" name="version"> + <con:configuration> + <path>$.version</path> + <content>XPLAN_60</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="a3bb8ff5-eb83-4e1c-9375-3a648d208427" name="planStatus"> + <con:configuration> + <path>$.planStatus</path> + <content>FESTGESTELLT</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="b04b5ac9-69db-4238-b0a3-31fb43bfb587" name="internalId"> + <con:configuration> + <path>$.xplanModelData.internalId</path> + <content>soapui-test-id</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="b04b5ac9-69db-4238-b0a3-31fb43bfb587" name="gemeinden.ags"> + <con:configuration> + <path>$.xplanModelData.gemeinden[0].ags</path> + <content>02000000</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="b04b5ac9-69db-4238-b0a3-31fb43bfb587" name="gemeinden.gemeindeName"> + <con:configuration> + <path>$.xplanModelData.gemeinden[0].gemeindeName</path> + <content>Freie und Hansestadt Hamburg</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath RegEx Match" id="661feb7b-2379-46aa-a994-f7034df08aaf" name="link self"> + <con:configuration> + <path>$.links[?(@.rel == 'self' && (@.type == 'application/json'))].href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + <regEx>^.*/api/v2/plan/.*$</regEx> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Count" id="1f02b841-df99-4f50-bc12-f75834e396e0" name="link self count"> + <con:configuration> + <path>$.links[?(@.rel == 'self')]</path> + <content>1</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath RegEx Match" id="ef5b8e76-d4eb-4b91-a20f-cfacbdaaa3d3" name="link planwerkwms"> + <con:configuration> + <path>$.links[?(@.rel == 'planwerkwms')].href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + <regEx>^.*/services/planwerkwms/planname/.*$</regEx> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="c6426ec1-7f70-4f7d-a0bf-1891f0f56f6f" name="geltungsbereichWGS84.type"> + <con:configuration> + <path>$.geltungsbereichWGS84.type</path> + <content>Polygon</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="7b5fcbfd-f410-4ec0-9a1d-60d62e1c9b19" name="geltungsbereichWGS84.coordinates firstEntry"> + <con:configuration> + <path>$.geltungsbereichWGS84.coordinates[0][0]</path> + <content>[9.86228294160898,53.57602035371566]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -27217,15 +29420,15 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="835a4908-c8d6-474e-81ab-8955bb9b0021"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="aacc1bbb-ad37-479c-8572-894b69e18e23"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/rasterbasis</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> <codes>400</codes> </con:configuration> @@ -27233,7 +29436,6 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -27244,15 +29446,15 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="93f44e37-e364-40b6-9d66-af2f0f42d19b"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="dbd2d4c8-15ed-4077-a853-2f54782b0f4a"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/rasterbasis</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> <codes>404</codes> </con:configuration> @@ -27260,7 +29462,6 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -27271,23 +29472,48 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="839e7f5e-86ee-4064-86e8-e39485049be7"> + <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="c1aba076-6f09-4943-811a-9d1abd46d554"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>406</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="DEL BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="5962a846-47b2-43b1-bebe-f1979b97c182"> + <con:settings/> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999999999999999</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> - <codes>406</codes> + <codes>400</codes> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -27298,368 +29524,423 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI addRasterBasis" id="2d691e01-0ff4-4bce-84fb-b5b68de9a311"> + <con:testStep type="httprequest" name="DEL BP 6.0.2 pI notExistingPlanIdExpectError404" id="aab75bec-d024-4b9e-a92b-59c66881a731"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI addRasterBasis" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="ef3e40e8-ca3a-496f-a0c9-2fdb0ab4290c" name="referenzName"> - <con:configuration> - <path>$.referenzName</path> - <content>postImg</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="ef3e40e8-ca3a-496f-a0c9-2fdb0ab4290c" name="bereichNummer"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.bereichNummer</path> - <content>0</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>404</codes> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>postImg.png</con:name> - <con:contentType>image/png</con:contentType> - <con:contentId>rasterdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postImg.png</con:url> - <con:id>bc046f4c-3ac0-4429-8147-60c18d35f321</con:id> - </con:attachment> - <con:attachment> - <con:name>postImg.pgw</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>georeferenzdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postImg.pgw</con:url> - <con:id>7e00e2a0-8b73-4665-b2ac-b458ef84b730</con:id> - </con:attachment> - <con:attachment> - <con:name>postDokRaster.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>rasterbasismodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDokRaster.json</con:url> - <con:id>8419d223-e80a-4b12-a72d-c0fc95349d12</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0.2 pI addRasterBasis Property Transfer" id="963638c6-a6bc-407b-a4ae-ba9bf980b0b9"> - <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>rasterbasisId</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0.2 pI addRasterBasis</con:sourceStep> - <con:sourcePath>$.id</con:sourcePath> - <con:targetType>rasterbasisId</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="ee7c04b1-7df3-4e01-8716-50a597447493"> + <con:testStep type="httprequest" name="DEL BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="851016d5-cfdf-45d8-9487-7a4cd387b4c4"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/rasterbasis</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> - <codes>400</codes> + <codes>406</codes> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>postImg.png</con:name> - <con:contentType>image/png</con:contentType> - <con:contentId>rasterdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postImg.png</con:url> - <con:id>bc046f4c-3ac0-4429-8147-60c18d35f321</con:id> - </con:attachment> - <con:attachment> - <con:name>postImg.pgw</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>georeferenzdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postImg.pgw</con:url> - <con:id>7e00e2a0-8b73-4665-b2ac-b458ef84b730</con:id> - </con:attachment> - <con:attachment> - <con:name>postDokRaster.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>rasterbasismodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDokRaster.json</con:url> - <con:id>8419d223-e80a-4b12-a72d-c0fc95349d12</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI notExistingPlanIdExpectError404" id="0e7bfe85-1992-4889-9849-b9dfe9881e12"> + <con:testStep type="httprequest" name="DEL BP 6.0.2 pI deletePlan" id="fa52d97b-b10e-4e81-b1ab-c53e13a781c4"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0.2 pI deletePlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/rasterbasis</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> - <codes>404</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> + <con:configuration> + <path>$.message</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>postImg.png</con:name> - <con:contentType>image/png</con:contentType> - <con:contentId>rasterdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postImg.png</con:url> - <con:id>bc046f4c-3ac0-4429-8147-60c18d35f321</con:id> - </con:attachment> - <con:attachment> - <con:name>postImg.pgw</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>georeferenzdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postImg.pgw</con:url> - <con:id>7e00e2a0-8b73-4665-b2ac-b458ef84b730</con:id> - </con:attachment> - <con:attachment> - <con:name>postDokRaster.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>rasterbasismodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDokRaster.json</con:url> - <con:id>8419d223-e80a-4b12-a72d-c0fc95349d12</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="abb3e882-1da3-4dcb-9a1f-559bb438e7f5"> + <con:properties/> + </con:testCase> + <con:testCase id="45abf6c5-f8d2-4a1e-8c19-d132aaf8cd8c" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Cleanup Properties" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>Gesetzte Werte werden wieder geleert</con:description> + <con:settings/> + <con:testStep type="transfer" name="Property Transfer" id="13275765-db9d-43ff-acce-e447fb399a29"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>uuid</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>uuid</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>planId</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" disabled="false" entitize="false" ignoreEmpty="false" transferChildNodes="false" transferToAll="false" useXQuery="false"> + <con:name>uuidMismatchingTypes</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:sourcePath xsi:nil="true"/> + <con:targetType>uuidMismatchingTypes</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:targetPath xsi:nil="true"/> + <con:type>XPATH</con:type> + <con:targetTransferType>XPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>textId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>textId</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>dokumentId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>dokumentId</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>rasterbasisId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>rasterbasisId</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>uuidInvalidProfile</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>uuidInvalidProfile</con:targetType> + <con:targetStep>#TestSuite#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value/> + </con:property> + </con:properties> + </con:testCase> + <con:properties> + <con:property> + <con:name>uuid</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>uuidMismatchingTypes</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>uuidInvalidProfile</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>planId</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>textId</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>dokumentId</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>rasterbasisId</con:name> + <con:value/> + </con:property> + </con:properties> + </con:testSuite> + <con:testSuite id="a24fcedd-6b79-4153-8047-938cac8308a8" name="Workflow v2 TestSuite"> + <con:description>Worflow-TestSuite für die API version 2</con:description> + <con:settings/> + <con:runType>SEQUENTIAL</con:runType> + <con:testCase id="4ba19cf1-4413-4322-842c-f35c0f43425e" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Raster evaluation TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für die Validierung von Rasterdaten (CRS und Bildformat)</con:description> + <con:settings/> + <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan" id="47384dc8-250b-41dc-a703-4fc11fe6be5b"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> <con:configuration> - <codes>406</codes> + <codes>200</codes> </con:configuration> </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:domain/> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:attachment> - <con:name>postImg.png</con:name> - <con:contentType>image/png</con:contentType> - <con:contentId>rasterdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postImg.png</con:url> - <con:id>bc046f4c-3ac0-4429-8147-60c18d35f321</con:id> - </con:attachment> - <con:attachment> - <con:name>postImg.pgw</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>georeferenzdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postImg.pgw</con:url> - <con:id>7e00e2a0-8b73-4665-b2ac-b458ef84b730</con:id> - </con:attachment> - <con:attachment> - <con:name>postDokRaster.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>rasterbasismodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDokRaster.json</con:url> - <con:id>8419d223-e80a-4b12-a72d-c0fc95349d12</con:id> - </con:attachment> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidMediaTypeExpectError415" id="4cee4bea-712f-4df2-bbdb-7e4b334e7ddd"> - <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidMediaTypeExpectError415" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> <con:configuration> - <codes>415</codes> + <path>$.uuid</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> + <con:configuration> + <path>$.statusLink</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> + <con:configuration> + <path>$.statusLink.href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>postImg.png</con:name> - <con:contentType>application/vnd.oasis.opendocument.text</con:contentType> - <con:contentId>rasterdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/invalidContentType.odt</con:url> - <con:id>bc046f4c-3ac0-4429-8147-60c18d35f321</con:id> - </con:attachment> - <con:attachment> - <con:name>postImg.pgw</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>georeferenzdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postImg.pgw</con:url> - <con:id>7e00e2a0-8b73-4665-b2ac-b458ef84b730</con:id> - </con:attachment> - <con:attachment> - <con:name>postDokRaster.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>rasterbasismodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDokRaster.json</con:url> - <con:id>8419d223-e80a-4b12-a72d-c0fc95349d12</con:id> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan004_6-0.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> + <con:parameters> + <con:parameter> + <con:name>skipSemantisch</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipFlaechenschluss</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipLaufrichtung</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter required="false" disableUrlEncoding="false"> + <con:name>internalId</con:name> + <con:value>soapui-test-id</con:value> + <con:style>QUERY</con:style> + <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> + <con:default/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>planStatus</con:name> + <con:value>FESTGESTELLT</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 pI invalidContentInJsonExpectError400" id="5113bb78-6181-43b0-950b-c09cfcc11fae"> + <con:testStep type="transfer" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Property Transfer" id="f82933e6-fd97-427c-9e00-803f265c57cd"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="POST BP 6.0.2 pI invalidContentInJsonExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>uuid</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan</con:sourceStep> + <con:sourcePath>$.uuid</con:sourcePath> + <con:targetType>uuid</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="1e098c49-c6a4-4205-9a4d-ddecdfb74cde"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> - <codes>400</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> + <con:configuration> + <path>$.status</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>postImg.png</con:name> - <con:contentType>image/png</con:contentType> - <con:contentId>rasterdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postImg.png</con:url> - <con:id>bc046f4c-3ac0-4429-8147-60c18d35f321</con:id> - </con:attachment> - <con:attachment> - <con:name>postImg.pgw</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>georeferenzdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postImg.pgw</con:url> - <con:id>7e00e2a0-8b73-4665-b2ac-b458ef84b730</con:id> - </con:attachment> - <con:attachment> - <con:name>postDokRaster.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>rasterbasismodel</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/postDokRasterInvalidContent.json</con:url> - <con:id>8419d223-e80a-4b12-a72d-c0fc95349d12</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:properties/> - </con:testCase> - <con:testCase id="ebb3fc3f-b954-43ec-96e2-7ef39257e8d3" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId}/rasterbasis/{id} TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/plan/{planId}/rasterbasis/{id}"-Pfad</con:description> - <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id getRasterbasisById" id="49759f0c-cb2f-4f8a-a76e-49b8c65b65af"> + <con:testStep type="groovy" name="pollStatus" id="3ab9f16e-684f-419a-8eba-e05874263a90"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id getRasterbasisById" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config> + <script>import groovy.json.JsonSlurper + +def testStepName = "GET BP 6.0 XX pollStatus" +def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") +def json = new JsonSlurper().parseText(response) + +if( context.loopIndex == null ) + context.loopIndex = 0 + +if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ + sleep(1000) + testRunner.gotoStepByName(testStepName) +} else if (context.loopIndex == 40) { + context.loopIndex = null + assert(false) +} else { + context.loopIndex = null +}</script> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="0a5a9eb9-fb3f-401d-9b0b-9513a77026d2"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="referenzName"> + <con:assertion type="JsonPath Match" id="d27fd88e-b78e-4e28-acfc-dc25276fc1a1" name="status"> <con:configuration> - <path>$.referenzName</path> - <content>postImg</content> + <path>$.status</path> + <content>IMPORT_FINISHED</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="320f668b-21ff-4589-a944-cfbd07931e2a" name="importedPlanIdsExists"> + <con:configuration> + <path>$.importedPlanIds</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="id"> + <con:assertion type="JsonPath Existence Match" id="493b851d-f4cf-4289-90b8-3cb49d482b72" name="linksExists"> <con:configuration> - <path>$.id</path> - <content>${#TestSuite#rasterbasisId}</content> + <path>$.links</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d9d5c738-aa0d-4eda-b4cb-cd0fdbdadba6" name="bereichNummer"> + <con:assertion type="JsonPath Existence Match" id="a9ed262c-75d6-4a67-ad13-5b40ce1eb9ac" name="hrefExists"> <con:configuration> - <path>$.bereichNummer</path> - <content>0</content> + <path>$.links[0].href</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -27668,7 +29949,6 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -27679,50 +29959,83 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="94d5775b-3338-4113-87f7-33d90db58c1f"> + <con:testStep type="transfer" name="GET BP 6.0 XX retrieveStatus Property Transfer" id="8f60fb8d-51ee-40c1-a1ab-cfead1947716"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>400</codes> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:domain/> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>GET BP 6.0 XX retrieveStatus</con:sourceStep> + <con:sourcePath>$.importedPlanIds[0]</con:sourcePath> + <con:targetType>planId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id notExistingIdExpectError404" id="8995d151-1693-408b-ad0b-ee9fe3e8291f"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportJson" id="87f3b812-ef7e-4be0-9320-52c8bcb046ab"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id notExistingIdExpectError404" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/rasterbasis/999999999</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> - <codes>404</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="75b7a2e6-379a-4cb9-b379-f7140a10ded9" name="externalReferencesResult.name"> + <con:configuration> + <path>$.plans..externalReferencesResult[?(@.name == 'BPlan004_6-0.png')].name</path> + <content>[BPlan004_6-0.png]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="75b7a2e6-379a-4cb9-b379-f7140a10ded9" name="externalReferencesResult.status"> + <con:configuration> + <path>$.plans..externalReferencesResult[?(@.name == 'BPlan004_6-0.png')].status</path> + <content>[AVAILABLE]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="75b7a2e6-379a-4cb9-b379-f7140a10ded9" name="rasterEvaluationResult.name"> + <con:configuration> + <path>$.plans..rasterEvaluationResult[?(@.name == 'BPlan004_6-0.png')].name</path> + <content>[BPlan004_6-0.png]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="75b7a2e6-379a-4cb9-b379-f7140a10ded9" name="rasterEvaluationResult.crsStatus"> + <con:configuration> + <path>$.plans..rasterEvaluationResult[?(@.name == 'BPlan004_6-0.png')].crsStatus</path> + <content>[MISSING]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="75b7a2e6-379a-4cb9-b379-f7140a10ded9" name="rasterEvaluationResult.imageFormatStatus"> + <con:configuration> + <path>$.plans..rasterEvaluationResult[?(@.name == 'BPlan004_6-0.png')].imageFormatStatus</path> + <content>[SUPPORTED]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -27733,23 +30046,22 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="9e0ea2f9-8728-4ff5-b35a-3b5796d5e2b3"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportPdf" id="d1b25a16-eb87-41a2-bdc3-7ea847d92131"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="GET BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> - <codes>406</codes> + <codes>200</codes> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -27760,273 +30072,365 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="edb041b9-fc28-46fb-a44b-087037a15d93"> + <con:testStep type="httprequest" name="DEL BP 6.0 pI deletePlan" id="fcfe9afc-ad18-49df-99cb-5a7891025f2c"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0 pI deletePlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> - <codes>400</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> + <con:configuration> + <path>$.message</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>putImg.png</con:name> - <con:contentType>image/png</con:contentType> - <con:contentId>rasterdatei</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/attachments/putImg.png</con:url> - <con:id>322fb9cb-5a4b-4cd7-9892-e2c60feded4b</con:id> - </con:attachment> - <con:attachment> - <con:name>putImg.pgw</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>georeferenzdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putImg.pgw</con:url> - <con:id>7bce64d6-46bb-41e0-b869-673d1c926ce0</con:id> - </con:attachment> - <con:attachment> - <con:name>putDokRaster.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>rasterbasismodel</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/attachments/putDokRaster.json</con:url> - <con:id>db9fe229-0045-4809-803f-8b64a0a59c53</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id notExistingIdExpectError404" id="aca5362f-e32a-4701-9ea5-c8fab50d60cd"> + <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlanNotSupportedFormatExpectError415" id="f6834dbd-6794-4a56-8a1c-9a46db64cbfd"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id notExistingIdExpectError404" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlanNotSupportedFormatExpectError415" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/rasterbasis/999999999</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> <con:configuration> - <codes>404</codes> + <codes>415</codes> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>putImg.png</con:name> - <con:contentType>image/png</con:contentType> - <con:contentId>rasterdatei</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/attachments/putImg.png</con:url> - <con:id>322fb9cb-5a4b-4cd7-9892-e2c60feded4b</con:id> - </con:attachment> - <con:attachment> - <con:name>putImg.pgw</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>georeferenzdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putImg.pgw</con:url> - <con:id>7bce64d6-46bb-41e0-b869-673d1c926ce0</con:id> - </con:attachment> - <con:attachment> - <con:name>putDokRaster.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>rasterbasismodel</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/attachments/putDokRaster.json</con:url> - <con:id>db9fe229-0045-4809-803f-8b64a0a59c53</con:id> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan004_6-0_NotSupportedFormatJPEG.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> + <con:parameters> + <con:parameter> + <con:name>skipSemantisch</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipFlaechenschluss</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipLaufrichtung</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter required="false" disableUrlEncoding="false"> + <con:name>internalId</con:name> + <con:value>soapui-test-id</con:value> + <con:style>QUERY</con:style> + <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> + <con:default/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>planStatus</con:name> + <con:value>FESTGESTELLT</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="Cleanup Properties" id="f6db3459-6183-408a-a68a-d070a034a34f"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>uuid</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>uuid</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>planId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="8d05a382-bae2-44db-b97b-0950bfabd497"> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>uuid</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>planId</con:name> + <con:value/> + </con:property> + </con:properties> + </con:testCase> + <con:testCase id="437fdb33-c85f-47bc-8896-4551bd0b8771" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Raster evaluation missing PNG TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für die Validierung von Rasterdaten (CRS und Bildformat), wenn die Rasterdatei im XPlanArchiv fehlt</con:description> + <con:settings/> + <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan" id="2b2df413-8661-4c46-aaff-51a03681724e"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> <con:configuration> - <codes>406</codes> + <codes>200</codes> </con:configuration> </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:domain/> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:attachment> - <con:name>putImg.png</con:name> - <con:contentType>image/png</con:contentType> - <con:contentId>rasterdatei</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/attachments/putImg.png</con:url> - <con:id>322fb9cb-5a4b-4cd7-9892-e2c60feded4b</con:id> - </con:attachment> - <con:attachment> - <con:name>putImg.pgw</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>georeferenzdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putImg.pgw</con:url> - <con:id>7bce64d6-46bb-41e0-b869-673d1c926ce0</con:id> - </con:attachment> - <con:attachment> - <con:name>putDokRaster.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>rasterbasismodel</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/attachments/putDokRaster.json</con:url> - <con:id>db9fe229-0045-4809-803f-8b64a0a59c53</con:id> - </con:attachment> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidMediaTypeExpectError415" id="8e2385f5-784a-4719-80e9-1e934e2a4e4d"> - <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidMediaTypeExpectError415" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> <con:configuration> - <codes>415</codes> + <path>$.uuid</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> + <con:configuration> + <path>$.statusLink</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> + <con:configuration> + <path>$.statusLink.href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>putImg.png</con:name> - <con:contentType>application/vnd.oasis.opendocument.text</con:contentType> - <con:contentId>rasterdatei</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/attachments/invalidContentType.odt</con:url> - <con:id>322fb9cb-5a4b-4cd7-9892-e2c60feded4b</con:id> - </con:attachment> - <con:attachment> - <con:name>putImg.pgw</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>georeferenzdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putImg.pgw</con:url> - <con:id>7bce64d6-46bb-41e0-b869-673d1c926ce0</con:id> - </con:attachment> - <con:attachment> - <con:name>putDokRaster.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>rasterbasismodel</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/attachments/putDokRaster.json</con:url> - <con:id>db9fe229-0045-4809-803f-8b64a0a59c53</con:id> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan004_6-0_MissingPNG.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> + <con:parameters> + <con:parameter> + <con:name>skipSemantisch</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipFlaechenschluss</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipLaufrichtung</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter required="false" disableUrlEncoding="false"> + <con:name>internalId</con:name> + <con:value>soapui-test-id</con:value> + <con:style>QUERY</con:style> + <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> + <con:default/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>planStatus</con:name> + <con:value>FESTGESTELLT</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id invalidContentInJsonExpectError400" id="27a97564-7a59-4ca0-b78f-804e28b25f81"> + <con:testStep type="transfer" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Property Transfer" id="9db231a3-6738-497f-9fb6-2d374a3b3657"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id invalidContentInJsonExpectError400" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>uuid</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan</con:sourceStep> + <con:sourcePath>$.uuid</con:sourcePath> + <con:targetType>uuid</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="f196a0ba-4d6a-459d-9766-c46cfe148b94"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> - <codes>400</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> + <con:configuration> + <path>$.status</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>putImg.png</con:name> - <con:contentType>image/png</con:contentType> - <con:contentId>rasterdatei</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/attachments/putImg.png</con:url> - <con:id>322fb9cb-5a4b-4cd7-9892-e2c60feded4b</con:id> - </con:attachment> - <con:attachment> - <con:name>putImg.pgw</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>georeferenzdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putImg.pgw</con:url> - <con:id>7bce64d6-46bb-41e0-b869-673d1c926ce0</con:id> - </con:attachment> - <con:attachment> - <con:name>putDokRaster.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>rasterbasismodel</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/attachments/putDokRasterInvalidContent.json</con:url> - <con:id>db9fe229-0045-4809-803f-8b64a0a59c53</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="PUT BP 6.0.2 pI,id replaceRasterbasisById" id="60528307-d243-478c-83da-18d1a1a401f5"> + <con:testStep type="groovy" name="pollStatus" id="a0e1df51-0cd3-49f0-b7e3-1725d1272fc7"> + <con:settings/> + <con:config> + <script>import groovy.json.JsonSlurper + +def testStepName = "GET BP 6.0 XX pollStatus" +def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") +def json = new JsonSlurper().parseText(response) + +if( context.loopIndex == null ) + context.loopIndex = 0 + +if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ + sleep(1000) + testRunner.gotoStepByName(testStepName) +} else if (context.loopIndex == 40) { + context.loopIndex = null + assert(false) +} else { + context.loopIndex = null +}</script> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="c5f8a9ca-d815-492b-a437-6da38063f5d3"> <con:settings/> - <con:config method="PUT" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="PUT BP 6.0.2 pI,id replaceRasterbasisById" postQueryString="false" mediaType="multipart/form-data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestSuite#rasterbasisId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="bereichNummer"> + <con:assertion type="JsonPath Match" id="d27fd88e-b78e-4e28-acfc-dc25276fc1a1" name="status"> <con:configuration> - <path>$.bereichNummer</path> - <content>0</content> + <path>$.status</path> + <content>IMPORT_ABORTED</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="129ac743-0353-43ba-93a5-97580a06afee" name="errorMsgExists"> + <con:configuration> + <path>$.errorMsg</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="493b851d-f4cf-4289-90b8-3cb49d482b72" name="linksExists"> + <con:configuration> + <path>$.links</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="a9ed262c-75d6-4a67-ad13-5b40ce1eb9ac" name="hrefExists"> + <con:configuration> + <path>$.links[0].href</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -28035,73 +30439,59 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>putImg.png</con:name> - <con:contentType>image/png</con:contentType> - <con:contentId>rasterdatei</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/attachments/putImg.png</con:url> - <con:id>322fb9cb-5a4b-4cd7-9892-e2c60feded4b</con:id> - </con:attachment> - <con:attachment> - <con:name>putImg.pgw</con:name> - <con:contentType>text/plain</con:contentType> - <con:contentId>georeferenzdatei</con:contentId> - <con:url>${projectDir}/xplan-manager-api/attachments/putImg.pgw</con:url> - <con:id>7bce64d6-46bb-41e0-b869-673d1c926ce0</con:id> - </con:attachment> - <con:attachment> - <con:name>putDokRaster.json</con:name> - <con:contentType>application/json</con:contentType> - <con:contentId>rasterbasismodel</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/attachments/putDokRaster.json</con:url> - <con:id>db9fe229-0045-4809-803f-8b64a0a59c53</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="PUT BP 6.0.2 pI,id replaceRasterbasisById Property Transfer" id="457e6bcb-6660-453f-9076-fd0a546b8f8a"> - <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>replacedRasterbasisId</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>PUT BP 6.0.2 pI,id replaceRasterbasisById</con:sourceStep> - <con:sourcePath>$.id</con:sourcePath> - <con:targetType>replacedRasterbasisId</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" id="8469a42e-2148-440e-887f-62d9fbe19151"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportJson" id="bfbc155e-88f4-4f2c-a4cc-7dc431caf5fb"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid/rasterbasis/${#TestCase#replacedRasterbasisId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> - <codes>400</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="89c7e1e0-c650-465c-9d3e-9da776d0f125" name="externalReferencesResult.name"> + <con:configuration> + <path>$.plans..externalReferencesResult[?(@.name == 'BPlan004_6-0.png')].name</path> + <content>[BPlan004_6-0.png]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="89c7e1e0-c650-465c-9d3e-9da776d0f125" name="externalReferencesResult.status"> + <con:configuration> + <path>$.plans..externalReferencesResult[?(@.name == 'BPlan004_6-0.png')].status</path> + <content>[MISSING]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="ab778302-2b91-4fb9-8cf2-777ab107e057" name="rasterEvaluationResults"> + <con:configuration> + <path>$.plans..rasterEvaluationResult[?(@.rasterEvaluationResult == '[]')]</path> + <content>[]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -28112,23 +30502,22 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id notExistingIdExpectError404" id="367033df-565e-4e08-8be5-fdff813bb31f"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportPdf" id="be3618fd-23d8-4343-ad68-f6d967896fc5"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id notExistingIdExpectError404" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999/rasterbasis/999999999</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> - <codes>404</codes> + <codes>200</codes> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -28139,59 +30528,163 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" id="2a403e57-7682-4b5e-9d6e-b91b73ea0888"> + <con:testStep type="transfer" name="Cleanup Properties" id="4806fe96-bf30-4465-8087-0fa0c36949df"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>uuid</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>uuid</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>uuid</con:name> + <con:value/> + </con:property> + </con:properties> + </con:testCase> + <con:testCase id="301145fa-4826-4743-ad59-773d6dd91d36" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Raster evaluation wrong CRS TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für die Validierung von Rasterdaten (CRS und Bildformat), wenn ein falsches CRS in den Rasterdaten gesetzt ist</con:description> + <con:settings/> + <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan" id="d36388d8-ee33-4b7e-81a5-b857d9504b27"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestCase#replacedRasterbasisId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> <con:configuration> - <codes>406</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> + <con:configuration> + <path>$.uuid</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> + <con:configuration> + <path>$.statusLink</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> + <con:configuration> + <path>$.statusLink.href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan004_6-0.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan006_6-0_WrongCRSInTIFF4326.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> + <con:parameters> + <con:parameter> + <con:name>skipSemantisch</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipFlaechenschluss</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipLaufrichtung</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter required="false" disableUrlEncoding="false"> + <con:name>internalId</con:name> + <con:value>soapui-test-id</con:value> + <con:style>QUERY</con:style> + <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> + <con:default/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>planStatus</con:name> + <con:value>FESTGESTELLT</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Property Transfer" id="0fef90e9-f502-4b3e-b678-3c3944755085"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>uuid</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan</con:sourceStep> + <con:sourcePath>$.uuid</con:sourcePath> + <con:targetType>uuid</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 pI,id deleteRasterbasisById" id="d197eb2e-f916-4aaa-9562-8a9ad5662b23"> + <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="4abf7e36-9bb1-4273-bc30-a5d49711e241"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="814b3598-7ff7-4708-bf40-b084c3dfdbd8" name="DEL BP 6.0.2 pI,id deleteRasterbasisById" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}/rasterbasis/${#TestCase#replacedRasterbasisId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="5bcfd2ec-377d-48c4-ab82-1bb088367de5" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="id"> - <con:configuration> - <path>$.id</path> - <content>${#TestCase#replacedRasterbasisId}</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="08ca7e22-f5e1-4b21-853e-823a3d6c127d" name="bereichNummer"> + <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> <con:configuration> - <path>$.bereichNummer</path> - <content>0</content> + <path>$.status</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -28200,7 +30693,6 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:domain/> <con:selectedAuthProfile>Basic</con:selectedAuthProfile> <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> @@ -28211,133 +30703,73 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="6fd8be50-3542-4623-abaf-d90daac7458e"> + <con:testStep type="groovy" name="pollStatus" id="e221f8f8-df20-43b9-9463-423096800877"> <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>replacedRasterbasisId</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>replacedRasterbasisId</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> + <con:config> + <script>import groovy.json.JsonSlurper + +def testStepName = "GET BP 6.0 XX pollStatus" +def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") +def json = new JsonSlurper().parseText(response) + +if( context.loopIndex == null ) + context.loopIndex = 0 + +if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ + sleep(1000) + testRunner.gotoStepByName(testStepName) +} else if (context.loopIndex == 40) { + context.loopIndex = null + assert(false) +} else { + context.loopIndex = null +}</script> </con:config> </con:testStep> - <con:properties> - <con:property> - <con:name>empty</con:name> - <con:value/> - </con:property> - <con:property> - <con:name>replacedRasterbasisId</con:name> - <con:value/> - </con:property> - </con:properties> - </con:testCase> - <con:testCase id="253222fc-e5f0-47f9-99b7-5b78d91f05c3" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="/plan/{planId} TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Tests für den "/plan/{planId}"-Pfad</con:description> - <con:settings/> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI acceptApplicationJson" id="c6005e2e-fd92-46f5-aad1-104f36aef455"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="e808c8ba-5d87-47fe-9aaf-bbccdac273c5"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI acceptApplicationJson" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="98e8e899-1aa0-49a9-88a4-c2ccaf9f4519" name="type"> - <con:configuration> - <path>$.type</path> - <content>BP_Plan</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="5b37bf48-1272-473a-b0fa-8af44fb4bda9" name="version"> - <con:configuration> - <path>$.version</path> - <content>XPLAN_60</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="a3bb8ff5-eb83-4e1c-9375-3a648d208427" name="planStatus"> - <con:configuration> - <path>$.planStatus</path> - <content>FESTGESTELLT</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="b04b5ac9-69db-4238-b0a3-31fb43bfb587" name="gemeinden.ags"> - <con:configuration> - <path>$.xplanModelData.gemeinden[0].ags</path> - <content>02000000</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="b04b5ac9-69db-4238-b0a3-31fb43bfb587" name="gemeinden.gemeindeName"> + <con:assertion type="JsonPath Match" id="d27fd88e-b78e-4e28-acfc-dc25276fc1a1" name="status"> <con:configuration> - <path>$.xplanModelData.gemeinden[0].gemeindeName</path> - <content>Freie und Hansestadt Hamburg</content> + <path>$.status</path> + <content>IMPORT_ABORTED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="661feb7b-2379-46aa-a994-f7034df08aaf" name="link self"> + <con:assertion type="JsonPath Existence Match" id="129ac743-0353-43ba-93a5-97580a06afee" name="errorMsgExists"> <con:configuration> - <path>$.links[?(@.rel == 'self' && (@.type == 'application/json'))].href</path> + <path>$.errorMsg</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/plan/.*$</regEx> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Count" id="1f02b841-df99-4f50-bc12-f75834e396e0" name="link self count"> - <con:configuration> - <path>$.links[?(@.rel == 'self')]</path> - <content>1</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="ef5b8e76-d4eb-4b91-a20f-cfacbdaaa3d3" name="link planwerkwms"> + <con:assertion type="JsonPath Existence Match" id="493b851d-f4cf-4289-90b8-3cb49d482b72" name="linksExists"> <con:configuration> - <path>$.links[?(@.rel == 'planwerkwms')].href</path> + <path>$.links</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/services/planwerkwms/planname/.*$</regEx> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="c6426ec1-7f70-4f7d-a0bf-1891f0f56f6f" name="geltungsbereichWGS84.type"> - <con:configuration> - <path>$.geltungsbereichWGS84.type</path> - <content>Polygon</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="7b5fcbfd-f410-4ec0-9a1d-60d62e1c9b19" name="geltungsbereichWGS84.coordinates firstEntry"> + <con:assertion type="JsonPath Existence Match" id="a9ed262c-75d6-4a67-ad13-5b40ce1eb9ac" name="hrefExists"> <con:configuration> - <path>$.geltungsbereichWGS84.coordinates[0][0]</path> - <content>[9.86228294160898,53.57602035371566]</content> + <path>$.links[0].href</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -28356,121 +30788,62 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="aacc1bbb-ad37-479c-8572-894b69e18e23"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportJson" id="92d2f4fa-c141-4300-8211-51dda5cf1cca"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/invalid</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> - <codes>400</codes> + <codes>200</codes> </con:configuration> </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" id="dbd2d4c8-15ed-4077-a853-2f54782b0f4a"> - <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:assertion type="JsonPath Match" id="40844e9c-7cc7-4a1c-a0ff-4b21e34dd3f3" name="externalReferencesResult.name"> <con:configuration> - <codes>404</codes> + <path>$.plans..externalReferencesResult[?(@.name == 'BPlan006_6-0.tiff')].name</path> + <content>[BPlan006_6-0.tiff]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="c1aba076-6f09-4943-811a-9d1abd46d554"> - <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="GET BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:assertion type="JsonPath Match" id="40844e9c-7cc7-4a1c-a0ff-4b21e34dd3f3" name="externalReferencesResult.status"> <con:configuration> - <codes>406</codes> + <path>$.plans..externalReferencesResult[?(@.name == 'BPlan006_6-0.tiff')].status</path> + <content>[AVAILABLE]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" id="5962a846-47b2-43b1-bebe-f1979b97c182"> - <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0.2 pI invalidPlanIdNotIntValueExpectError400" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999999999999999</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:assertion type="JsonPath Match" id="40844e9c-7cc7-4a1c-a0ff-4b21e34dd3f3" name="rasterEvaluationResult.name"> + <con:configuration> + <path>$.plans..rasterEvaluationResult[?(@.name == 'BPlan006_6-0.tiff')].name</path> + <content>[BPlan006_6-0.tiff]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="40844e9c-7cc7-4a1c-a0ff-4b21e34dd3f3" name="rasterEvaluationResult.crsStatus"> <con:configuration> - <codes>400</codes> + <path>$.plans..rasterEvaluationResult[?(@.name == 'BPlan006_6-0.tiff')].crsStatus</path> + <content>[UNSUPPORTED]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 pI notExistingPlanIdExpectError404" id="aab75bec-d024-4b9e-a92b-59c66881a731"> - <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0.2 pI notExistingPlanIdExpectError404" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/999999999</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:assertion type="JsonPath Match" id="40844e9c-7cc7-4a1c-a0ff-4b21e34dd3f3" name="rasterEvaluationResult.imageFormatStatus"> <con:configuration> - <codes>404</codes> + <path>$.plans..rasterEvaluationResult[?(@.name == 'BPlan006_6-0.tiff')].imageFormatStatus</path> + <content>[SUPPORTED]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> @@ -28486,17 +30859,17 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 pI invalidAcceptHeaderExpectError406" id="851016d5-cfdf-45d8-9487-7a4cd387b4c4"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportPdf" id="838f0872-4fa2-4131-8588-75673197518c"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0.2 pI invalidAcceptHeaderExpectError406" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="invalid" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> <con:configuration> - <codes>406</codes> + <codes>200</codes> </con:configuration> </con:assertion> <con:credentials> @@ -28512,28 +30885,77 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 pI deletePlan" id="fa52d97b-b10e-4e81-b1ab-c53e13a781c4"> + <con:testStep type="transfer" name="Cleanup Properties" id="b4a783ea-b823-4f80-a052-a2cacf6652f9"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0.2 pI deletePlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" disabled="false" entitize="false" ignoreEmpty="false" transferChildNodes="false" transferToAll="false" useXQuery="false"> + <con:name>uuid</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:sourcePath xsi:nil="true"/> + <con:targetType>uuid</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:targetPath xsi:nil="true"/> + <con:type>XPATH</con:type> + <con:targetTransferType>XPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>uuid</con:name> + <con:value/> + </con:property> + </con:properties> + </con:testCase> + <con:testCase id="184da798-81c7-4677-bdf3-d4ff823c0b21" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Profiles TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="httprequest" name="GET XX X.X XX showConfig" id="0a19d2a8-8323-4881-8650-b63523e5b373"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="ada729bc-f24a-41d6-bcf5-4dd34948e273" name="GET XX X.X XX showConfig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestSuite#planId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/info</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="860eaa41-d4c0-4b28-9e32-132c7e894b18" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> + <con:assertion type="JsonPath Existence Match" id="1beb64fd-81c2-46b9-b690-f88938a487fc" name="hasVersion"> <con:configuration> - <path>$.message</path> + <path>$.version</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> + <con:assertion type="GroovyScriptAssertion" id="bf3730ab-4f4d-4167-b404-d09046ef994c" name="versionNotNull"> + <con:configuration> + <scriptText>import groovy.json.JsonSlurper + +json = new JsonSlurper().parseText(messageExchange.response.responseContent) +assert !(json.isEmpty()) + +assert json.version != null</scriptText> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="a525ec99-c1ee-4ed3-a1f4-19760fc2d1c0" name="supportedXPlanGmlVersions"> + <con:configuration> + <path>$.supportedXPlanGmlVersions</path> + <content>["XPLAN_40","XPLAN_41","XPLAN_50","XPLAN_51","XPLAN_52","XPLAN_53","XPLAN_54","XPLAN_60"]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> @@ -28547,128 +30969,29 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:properties/> - </con:testCase> - <con:testCase id="45abf6c5-f8d2-4a1e-8c19-d132aaf8cd8c" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Cleanup Properties" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>Gesetzte Werte werden wieder geleert</con:description> - <con:settings/> - <con:testStep type="transfer" name="Property Transfer" id="13275765-db9d-43ff-acce-e447fb399a29"> + <con:testStep type="transfer" name="GET XX X.X XX showConfig Property Transfer" id="5c00b85e-4cdb-4b50-a290-fe440502f3d5"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>uuid</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>uuid</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>planId</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>planId</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" disabled="false" entitize="false" ignoreEmpty="false" transferChildNodes="false" transferToAll="false" useXQuery="false"> - <con:name>uuidMismatchingTypes</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:sourcePath xsi:nil="true"/> - <con:targetType>uuidMismatchingTypes</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:targetPath xsi:nil="true"/> - <con:type>XPATH</con:type> - <con:targetTransferType>XPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>textId</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>textId</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>dokumentId</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>dokumentId</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>rasterbasisId</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>rasterbasisId</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>uuidInvalidProfile</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>uuidInvalidProfile</con:targetType> - <con:targetStep>#TestSuite#</con:targetStep> + <con:name>profile</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>GET XX X.X XX showConfig</con:sourceStep> + <con:sourcePath>$.profiles[0]</con:sourcePath> + <con:targetType>profile</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> <con:upgraded>true</con:upgraded> </con:transfers> </con:config> </con:testStep> - <con:properties> - <con:property> - <con:name>empty</con:name> - <con:value/> - </con:property> - </con:properties> - </con:testCase> - <con:properties> - <con:property> - <con:name>uuid</con:name> - <con:value/> - </con:property> - <con:property> - <con:name>uuidMismatchingTypes</con:name> - <con:value/> - </con:property> - <con:property> - <con:name>uuidInvalidProfile</con:name> - <con:value/> - </con:property> - <con:property> - <con:name>planId</con:name> - <con:value/> - </con:property> - <con:property> - <con:name>textId</con:name> - <con:value/> - </con:property> - <con:property> - <con:name>dokumentId</con:name> - <con:value/> - </con:property> - <con:property> - <con:name>rasterbasisId</con:name> - <con:value/> - </con:property> - </con:properties> - </con:testSuite> - <con:testSuite id="a24fcedd-6b79-4153-8047-938cac8308a8" name="Workflow v2 TestSuite"> - <con:description>Worflow-TestSuite für die API version 2</con:description> - <con:settings/> - <con:runType>SEQUENTIAL</con:runType> - <con:testCase id="4ba19cf1-4413-4322-842c-f35c0f43425e" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Raster evaluation TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>TestCase für die Validierung von Rasterdaten (CRS und Bildformat)</con:description> - <con:settings/> - <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan" id="47384dc8-250b-41dc-a703-4fc11fe6be5b"> + <con:testStep type="httprequest" name="POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS,pf importPlan" id="2d520618-0f96-43e3-8abb-833622c02afa"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS,pf importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> <con:entry key="Accept" value="application/json"/> - <con:entry key="X-Filename" value="soapui-test"/> + <con:entry key="X-Filename" value="soapui-profiles-test"/> </xml-fragment></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> @@ -28716,8 +31039,8 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:attachment> <con:name>FP_6.0.2.zip</con:name> <con:contentType>application/octet-stream</con:contentType> - <con:contentId>BPlan004_6-0.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BPlan004_6-0.zip</con:url> + <con:contentId>BP_6.0.2.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0.2.zip</con:url> <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -28745,7 +31068,7 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:parameter> <con:parameter required="false" disableUrlEncoding="false"> <con:name>internalId</con:name> - <con:value>soapui-test-id</con:value> + <con:value>soapui-profiles-test-id</con:value> <con:style>QUERY</con:style> <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> <con:default/> @@ -28756,16 +31079,21 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:value>FESTGESTELLT</con:value> <con:style>QUERY</con:style> </con:parameter> + <con:parameter> + <con:name>profiles</con:name> + <con:value>${#TestCase#profile}</con:value> + <con:style>QUERY</con:style> + </con:parameter> </con:parameters> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Property Transfer" id="f82933e6-fd97-427c-9e00-803f265c57cd"> + <con:testStep type="transfer" name="POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS,pf importPlan Property Transfer" id="9b549a9d-2929-4756-8527-7b00357853d5"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan</con:sourceStep> + <con:sourceStep>POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS,pf importPlan</con:sourceStep> <con:sourcePath>$.uuid</con:sourcePath> <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> @@ -28775,9 +31103,9 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="1e098c49-c6a4-4205-9a4d-ddecdfb74cde"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX pollStatus" id="7672cc36-9f90-4575-b8db-d44c16e65fff"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -28810,12 +31138,12 @@ if( ++context.loopIndex < 40 && json.status != "VALIDATION_FAILED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="3ab9f16e-684f-419a-8eba-e05874263a90"> + <con:testStep type="groovy" name="pollStatus" id="4ebd1bce-c2a9-479f-8bdf-f6747f908e6b"> <con:settings/> <con:config> <script>import groovy.json.JsonSlurper -def testStepName = "GET BP 6.0 XX pollStatus" +def testStepName = "GET BP 6.0.2 XX pollStatus" def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") def json = new JsonSlurper().parseText(response) @@ -28833,9 +31161,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ }</script> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="0a5a9eb9-fb3f-401d-9b0b-9513a77026d2"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveStatus" id="4d4ef268-51a5-47d5-b94b-4caacfe7c0fb"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -28895,13 +31223,13 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="GET BP 6.0 XX retrieveStatus Property Transfer" id="8f60fb8d-51ee-40c1-a1ab-cfead1947716"> + <con:testStep type="transfer" name="GET BP 6.0.2 XX retrieveStatus Property Transfer" id="fb2dfcd0-5278-4961-ba54-f4cc2e112df9"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>planId</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>GET BP 6.0 XX retrieveStatus</con:sourceStep> + <con:sourceStep>GET BP 6.0.2 XX retrieveStatus</con:sourceStep> <con:sourcePath>$.importedPlanIds[0]</con:sourcePath> <con:targetType>planId</con:targetType> <con:targetStep>#TestCase#</con:targetStep> @@ -28911,9 +31239,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportJson" id="87f3b812-ef7e-4be0-9320-52c8bcb046ab"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveReportJson" id="5f6239cb-ffa3-41e2-8bea-53c47786757d"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -28924,46 +31252,64 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="75b7a2e6-379a-4cb9-b379-f7140a10ded9" name="externalReferencesResult.name"> + <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.rulesMetadata.id exists"> <con:configuration> - <path>$.plans..externalReferencesResult[?(@.name == 'BPlan004_6-0.png')].name</path> - <content>[BPlan004_6-0.png]</content> + <path>$.plans[0].validationResult.profile[0].rulesMetadata.id</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="75b7a2e6-379a-4cb9-b379-f7140a10ded9" name="externalReferencesResult.status"> + <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.rulesMetadata.name exists"> <con:configuration> - <path>$.plans..externalReferencesResult[?(@.name == 'BPlan004_6-0.png')].status</path> - <content>[AVAILABLE]</content> + <path>$.plans[0].validationResult.profile[0].rulesMetadata.name</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="75b7a2e6-379a-4cb9-b379-f7140a10ded9" name="rasterEvaluationResult.name"> + <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.rulesMetadata.description exists"> <con:configuration> - <path>$.plans..rasterEvaluationResult[?(@.name == 'BPlan004_6-0.png')].name</path> - <content>[BPlan004_6-0.png]</content> + <path>$.plans[0].validationResult.profile[0].rulesMetadata.description</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="75b7a2e6-379a-4cb9-b379-f7140a10ded9" name="rasterEvaluationResult.crsStatus"> + <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.rulesMetadata.version exists"> <con:configuration> - <path>$.plans..rasterEvaluationResult[?(@.name == 'BPlan004_6-0.png')].crsStatus</path> - <content>[MISSING]</content> + <path>$.plans[0].validationResult.profile[0].rulesMetadata.version</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="75b7a2e6-379a-4cb9-b379-f7140a10ded9" name="rasterEvaluationResult.imageFormatStatus"> + <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.rulesMetadata.source exists"> <con:configuration> - <path>$.plans..rasterEvaluationResult[?(@.name == 'BPlan004_6-0.png')].imageFormatStatus</path> - <content>[SUPPORTED]</content> + <path>$.plans[0].validationResult.profile[0].rulesMetadata.source</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.ergebnis.valid exists"> + <con:configuration> + <path>$.plans[0].validationResult.profile[0].ergebnis.valid</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.ergebnis.rules exists"> + <con:configuration> + <path>$.plans[0].validationResult.profile[0].ergebnis.rules</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -28982,9 +31328,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportPdf" id="d1b25a16-eb87-41a2-bdc3-7ea847d92131"> + <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveReportPdf" id="df5d365b-022b-4f93-9bd8-d8f713035e70"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -29008,9 +31354,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0 pI deletePlan" id="fcfe9afc-ad18-49df-99cb-5a7891025f2c"> + <con:testStep type="httprequest" name="DEL BP 6.0.2 XX deletePlan" id="a55332ad-10f5-4238-9d79-a72c29a4344b"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0 pI deletePlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0.2 XX deletePlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -29043,79 +31389,17 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlanNotSupportedFormatExpectError415" id="f6834dbd-6794-4a56-8a1c-9a46db64cbfd"> - <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlanNotSupportedFormatExpectError415" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Accept" value="application/json"/> - <con:entry key="X-Filename" value="soapui-test"/> -</xml-fragment></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>415</codes> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:attachment> - <con:name>FP_6.0.2.zip</con:name> - <con:contentType>application/octet-stream</con:contentType> - <con:contentId>BPlan004_6-0.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BPlan004_6-0_NotSupportedFormatJPEG.zip</con:url> - <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> - </con:attachment> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters> - <con:parameter> - <con:name>skipSemantisch</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipFlaechenschluss</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipGeltungsbereich</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipLaufrichtung</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter required="false" disableUrlEncoding="false"> - <con:name>internalId</con:name> - <con:value>soapui-test-id</con:value> - <con:style>QUERY</con:style> - <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> - <con:default/> - <con:description xsi:nil="true"/> - </con:parameter> - <con:parameter> - <con:name>planStatus</con:name> - <con:value>FESTGESTELLT</con:value> - <con:style>QUERY</con:style> - </con:parameter> - </con:parameters> - </con:config> - </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="f6db3459-6183-408a-a68a-d070a034a34f"> + <con:testStep type="transfer" name="Cleanup Properties" id="305457bb-5704-4cb3-bf8f-968f825d2642"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>profile</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>profile</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>empty</con:sourceType> @@ -29139,6 +31423,10 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:name>empty</con:name> <con:value/> </con:property> + <con:property> + <con:name>profile</con:name> + <con:value/> + </con:property> <con:property> <con:name>uuid</con:name> <con:value/> @@ -29149,12 +31437,12 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ </con:property> </con:properties> </con:testCase> - <con:testCase id="437fdb33-c85f-47bc-8896-4551bd0b8771" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Raster evaluation missing PNG TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>TestCase für die Validierung von Rasterdaten (CRS und Bildformat), wenn die Rasterdatei im XPlanArchiv fehlt</con:description> + <con:testCase id="2b029748-1503-4e80-96f7-016af68421f7" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Validation geometric error TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für die Validierung eines geometrisch invaliden Planwerks.</con:description> <con:settings/> - <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan" id="2b2df413-8661-4c46-aaff-51a03681724e"> + <con:testStep type="httprequest" name="POST BP 5.2 XX importPlan" id="b10d677b-59aa-4b8c-8822-d24b5aec84c3"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 5.2 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> <con:entry key="Accept" value="application/json"/> @@ -29163,12 +31451,12 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="047b0265-8e8e-45c2-b4d6-1c67ce5c4a7c" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> + <con:assertion type="JsonPath Existence Match" id="a14750a4-b6ee-40eb-b83b-6905d92e26ed" name="uuidExists"> <con:configuration> <path>$.uuid</path> <content>true</content> @@ -29177,7 +31465,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> + <con:assertion type="JsonPath Existence Match" id="cca268ea-ed94-467c-9fee-33c8215bf396" name="statusLinkExists"> <con:configuration> <path>$.statusLink</path> <content>true</content> @@ -29186,7 +31474,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> + <con:assertion type="JsonPath Existence Match" id="cca268ea-ed94-467c-9fee-33c8215bf396" name="hrefExists"> <con:configuration> <path>$.statusLink.href</path> <content>true</content> @@ -29204,42 +31492,40 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>FP_6.0.2.zip</con:name> - <con:contentType>application/octet-stream</con:contentType> - <con:contentId>BPlan004_6-0.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BPlan004_6-0_MissingPNG.zip</con:url> - <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + <con:name>BP_6.0.2_valide.zip</con:name> + <con:contentType>application/gml+xml</con:contentType> + <con:contentId>BP_5.2_geometricErrorSelbstueberschneidung.gml</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/plans/BP_5.2_geometricErrorSelbstueberschneidung.gml</con:url> + <con:id>292d515d-99cd-4aac-99f1-c05d1d4a5851</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters> <con:parameter> <con:name>skipSemantisch</con:name> - <con:value>true</con:value> + <con:value>false</con:value> <con:style>QUERY</con:style> </con:parameter> <con:parameter> <con:name>skipFlaechenschluss</con:name> - <con:value>true</con:value> + <con:value>false</con:value> <con:style>QUERY</con:style> </con:parameter> <con:parameter> <con:name>skipGeltungsbereich</con:name> - <con:value>true</con:value> + <con:value>false</con:value> <con:style>QUERY</con:style> </con:parameter> <con:parameter> <con:name>skipLaufrichtung</con:name> - <con:value>true</con:value> + <con:value>false</con:value> <con:style>QUERY</con:style> </con:parameter> - <con:parameter required="false" disableUrlEncoding="false"> + <con:parameter> <con:name>internalId</con:name> <con:value>soapui-test-id</con:value> <con:style>QUERY</con:style> - <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> - <con:default/> - <con:description xsi:nil="true"/> </con:parameter> <con:parameter> <con:name>planStatus</con:name> @@ -29249,13 +31535,13 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ </con:parameters> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Property Transfer" id="9db231a3-6738-497f-9fb6-2d374a3b3657"> + <con:testStep type="transfer" name="POST BP 5.2 XX importPlan Property Transfer" id="4b681a4a-a640-4d3c-beb3-0620af4aba1b"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan</con:sourceStep> + <con:sourceStep>POST BP 5.2 XX importPlan</con:sourceStep> <con:sourcePath>$.uuid</con:sourcePath> <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> @@ -29265,26 +31551,104 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="f196a0ba-4d6a-459d-9766-c46cfe148b94"> + <con:testStep type="httprequest" name="GET BP 5.2 XX pollStatus" id="ac7b19e3-16d7-43df-8beb-f99ba6965fca"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.2 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="ae2299b3-55a5-4171-b298-0c0fbf353fbb" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="9c15ee46-6bc7-4cb2-bca6-6439ca6fdd4f" name="statusExists"> + <con:configuration> + <path>$.status</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="groovy" name="pollStatus" id="51cca651-dfca-49d5-bcf9-0de0450da0c1"> + <con:settings/> + <con:config> + <script>import groovy.json.JsonSlurper + +def testStepName = "GET BP 5.2 XX pollStatus" +def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") +def json = new JsonSlurper().parseText(response) + +if( context.loopIndex == null ) + context.loopIndex = 0 + +if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ + sleep(1000) + testRunner.gotoStepByName(testStepName) +} else if (context.loopIndex == 40) { + context.loopIndex = null + assert(false) +} else { + context.loopIndex = null +}</script> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.2 XX retrieveStatus" id="fd12ecea-5fb2-4c6a-9ce1-5dfe5ef74f3f"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.2 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="ae2299b3-55a5-4171-b298-0c0fbf353fbb" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> + <con:assertion type="JsonPath Match" id="c47301d5-d89e-4a17-8345-4329bf534b29" name="status"> <con:configuration> <path>$.status</path> + <content>IMPORT_ABORTED</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath RegEx Match" id="79d9689a-c545-4733-bf8d-4b8da83f53a3" name="href report json"> + <con:configuration> + <path>$.links[?(@.rel == 'report' && @.type == 'application/json')].href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath RegEx Match" id="79d9689a-c545-4733-bf8d-4b8da83f53a3" name="href rename pdf"> + <con:configuration> + <path>$.links[?(@.rel == 'report' && @.type == 'application/pdf')].href</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> + <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -29300,73 +31664,140 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="a0e1df51-0cd3-49f0-b7e3-1725d1272fc7"> - <con:settings/> - <con:config> - <script>import groovy.json.JsonSlurper - -def testStepName = "GET BP 6.0 XX pollStatus" -def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") -def json = new JsonSlurper().parseText(response) - -if( context.loopIndex == null ) - context.loopIndex = 0 - -if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ - sleep(1000) - testRunner.gotoStepByName(testStepName) -} else if (context.loopIndex == 40) { - context.loopIndex = null - assert(false) -} else { - context.loopIndex = null -}</script> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="c5f8a9ca-d815-492b-a437-6da38063f5d3"> + <con:testStep type="httprequest" name="GET BP 5.2 XX retrieveReportJson" id="9a1f0658-2479-4293-af08-9525cf0e46e7"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.2 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d27fd88e-b78e-4e28-acfc-dc25276fc1a1" name="status"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="plans.name"> + <con:configuration> + <path>$.plans[?(@.name == 'BP_5.2-geometricErrorSelbstueberschneidung_SoapUI-XPlanValidatorAPI')].name</path> + <content>[BP_5.2-geometricErrorSelbstueberschneidung_SoapUI-XPlanValidatorAPI]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="plans.valid"> + <con:configuration> + <path>$.plans[?(@.valid == false)].valid</path> + <content>[false]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="status"> <con:configuration> <path>$.status</path> - <content>IMPORT_ABORTED</content> + <content>COMPLETED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="129ac743-0353-43ba-93a5-97580a06afee" name="errorMsgExists"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid"> <con:configuration> - <path>$.errorMsg</path> - <content>true</content> + <path>$.plans[?(@.validationResult.geometrisch.valid == false)].validationResult.geometrisch.valid</path> + <content>[false]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="493b851d-f4cf-4289-90b8-3cb49d482b72" name="linksExists"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.status"> <con:configuration> - <path>$.links</path> - <content>true</content> + <path>$.plans[?(@.validationResult.geometrisch.status == 'COMPLETED')].validationResult.geometrisch.status</path> + <content>[COMPLETED]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="a9ed262c-75d6-4a67-ad13-5b40ce1eb9ac" name="hrefExists"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.rules.findings.gmlIds"> <con:configuration> - <path>$.links[0].href</path> - <content>true</content> + <path>$.plans..validationResult.geometrisch.rules[*].findings[*].gmlIds</path> + <content>[["Gml_C7986975-B702-46BF-9669-E8A2794BCF23"]]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.type"> + <con:configuration> + <path>$.geomfindings.type</path> + <content>FeatureCollection</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.type"> + <con:configuration> + <path>$.geomfindings.features[0].type</path> + <content>Feature</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.geometry.type"> + <con:configuration> + <path>$.geomfindings.features[0].geometry.type</path> + <content>Point</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.geometry.coordinates"> + <con:configuration> + <path>$.geomfindings.features[0].geometry.coordinates</path> + <content>[10.04024134282035,53.581840521708514]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.properties.level"> + <con:configuration> + <path>$.geomfindings.features[0].properties.level</path> + <content>ERROR</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.properties.gmlIds"> + <con:configuration> + <path>$.geomfindings.features[0].properties.gmlIds</path> + <content>Gml_C7986975-B702-46BF-9669-E8A2794BCF23</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.properties.planName"> + <con:configuration> + <path>$.geomfindings.features[0].properties.planName</path> + <content>BP_5.2-geometricErrorSelbstueberschneidung_SoapUI-XPlanValidatorAPI</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.properties.id"> + <con:configuration> + <path>$.geomfindings.features[0].properties.id</path> + <content>2.2.2.1</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -29385,70 +31816,115 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportJson" id="bfbc155e-88f4-4f2c-a4cc-7dc431caf5fb"> + <con:testStep type="httprequest" name="GET BP 5.2 XX retrieveReportPdf" id="8a9de111-9d2b-4c7e-b664-e02e336fe55e"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.2 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="89c7e1e0-c650-465c-9d3e-9da776d0f125" name="externalReferencesResult.name"> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.2 XX retrieveGeomfindings" id="b95c9898-c9b8-4a47-bcc8-409bad9234c5"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.2 XX retrieveGeomfindings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/geo+json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}/geomfindings</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.plans..externalReferencesResult[?(@.name == 'BPlan004_6-0.png')].name</path> - <content>[BPlan004_6-0.png]</content> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="type"> + <con:configuration> + <path>$.type</path> + <content>FeatureCollection</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="89c7e1e0-c650-465c-9d3e-9da776d0f125" name="externalReferencesResult.status"> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.type"> <con:configuration> - <path>$.plans..externalReferencesResult[?(@.name == 'BPlan004_6-0.png')].status</path> - <content>[MISSING]</content> + <path>$.features[0].type</path> + <content>Feature</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="ab778302-2b91-4fb9-8cf2-777ab107e057" name="rasterEvaluationResults"> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.geometry.type"> <con:configuration> - <path>$.plans..rasterEvaluationResult[?(@.rasterEvaluationResult == '[]')]</path> - <content>[]</content> + <path>$.features[0].geometry.type</path> + <content>Point</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.geometry.coordinates"> + <con:configuration> + <path>$.features[0].geometry.coordinates</path> + <content>[10.04024134282035,53.581840521708514]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.properties.level"> + <con:configuration> + <path>$.features[0].properties.level</path> + <content>ERROR</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.properties.gmlIds"> + <con:configuration> + <path>$.features[0].properties.gmlIds</path> + <content>Gml_C7986975-B702-46BF-9669-E8A2794BCF23</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.properties.planName"> + <con:configuration> + <path>$.features[0].properties.planName</path> + <content>BP_5.2-geometricErrorSelbstueberschneidung_SoapUI-XPlanValidatorAPI</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportPdf" id="be3618fd-23d8-4343-ad68-f6d967896fc5"> - <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> + <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.properties.id"> <con:configuration> - <codes>200</codes> + <path>$.features[0].properties.id</path> + <content>2.2.2.1</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> @@ -29464,7 +31940,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="4806fe96-bf30-4465-8087-0fa0c36949df"> + <con:testStep type="transfer" name="Cleanup Properties" id="78e7db8d-3bf3-4b27-b4e3-2237c17b771f"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> @@ -29480,20 +31956,20 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:properties> <con:property> <con:name>empty</con:name> - <con:value/> + <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> </con:property> <con:property> <con:name>uuid</con:name> - <con:value/> + <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> </con:property> </con:properties> </con:testCase> - <con:testCase id="301145fa-4826-4743-ad59-773d6dd91d36" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Raster evaluation wrong CRS TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>TestCase für die Validierung von Rasterdaten (CRS und Bildformat), wenn ein falsches CRS in den Rasterdaten gesetzt ist</con:description> + <con:testCase id="26e0d77e-b853-48e9-8365-16aa0a912489" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Validation semantic error TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für die Validierung eines semantisch invaliden Planwerks.</con:description> <con:settings/> - <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan" id="d36388d8-ee33-4b7e-81a5-b857d9504b27"> + <con:testStep type="httprequest" name="POST BP 6.0 XX importPlan" id="c1961535-f49d-46e5-91c5-4fb0f9a9f472"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 6.0 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> <con:entry key="Accept" value="application/json"/> @@ -29502,12 +31978,12 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="047b0265-8e8e-45c2-b4d6-1c67ce5c4a7c" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> + <con:assertion type="JsonPath Existence Match" id="a14750a4-b6ee-40eb-b83b-6905d92e26ed" name="uuidExists"> <con:configuration> <path>$.uuid</path> <content>true</content> @@ -29516,7 +31992,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> + <con:assertion type="JsonPath Existence Match" id="cca268ea-ed94-467c-9fee-33c8215bf396" name="statusLinkExists"> <con:configuration> <path>$.statusLink</path> <content>true</content> @@ -29525,7 +32001,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> + <con:assertion type="JsonPath Existence Match" id="cca268ea-ed94-467c-9fee-33c8215bf396" name="hrefExists"> <con:configuration> <path>$.statusLink.href</path> <content>true</content> @@ -29543,42 +32019,40 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>FP_6.0.2.zip</con:name> - <con:contentType>application/octet-stream</con:contentType> - <con:contentId>BPlan004_6-0.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BPlan006_6-0_WrongCRSInTIFF4326.zip</con:url> - <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + <con:name>BP_6.0.2_valide.zip</con:name> + <con:contentType>application/gml+xml</con:contentType> + <con:contentId>BP_6.0_semanticErrorRule5_1_5.gml</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-validator-api/plans/BP_6.0_semanticErrorRule5_1_5.gml</con:url> + <con:id>292d515d-99cd-4aac-99f1-c05d1d4a5851</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters> <con:parameter> <con:name>skipSemantisch</con:name> - <con:value>true</con:value> + <con:value>false</con:value> <con:style>QUERY</con:style> </con:parameter> <con:parameter> <con:name>skipFlaechenschluss</con:name> - <con:value>true</con:value> + <con:value>false</con:value> <con:style>QUERY</con:style> </con:parameter> <con:parameter> <con:name>skipGeltungsbereich</con:name> - <con:value>true</con:value> + <con:value>false</con:value> <con:style>QUERY</con:style> </con:parameter> <con:parameter> <con:name>skipLaufrichtung</con:name> - <con:value>true</con:value> + <con:value>false</con:value> <con:style>QUERY</con:style> </con:parameter> - <con:parameter required="false" disableUrlEncoding="false"> + <con:parameter> <con:name>internalId</con:name> <con:value>soapui-test-id</con:value> <con:style>QUERY</con:style> - <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> - <con:default/> - <con:description xsi:nil="true"/> </con:parameter> <con:parameter> <con:name>planStatus</con:name> @@ -29588,13 +32062,13 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ </con:parameters> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Property Transfer" id="0fef90e9-f502-4b3e-b678-3c3944755085"> + <con:testStep type="transfer" name="POST BP 6.0 XX importPlan Property Transfer" id="cf19ee36-f9b4-462e-8420-31bc6f295d01"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan</con:sourceStep> + <con:sourceStep>POST BP 6.0 XX importPlan</con:sourceStep> <con:sourcePath>$.uuid</con:sourcePath> <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> @@ -29604,20 +32078,20 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="4abf7e36-9bb1-4273-bc30-a5d49711e241"> + <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="26b9dec4-c581-418e-8397-bc2d4e8ed7fa"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="ae2299b3-55a5-4171-b298-0c0fbf353fbb" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> + <con:assertion type="JsonPath Existence Match" id="9c15ee46-6bc7-4cb2-bca6-6439ca6fdd4f" name="statusExists"> <con:configuration> <path>$.status</path> <content>true</content> @@ -29639,7 +32113,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="e221f8f8-df20-43b9-9463-423096800877"> + <con:testStep type="groovy" name="pollStatus" id="6ddfc1b3-c944-4bd8-a2f1-aa45bf4158ae"> <con:settings/> <con:config> <script>import groovy.json.JsonSlurper @@ -29662,20 +32136,20 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ }</script> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="e808c8ba-5d87-47fe-9aaf-bbccdac273c5"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="919ec2bc-1054-47be-ae69-e179795bfa03"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="ae2299b3-55a5-4171-b298-0c0fbf353fbb" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d27fd88e-b78e-4e28-acfc-dc25276fc1a1" name="status"> + <con:assertion type="JsonPath Match" id="c47301d5-d89e-4a17-8345-4329bf534b29" name="status"> <con:configuration> <path>$.status</path> <content>IMPORT_ABORTED</content> @@ -29684,31 +32158,24 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="129ac743-0353-43ba-93a5-97580a06afee" name="errorMsgExists"> - <con:configuration> - <path>$.errorMsg</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="493b851d-f4cf-4289-90b8-3cb49d482b72" name="linksExists"> + <con:assertion type="JsonPath RegEx Match" id="79d9689a-c545-4733-bf8d-4b8da83f53a3" name="href report json"> <con:configuration> - <path>$.links</path> + <path>$.links[?(@.rel == 'report' && @.type == 'application/json')].href</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> + <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="a9ed262c-75d6-4a67-ad13-5b40ce1eb9ac" name="hrefExists"> + <con:assertion type="JsonPath RegEx Match" id="79d9689a-c545-4733-bf8d-4b8da83f53a3" name="href rename pdf"> <con:configuration> - <path>$.links[0].href</path> + <path>$.links[?(@.rel == 'report' && @.type == 'application/pdf')].href</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> + <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -29724,169 +32191,68 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportJson" id="92d2f4fa-c141-4300-8211-51dda5cf1cca"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportJson" id="2f19bbea-bdaf-403e-ba44-eedf2049ee47"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="40844e9c-7cc7-4a1c-a0ff-4b21e34dd3f3" name="externalReferencesResult.name"> - <con:configuration> - <path>$.plans..externalReferencesResult[?(@.name == 'BPlan006_6-0.tiff')].name</path> - <content>[BPlan006_6-0.tiff]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="40844e9c-7cc7-4a1c-a0ff-4b21e34dd3f3" name="externalReferencesResult.status"> - <con:configuration> - <path>$.plans..externalReferencesResult[?(@.name == 'BPlan006_6-0.tiff')].status</path> - <content>[AVAILABLE]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="40844e9c-7cc7-4a1c-a0ff-4b21e34dd3f3" name="rasterEvaluationResult.name"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="plans.name"> <con:configuration> - <path>$.plans..rasterEvaluationResult[?(@.name == 'BPlan006_6-0.tiff')].name</path> - <content>[BPlan006_6-0.tiff]</content> + <path>$.plans[?(@.name == 'BP_6.0_semanticError_5_1_5-SoapUI-XPlanValidatorAPI')].name</path> + <content>[BP_6.0_semanticError_5_1_5-SoapUI-XPlanValidatorAPI]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="40844e9c-7cc7-4a1c-a0ff-4b21e34dd3f3" name="rasterEvaluationResult.crsStatus"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="plans.valid"> <con:configuration> - <path>$.plans..rasterEvaluationResult[?(@.name == 'BPlan006_6-0.tiff')].crsStatus</path> - <content>[UNSUPPORTED]</content> + <path>$.plans[?(@.valid == false)].valid</path> + <content>[false]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="40844e9c-7cc7-4a1c-a0ff-4b21e34dd3f3" name="rasterEvaluationResult.imageFormatStatus"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="status"> <con:configuration> - <path>$.plans..rasterEvaluationResult[?(@.name == 'BPlan006_6-0.tiff')].imageFormatStatus</path> - <content>[SUPPORTED]</content> + <path>$.status</path> + <content>COMPLETED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportPdf" id="838f0872-4fa2-4131-8588-75673197518c"> - <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="b4a783ea-b823-4f80-a052-a2cacf6652f9"> - <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" disabled="false" entitize="false" ignoreEmpty="false" transferChildNodes="false" transferToAll="false" useXQuery="false"> - <con:name>uuid</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:sourcePath xsi:nil="true"/> - <con:targetType>uuid</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:targetPath xsi:nil="true"/> - <con:type>XPATH</con:type> - <con:targetTransferType>XPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> - </con:config> - </con:testStep> - <con:properties> - <con:property> - <con:name>empty</con:name> - <con:value/> - </con:property> - <con:property> - <con:name>uuid</con:name> - <con:value/> - </con:property> - </con:properties> - </con:testCase> - <con:testCase id="184da798-81c7-4677-bdf3-d4ff823c0b21" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Profiles TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:settings/> - <con:testStep type="httprequest" name="GET XX X.X XX showConfig" id="0a19d2a8-8323-4881-8650-b63523e5b373"> - <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="ada729bc-f24a-41d6-bcf5-4dd34948e273" name="GET XX X.X XX showConfig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/info</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="860eaa41-d4c0-4b28-9e32-132c7e894b18" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="1beb64fd-81c2-46b9-b690-f88938a487fc" name="hasVersion"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid"> <con:configuration> - <path>$.version</path> - <content>true</content> + <path>$.plans[?(@.validationResult.semantisch.valid == false)].validationResult.semantisch.valid</path> + <content>[false]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> - </con:assertion> - <con:assertion type="GroovyScriptAssertion" id="bf3730ab-4f4d-4167-b404-d09046ef994c" name="versionNotNull"> - <con:configuration> - <scriptText>import groovy.json.JsonSlurper - -json = new JsonSlurper().parseText(messageExchange.response.responseContent) -assert !(json.isEmpty()) - -assert json.version != null</scriptText> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.status"> + <con:configuration> + <path>$.plans[?(@.validationResult.semantisch.status == 'COMPLETED')].validationResult.semantisch.status</path> + <content>[COMPLETED]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="a525ec99-c1ee-4ed3-a1f4-19760fc2d1c0" name="supportedXPlanGmlVersions"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.rules.findings.gmlIds"> <con:configuration> - <path>$.supportedXPlanGmlVersions</path> - <content>["XPLAN_40","XPLAN_41","XPLAN_50","XPLAN_51","XPLAN_52","XPLAN_53","XPLAN_54","XPLAN_60"]</content> + <path>$.plans..validationResult.semantisch.rules[*].findings[*].gmlIds</path> + <content>[["Gml_C0EE7EFD-A811-4E1D-98B4-782540EF8AB7"]]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -29905,39 +32271,76 @@ assert json.version != null</scriptText> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="GET XX X.X XX showConfig Property Transfer" id="5c00b85e-4cdb-4b50-a290-fe440502f3d5"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportPdf" id="b54130e3-c36e-41f0-9328-f155cdff6c9c"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="Cleanup Properties" id="2ebae5b1-b7f5-4f2a-a6ff-e2cfa22e951d"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>profile</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>GET XX X.X XX showConfig</con:sourceStep> - <con:sourcePath>$.profiles[0]</con:sourcePath> - <con:targetType>profile</con:targetType> + <con:name>uuid</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> <con:upgraded>true</con:upgraded> </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS,pf importPlan" id="2d520618-0f96-43e3-8abb-833622c02afa"> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> + </con:property> + <con:property> + <con:name>uuid</con:name> + <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> + </con:property> + </con:properties> + </con:testCase> + <con:testCase id="b6cd1afa-42c6-4c01-9255-07354e3dfbdc" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Validation syntactic error TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für die Validierung eines syntaktisch invaliden Planwerks.</con:description> + <con:settings/> + <con:testStep type="httprequest" name="POST BP 6.0 XX importPlan" id="14afc033-6d43-4ace-a172-0e6847488847"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS,pf importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 6.0 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> <con:entry key="Accept" value="application/json"/> - <con:entry key="X-Filename" value="soapui-profiles-test"/> + <con:entry key="X-Filename" value="soapui-test"/> </xml-fragment></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="047b0265-8e8e-45c2-b4d6-1c67ce5c4a7c" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> + <con:assertion type="JsonPath Existence Match" id="a14750a4-b6ee-40eb-b83b-6905d92e26ed" name="uuidExists"> <con:configuration> <path>$.uuid</path> <content>true</content> @@ -29946,7 +32349,7 @@ assert json.version != null</scriptText> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> + <con:assertion type="JsonPath Existence Match" id="cca268ea-ed94-467c-9fee-33c8215bf396" name="statusLinkExists"> <con:configuration> <path>$.statusLink</path> <content>true</content> @@ -29955,7 +32358,7 @@ assert json.version != null</scriptText> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> + <con:assertion type="JsonPath Existence Match" id="cca268ea-ed94-467c-9fee-33c8215bf396" name="hrefExists"> <con:configuration> <path>$.statusLink.href</path> <content>true</content> @@ -29973,63 +32376,56 @@ assert json.version != null</scriptText> <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>FP_6.0.2.zip</con:name> - <con:contentType>application/octet-stream</con:contentType> - <con:contentId>BP_6.0.2.zip</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0.2.zip</con:url> - <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + <con:name>BP_6.0.2_valide.zip</con:name> + <con:contentType>application/gml+xml</con:contentType> + <con:contentId>BP_6.0_syntacticErrors.gml</con:contentId> + <con:part xsi:nil="true"/> + <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0_syntacticErrors.gml</con:url> + <con:id>292d515d-99cd-4aac-99f1-c05d1d4a5851</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters> <con:parameter> <con:name>skipSemantisch</con:name> - <con:value>true</con:value> + <con:value>false</con:value> <con:style>QUERY</con:style> </con:parameter> <con:parameter> <con:name>skipFlaechenschluss</con:name> - <con:value>true</con:value> + <con:value>false</con:value> <con:style>QUERY</con:style> </con:parameter> <con:parameter> <con:name>skipGeltungsbereich</con:name> - <con:value>true</con:value> + <con:value>false</con:value> <con:style>QUERY</con:style> </con:parameter> <con:parameter> <con:name>skipLaufrichtung</con:name> - <con:value>true</con:value> + <con:value>false</con:value> <con:style>QUERY</con:style> </con:parameter> - <con:parameter required="false" disableUrlEncoding="false"> + <con:parameter> <con:name>internalId</con:name> - <con:value>soapui-profiles-test-id</con:value> + <con:value>soapui-test-id</con:value> <con:style>QUERY</con:style> - <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> - <con:default/> - <con:description xsi:nil="true"/> </con:parameter> <con:parameter> <con:name>planStatus</con:name> <con:value>FESTGESTELLT</con:value> <con:style>QUERY</con:style> </con:parameter> - <con:parameter> - <con:name>profiles</con:name> - <con:value>${#TestCase#profile}</con:value> - <con:style>QUERY</con:style> - </con:parameter> </con:parameters> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS,pf importPlan Property Transfer" id="9b549a9d-2929-4756-8527-7b00357853d5"> + <con:testStep type="transfer" name="POST BP 6.0 XX importPlan Property Transfer" id="d0365d19-df2d-478d-87b0-505420efc545"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0.2 xF,sS,sF,sG,sL,iI,pS,pf importPlan</con:sourceStep> + <con:sourceStep>POST BP 6.0 XX importPlan</con:sourceStep> <con:sourcePath>$.uuid</con:sourcePath> <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> @@ -30039,20 +32435,20 @@ assert json.version != null</scriptText> </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX pollStatus" id="7672cc36-9f90-4575-b8db-d44c16e65fff"> + <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="8a147f43-2708-4976-9a72-79a753ce248f"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="ae2299b3-55a5-4171-b298-0c0fbf353fbb" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> + <con:assertion type="JsonPath Existence Match" id="9c15ee46-6bc7-4cb2-bca6-6439ca6fdd4f" name="statusExists"> <con:configuration> <path>$.status</path> <content>true</content> @@ -30074,19 +32470,19 @@ assert json.version != null</scriptText> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="4ebd1bce-c2a9-479f-8bdf-f6747f908e6b"> + <con:testStep type="groovy" name="pollStatus" id="27bed4c3-308d-4bf3-961e-60617437a119"> <con:settings/> <con:config> <script>import groovy.json.JsonSlurper -def testStepName = "GET BP 6.0.2 XX pollStatus" +def testStepName = "GET BP 6.0 XX pollStatus" def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") def json = new JsonSlurper().parseText(response) if( context.loopIndex == null ) context.loopIndex = 0 -if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ +if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ sleep(1000) testRunner.gotoStepByName(testStepName) } else if (context.loopIndex == 40) { @@ -30097,158 +32493,46 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ }</script> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveStatus" id="4d4ef268-51a5-47d5-b94b-4caacfe7c0fb"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="8d0a5df8-4b1b-4573-9d5c-ce58838fcf50"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0.2 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="ae2299b3-55a5-4171-b298-0c0fbf353fbb" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="d27fd88e-b78e-4e28-acfc-dc25276fc1a1" name="status"> + <con:assertion type="JsonPath Match" id="c47301d5-d89e-4a17-8345-4329bf534b29" name="status"> <con:configuration> <path>$.status</path> - <content>IMPORT_FINISHED</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="320f668b-21ff-4589-a944-cfbd07931e2a" name="importedPlanIdsExists"> - <con:configuration> - <path>$.importedPlanIds</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="493b851d-f4cf-4289-90b8-3cb49d482b72" name="linksExists"> - <con:configuration> - <path>$.links</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="a9ed262c-75d6-4a67-ad13-5b40ce1eb9ac" name="hrefExists"> - <con:configuration> - <path>$.links[0].href</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="transfer" name="GET BP 6.0.2 XX retrieveStatus Property Transfer" id="fb2dfcd0-5278-4961-ba54-f4cc2e112df9"> - <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>planId</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>GET BP 6.0.2 XX retrieveStatus</con:sourceStep> - <con:sourcePath>$.importedPlanIds[0]</con:sourcePath> - <con:targetType>planId</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveReportJson" id="5f6239cb-ffa3-41e2-8bea-53c47786757d"> - <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.rulesMetadata.id exists"> - <con:configuration> - <path>$.plans[0].validationResult.profile[0].rulesMetadata.id</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.rulesMetadata.name exists"> - <con:configuration> - <path>$.plans[0].validationResult.profile[0].rulesMetadata.name</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.rulesMetadata.description exists"> - <con:configuration> - <path>$.plans[0].validationResult.profile[0].rulesMetadata.description</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.rulesMetadata.version exists"> - <con:configuration> - <path>$.plans[0].validationResult.profile[0].rulesMetadata.version</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.rulesMetadata.source exists"> - <con:configuration> - <path>$.plans[0].validationResult.profile[0].rulesMetadata.source</path> - <content>true</content> + <content>IMPORT_ABORTED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.ergebnis.valid exists"> + <con:assertion type="JsonPath RegEx Match" id="79d9689a-c545-4733-bf8d-4b8da83f53a3" name="href report json"> <con:configuration> - <path>$.plans[0].validationResult.profile[0].ergebnis.valid</path> + <path>$.links[?(@.rel == 'report' && @.type == 'application/json')].href</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> + <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c73799cd-67f9-4111-869e-5c419e2e4445" name="profile.ergebnis.rules exists"> + <con:assertion type="JsonPath RegEx Match" id="79d9689a-c545-4733-bf8d-4b8da83f53a3" name="href rename pdf"> <con:configuration> - <path>$.plans[0].validationResult.profile[0].ergebnis.rules</path> + <path>$.links[?(@.rel == 'report' && @.type == 'application/pdf')].href</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> + <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -30264,19 +32548,55 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0.2 XX retrieveReportPdf" id="df5d365b-022b-4f93-9bd8-d8f713035e70"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportJson" id="57c3034e-2e2b-44bb-bd6d-11818464258e"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="873abd32-15a2-4f63-a5cf-93aa57bee711" name="GET BP 6.0.2 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2b121572-75dc-4331-8608-63651d9942fe" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="plans"> + <con:configuration> + <path>$.plans</path> + <content>[]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="status"> + <con:configuration> + <path>$.status</path> + <content>TERMINATED_WITH_ERRORS</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="syntaktisch.valid"> + <con:configuration> + <path>$.syntaktisch.valid</path> + <content>false</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="syntaktisch.status"> + <con:configuration> + <path>$.syntaktisch.status</path> + <content>COMPLETED</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> @@ -30290,28 +32610,19 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0.2 XX deletePlan" id="a55332ad-10f5-4238-9d79-a72c29a4344b"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportPdf" id="eca4a3c4-f732-470c-b854-c5335597b25f"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0.2 XX deletePlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> - <con:configuration> - <path>$.message</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> @@ -30325,17 +32636,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="305457bb-5704-4cb3-bf8f-968f825d2642"> + <con:testStep type="transfer" name="Cleanup Properties" id="4ccda974-a38f-4ab8-ad8b-bf78988ce275"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>profile</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>profile</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>empty</con:sourceType> @@ -30344,46 +32647,27 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:targetStep>#TestCase#</con:targetStep> <con:upgraded>true</con:upgraded> </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>planId</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>planId</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> </con:config> </con:testStep> <con:properties> <con:property> <con:name>empty</con:name> - <con:value/> - </con:property> - <con:property> - <con:name>profile</con:name> - <con:value/> + <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> </con:property> <con:property> <con:name>uuid</con:name> - <con:value/> - </con:property> - <con:property> - <con:name>planId</con:name> - <con:value/> + <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> </con:property> </con:properties> </con:testCase> - <con:testCase id="2b029748-1503-4e80-96f7-016af68421f7" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Validation geometric error TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>TestCase für die Validierung eines geometrisch invaliden Planwerks.</con:description> + <con:testCase id="935b9753-8616-429d-93c2-c479acd3d604" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="XPlanGML with multiple plans TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für den Import von XPlanGML mit mehreren Plänen</con:description> <con:settings/> - <con:testStep type="httprequest" name="POST BP 5.2 XX importPlan" id="b10d677b-59aa-4b8c-8822-d24b5aec84c3"> + <con:testStep type="httprequest" name="POST BP 5.4 XX importPlan" id="4251d95f-14d6-4fe6-a581-c8c0ef2174fb"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 5.2 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 5.4 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Accept" value="application/json"/> - <con:entry key="X-Filename" value="soapui-test"/> -</xml-fragment></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> @@ -30430,54 +32714,22 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:attachment> <con:name>BP_6.0.2_valide.zip</con:name> <con:contentType>application/gml+xml</con:contentType> - <con:contentId>BP_5.2_geometricErrorSelbstueberschneidung.gml</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/plans/BP_5.2_geometricErrorSelbstueberschneidung.gml</con:url> + <con:contentId>BP_5.4_MultiplePlaene.gml</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_5.4_MultiplePlaene.gml</con:url> <con:id>292d515d-99cd-4aac-99f1-c05d1d4a5851</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters> - <con:parameter> - <con:name>skipSemantisch</con:name> - <con:value>false</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipFlaechenschluss</con:name> - <con:value>false</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipGeltungsbereich</con:name> - <con:value>false</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipLaufrichtung</con:name> - <con:value>false</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>internalId</con:name> - <con:value>soapui-test-id</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>planStatus</con:name> - <con:value>FESTGESTELLT</con:value> - <con:style>QUERY</con:style> - </con:parameter> - </con:parameters> + <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 5.2 XX importPlan Property Transfer" id="4b681a4a-a640-4d3c-beb3-0620af4aba1b"> + <con:testStep type="transfer" name="POST BP 5.4 XX importPlan Property Transfer" id="ab1655c5-f352-4608-8fda-c57fa895357c"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 5.2 XX importPlan</con:sourceStep> + <con:sourceStep>POST BP 5.4 XX importPlan</con:sourceStep> <con:sourcePath>$.uuid</con:sourcePath> <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> @@ -30487,9 +32739,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.2 XX pollStatus" id="ac7b19e3-16d7-43df-8beb-f99ba6965fca"> + <con:testStep type="httprequest" name="GET BP 5.4 XX pollStatus" id="423d8d23-791c-41bc-8a3f-431fcc48dbb0"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.2 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -30522,19 +32774,19 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="51cca651-dfca-49d5-bcf9-0de0450da0c1"> + <con:testStep type="groovy" name="pollStatus" id="2dba8446-75b8-4127-9212-bf72ed79e81c"> <con:settings/> <con:config> <script>import groovy.json.JsonSlurper -def testStepName = "GET BP 5.2 XX pollStatus" +def testStepName = "GET BP 5.4 XX pollStatus" def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") def json = new JsonSlurper().parseText(response) if( context.loopIndex == null ) context.loopIndex = 0 -if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ +if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ sleep(1000) testRunner.gotoStepByName(testStepName) } else if (context.loopIndex == 40) { @@ -30545,9 +32797,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ }</script> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.2 XX retrieveStatus" id="fd12ecea-5fb2-4c6a-9ce1-5dfe5ef74f3f"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveStatus" id="d4cbd531-5b2b-48f0-9f24-908896db3ffd"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.2 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -30561,7 +32813,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:assertion type="JsonPath Match" id="c47301d5-d89e-4a17-8345-4329bf534b29" name="status"> <con:configuration> <path>$.status</path> - <content>IMPORT_ABORTED</content> + <content>IMPORT_FINISHED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -30600,9 +32852,36 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.2 XX retrieveReportJson" id="9a1f0658-2479-4293-af08-9525cf0e46e7"> + <con:testStep type="transfer" name="GET BP 5.4 XX retrieveStatus Property Transfer" id="feca6672-2522-4374-bf4b-7da3ac5ede6d"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.2 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>firstPlanId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>GET BP 5.4 XX retrieveStatus</con:sourceStep> + <con:sourcePath>$.importedPlanIds[0]</con:sourcePath> + <con:targetType>firstPlanId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>secondPlanId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>GET BP 5.4 XX retrieveStatus</con:sourceStep> + <con:sourcePath>$.importedPlanIds[1]</con:sourcePath> + <con:targetType>secondPlanId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportJson" id="24bf2954-b830-4c84-827e-c54126d0a410"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -30613,127 +32892,82 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="plans.name"> - <con:configuration> - <path>$.plans[?(@.name == 'BP_5.2-geometricErrorSelbstueberschneidung_SoapUI-XPlanValidatorAPI')].name</path> - <content>[BP_5.2-geometricErrorSelbstueberschneidung_SoapUI-XPlanValidatorAPI]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="plans.valid"> - <con:configuration> - <path>$.plans[?(@.valid == false)].valid</path> - <content>[false]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="status"> - <con:configuration> - <path>$.status</path> - <content>COMPLETED</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid"> - <con:configuration> - <path>$.plans[?(@.validationResult.geometrisch.valid == false)].validationResult.geometrisch.valid</path> - <content>[false]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.status"> - <con:configuration> - <path>$.plans[?(@.validationResult.geometrisch.status == 'COMPLETED')].validationResult.geometrisch.status</path> - <content>[COMPLETED]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.rules.findings.gmlIds"> + <con:assertion type="JsonPath Existence Match" id="c3639f00-ced7-4918-9988-b1e61f27bb58" name="validationName exists"> <con:configuration> - <path>$.plans..validationResult.geometrisch.rules[*].findings[*].gmlIds</path> - <content>[["Gml_C7986975-B702-46BF-9669-E8A2794BCF23"]]</content> + <path>$.validationName</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.type"> + <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.valid"> <con:configuration> - <path>$.geomfindings.type</path> - <content>FeatureCollection</content> + <path>$.syntaktisch.valid</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.type"> + <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.status"> <con:configuration> - <path>$.geomfindings.features[0].type</path> - <content>Feature</content> + <path>$.syntaktisch.status</path> + <content>COMPLETED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.geometry.type"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan1"> <con:configuration> - <path>$.geomfindings.features[0].geometry.type</path> - <content>Point</content> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].valid</path> + <content>[true]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.geometry.coordinates"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan1"> <con:configuration> - <path>$.geomfindings.features[0].geometry.coordinates</path> - <content>[10.04024134282035,53.581840521708514]</content> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> + <content>[true]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.properties.level"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid plan1"> <con:configuration> - <path>$.geomfindings.features[0].properties.level</path> - <content>ERROR</content> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.valid</path> + <content>[true]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.properties.gmlIds"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan2"> <con:configuration> - <path>$.geomfindings.features[0].properties.gmlIds</path> - <content>Gml_C7986975-B702-46BF-9669-E8A2794BCF23</content> + <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].valid</path> + <content>[true]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.properties.planName"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan2"> <con:configuration> - <path>$.geomfindings.features[0].properties.planName</path> - <content>BP_5.2-geometricErrorSelbstueberschneidung_SoapUI-XPlanValidatorAPI</content> + <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> + <content>[true]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="geomfindings.features.properties.id"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid plan2"> <con:configuration> - <path>$.geomfindings.features[0].properties.id</path> - <content>2.2.2.1</content> + <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.valid</path> + <content>[true]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -30752,9 +32986,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.2 XX retrieveReportPdf" id="8a9de111-9d2b-4c7e-b664-e02e336fe55e"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportPdf" id="3b784c67-4936-4a2d-9d58-b6ed674cb5af"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.2 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -30778,86 +33012,58 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.2 XX retrieveGeomfindings" id="b95c9898-c9b8-4a47-bcc8-409bad9234c5"> + <con:testStep type="httprequest" name="DEL BP 5.4 XX deleteFirstPlan" id="9698e68b-5efe-487b-95db-6b087f800aff"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.2 XX retrieveGeomfindings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 5.4 XX deleteFirstPlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/geo+json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}/geomfindings</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#firstPlanId}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="type"> - <con:configuration> - <path>$.type</path> - <content>FeatureCollection</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.type"> - <con:configuration> - <path>$.features[0].type</path> - <content>Feature</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.geometry.type"> - <con:configuration> - <path>$.features[0].geometry.type</path> - <content>Point</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.geometry.coordinates"> - <con:configuration> - <path>$.features[0].geometry.coordinates</path> - <content>[10.04024134282035,53.581840521708514]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.properties.level"> - <con:configuration> - <path>$.features[0].properties.level</path> - <content>ERROR</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.properties.gmlIds"> + <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> <con:configuration> - <path>$.features[0].properties.gmlIds</path> - <content>Gml_C7986975-B702-46BF-9669-E8A2794BCF23</content> + <path>$.message</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.properties.planName"> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="DEL BP 5.4 XX deleteSecondPlan" id="2bbb8d7c-5ca6-4c6a-9caf-38c69a721450"> + <con:settings/> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 5.4 XX deleteSecondPlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#secondPlanId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.features[0].properties.planName</path> - <content>BP_5.2-geometricErrorSelbstueberschneidung_SoapUI-XPlanValidatorAPI</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="21c11a00-e6f6-48e4-ace1-097d95c9e88a" name="features.properties.id"> + <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> <con:configuration> - <path>$.features[0].properties.id</path> - <content>2.2.2.1</content> + <path>$.message</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -30876,7 +33082,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="78e7db8d-3bf3-4b27-b4e3-2237c17b771f"> + <con:testStep type="transfer" name="Cleanup Properties" id="3353301c-affe-45bd-951f-35532594db9c"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> @@ -30887,6 +33093,22 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:targetStep>#TestCase#</con:targetStep> <con:upgraded>true</con:upgraded> </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>firstPlanId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>firstPlanId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>secondPlanId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>secondPlanId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> </con:config> </con:testStep> <con:properties> @@ -30898,19 +33120,24 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:name>uuid</con:name> <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> </con:property> + <con:property> + <con:name>firstPlanId</con:name> + <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> + </con:property> + <con:property> + <con:name>secondPlanId</con:name> + <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> + </con:property> </con:properties> </con:testCase> - <con:testCase id="26e0d77e-b853-48e9-8365-16aa0a912489" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Validation semantic error TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>TestCase für die Validierung eines semantisch invaliden Planwerks.</con:description> + <con:testCase id="5191381e-2d7c-4a63-9a00-e3e8c79c0119" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="XPlanGML with multiple plans syntactic error TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für den Import von XPlanGML mit mehreren Plänen mit syntaktischen Fehlern</con:description> <con:settings/> - <con:testStep type="httprequest" name="POST BP 6.0 XX importPlan" id="c1961535-f49d-46e5-91c5-4fb0f9a9f472"> + <con:testStep type="httprequest" name="POST BP 5.4 XX importPlan" id="9c1846b2-97c7-422d-83f3-e1425be742a3"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 6.0 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 5.4 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Accept" value="application/json"/> - <con:entry key="X-Filename" value="soapui-test"/> -</xml-fragment></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> @@ -30957,54 +33184,22 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:attachment> <con:name>BP_6.0.2_valide.zip</con:name> <con:contentType>application/gml+xml</con:contentType> - <con:contentId>BP_6.0_semanticErrorRule5_1_5.gml</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-validator-api/plans/BP_6.0_semanticErrorRule5_1_5.gml</con:url> + <con:contentId>BP_5.4_MultiplePlaene_syntacticError.gml</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_5.4_MultiplePlaene_syntacticError.gml</con:url> <con:id>292d515d-99cd-4aac-99f1-c05d1d4a5851</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters> - <con:parameter> - <con:name>skipSemantisch</con:name> - <con:value>false</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipFlaechenschluss</con:name> - <con:value>false</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipGeltungsbereich</con:name> - <con:value>false</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipLaufrichtung</con:name> - <con:value>false</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>internalId</con:name> - <con:value>soapui-test-id</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>planStatus</con:name> - <con:value>FESTGESTELLT</con:value> - <con:style>QUERY</con:style> - </con:parameter> - </con:parameters> + <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0 XX importPlan Property Transfer" id="cf19ee36-f9b4-462e-8420-31bc6f295d01"> + <con:testStep type="transfer" name="POST BP 5.4 XX importPlan Property Transfer" id="807321c3-993d-4b7c-87b4-465cdf0ed729"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0 XX importPlan</con:sourceStep> + <con:sourceStep>POST BP 5.4 XX importPlan</con:sourceStep> <con:sourcePath>$.uuid</con:sourcePath> <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> @@ -31014,9 +33209,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="26b9dec4-c581-418e-8397-bc2d4e8ed7fa"> + <con:testStep type="httprequest" name="GET BP 5.4 XX pollStatus" id="44643a29-37b8-48d2-8fa4-19c0af06ea88"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -31049,12 +33244,12 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="6ddfc1b3-c944-4bd8-a2f1-aa45bf4158ae"> + <con:testStep type="groovy" name="pollStatus" id="47ff2ba7-5ded-4a65-9917-11fe97b0bf19"> <con:settings/> <con:config> <script>import groovy.json.JsonSlurper -def testStepName = "GET BP 6.0 XX pollStatus" +def testStepName = "GET BP 5.4 XX pollStatus" def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") def json = new JsonSlurper().parseText(response) @@ -31072,9 +33267,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ }</script> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="919ec2bc-1054-47be-ae69-e179795bfa03"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveStatus" id="4c093447-d7ea-4282-a7b1-d32fabee78aa"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -31127,68 +33322,59 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportJson" id="2f19bbea-bdaf-403e-ba44-eedf2049ee47"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportJson" id="42c3bee2-c4ea-4c61-8391-39f9e82fe017"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="plans.name"> - <con:configuration> - <path>$.plans[?(@.name == 'BP_6.0_semanticError_5_1_5-SoapUI-XPlanValidatorAPI')].name</path> - <content>[BP_6.0_semanticError_5_1_5-SoapUI-XPlanValidatorAPI]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="plans.valid"> + <con:assertion type="JsonPath Existence Match" id="c3639f00-ced7-4918-9988-b1e61f27bb58" name="validationName exists"> <con:configuration> - <path>$.plans[?(@.valid == false)].valid</path> - <content>[false]</content> + <path>$.validationName</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="status"> + <con:assertion type="JsonPath Match" id="e400d19f-3dd2-43c4-b2d5-b4620a7b733c" name="status"> <con:configuration> <path>$.status</path> - <content>COMPLETED</content> + <content>TERMINATED_WITH_ERRORS</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid"> + <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.valid"> <con:configuration> - <path>$.plans[?(@.validationResult.semantisch.valid == false)].validationResult.semantisch.valid</path> - <content>[false]</content> + <path>$.syntaktisch.valid</path> + <content>false</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.status"> + <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.status"> <con:configuration> - <path>$.plans[?(@.validationResult.semantisch.status == 'COMPLETED')].validationResult.semantisch.status</path> - <content>[COMPLETED]</content> + <path>$.syntaktisch.status</path> + <content>COMPLETED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.rules.findings.gmlIds"> + <con:assertion type="JsonPath Match" id="e400d19f-3dd2-43c4-b2d5-b4620a7b733c" name="plans"> <con:configuration> - <path>$.plans..validationResult.semantisch.rules[*].findings[*].gmlIds</path> - <content>[["Gml_C0EE7EFD-A811-4E1D-98B4-782540EF8AB7"]]</content> + <path>$.plans</path> + <content>[]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -31207,9 +33393,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportPdf" id="b54130e3-c36e-41f0-9328-f155cdff6c9c"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportPdf" id="67dbb413-836d-4afe-8931-347fb24fd0be"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -31233,7 +33419,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="2ebae5b1-b7f5-4f2a-a6ff-e2cfa22e951d"> + <con:testStep type="transfer" name="Cleanup Properties" id="93e1aaf2-9f53-4167-9a72-5563521f0d8f"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> @@ -31257,17 +33443,14 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ </con:property> </con:properties> </con:testCase> - <con:testCase id="b6cd1afa-42c6-4c01-9255-07354e3dfbdc" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Validation syntactic error TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>TestCase für die Validierung eines syntaktisch invaliden Planwerks.</con:description> + <con:testCase id="c74899ca-956d-44a1-889e-b98853ea9908" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="XPlanGML with multiple plans geometric error TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für den Import von XPlanGML mit mehreren Plänen mit geometrischen Fehlern</con:description> <con:settings/> - <con:testStep type="httprequest" name="POST BP 6.0 XX importPlan" id="14afc033-6d43-4ace-a172-0e6847488847"> + <con:testStep type="httprequest" name="POST BP 5.4 XX importPlan" id="2862b79b-fd89-45ec-8725-e352f0d34aa3"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 6.0 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 5.4 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Accept" value="application/json"/> - <con:entry key="X-Filename" value="soapui-test"/> -</xml-fragment></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> @@ -31314,54 +33497,22 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:attachment> <con:name>BP_6.0.2_valide.zip</con:name> <con:contentType>application/gml+xml</con:contentType> - <con:contentId>BP_6.0_syntacticErrors.gml</con:contentId> - <con:part xsi:nil="true"/> - <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0_syntacticErrors.gml</con:url> + <con:contentId>BP_5.4_MultiplePlaene_geometricError.gml</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_5.4_MultiplePlaene_geometricError.gml</con:url> <con:id>292d515d-99cd-4aac-99f1-c05d1d4a5851</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters> - <con:parameter> - <con:name>skipSemantisch</con:name> - <con:value>false</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipFlaechenschluss</con:name> - <con:value>false</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipGeltungsbereich</con:name> - <con:value>false</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipLaufrichtung</con:name> - <con:value>false</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>internalId</con:name> - <con:value>soapui-test-id</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>planStatus</con:name> - <con:value>FESTGESTELLT</con:value> - <con:style>QUERY</con:style> - </con:parameter> - </con:parameters> + <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0 XX importPlan Property Transfer" id="d0365d19-df2d-478d-87b0-505420efc545"> + <con:testStep type="transfer" name="POST BP 5.4 XX importPlan Property Transfer" id="aa7ade52-3336-417b-a149-4cb75d12c8c8"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0 XX importPlan</con:sourceStep> + <con:sourceStep>POST BP 5.4 XX importPlan</con:sourceStep> <con:sourcePath>$.uuid</con:sourcePath> <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> @@ -31371,9 +33522,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="8a147f43-2708-4976-9a72-79a753ce248f"> + <con:testStep type="httprequest" name="GET BP 5.4 XX pollStatus" id="89f30c70-2852-4b12-9fa4-0ad5f05bd4de"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -31406,12 +33557,12 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="27bed4c3-308d-4bf3-961e-60617437a119"> + <con:testStep type="groovy" name="pollStatus" id="b1a48715-4535-4dff-b797-05fea08588dd"> <con:settings/> <con:config> <script>import groovy.json.JsonSlurper -def testStepName = "GET BP 6.0 XX pollStatus" +def testStepName = "GET BP 5.4 XX pollStatus" def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") def json = new JsonSlurper().parseText(response) @@ -31429,9 +33580,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ }</script> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="8d0a5df8-4b1b-4573-9d5c-ce58838fcf50"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveStatus" id="836b8974-f26d-4136-81bc-9ed761a8f2e8"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -31484,9 +33635,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportJson" id="57c3034e-2e2b-44bb-bd6d-11818464258e"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportJson" id="b4cf7956-d4e0-446e-ba25-74a6da90b1d6"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -31497,37 +33648,91 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="plans"> + <con:assertion type="JsonPath Existence Match" id="c3639f00-ced7-4918-9988-b1e61f27bb58" name="validationName exists"> <con:configuration> - <path>$.plans</path> - <content>[]</content> + <path>$.validationName</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="status"> + <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.valid"> <con:configuration> - <path>$.status</path> - <content>TERMINATED_WITH_ERRORS</content> + <path>$.syntaktisch.valid</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="syntaktisch.valid"> + <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.status"> <con:configuration> - <path>$.syntaktisch.valid</path> - <content>false</content> + <path>$.syntaktisch.status</path> + <content>COMPLETED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="syntaktisch.status"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan1"> <con:configuration> - <path>$.syntaktisch.status</path> - <content>COMPLETED</content> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].valid</path> + <content>[false]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan1"> + <con:configuration> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> + <content>[true]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid plan1"> + <con:configuration> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.valid</path> + <content>[false]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.rules.findings.level plan1"> + <con:configuration> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.rules[?(@.id == '2.2.2.1')].findings..level</path> + <content>[ERROR]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan2"> + <con:configuration> + <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].valid</path> + <content>[true]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan2"> + <con:configuration> + <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> + <content>[true]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid plan2"> + <con:configuration> + <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.valid</path> + <content>[true]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -31546,9 +33751,9 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveReportPdf" id="eca4a3c4-f732-470c-b854-c5335597b25f"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportPdf" id="43a42886-7b4b-42de-829f-c3b4a3be1543"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 6.0 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -31572,7 +33777,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="4ccda974-a38f-4ab8-ad8b-bf78988ce275"> + <con:testStep type="transfer" name="Cleanup Properties" id="a1012adb-4dca-4cd9-be77-952516aab180"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> @@ -31596,10 +33801,10 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ </con:property> </con:properties> </con:testCase> - <con:testCase id="935b9753-8616-429d-93c2-c479acd3d604" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="XPlanGML with multiple plans TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>TestCase für den Import von XPlanGML mit mehreren Plänen</con:description> + <con:testCase id="8bdf8454-799d-469e-9552-25d1d44cd8ea" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="XPlanGML with multiple plans semantic error TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für den Import von XPlanGML mit mehreren Plänen mit semantischen Fehlern</con:description> <con:settings/> - <con:testStep type="httprequest" name="POST BP 5.4 XX importPlan" id="4251d95f-14d6-4fe6-a581-c8c0ef2174fb"> + <con:testStep type="httprequest" name="POST BP 5.4 XX importPlan" id="c1f96f80-628a-479e-aaeb-b7db15ac8180"> <con:settings/> <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 5.4 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> @@ -31650,8 +33855,8 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:attachment> <con:name>BP_6.0.2_valide.zip</con:name> <con:contentType>application/gml+xml</con:contentType> - <con:contentId>BP_5.4_MultiplePlaene.gml</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_5.4_MultiplePlaene.gml</con:url> + <con:contentId>BP_5.4_MultiplePlaene_semanticError.gml</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_5.4_MultiplePlaene_semanticError.gml</con:url> <con:id>292d515d-99cd-4aac-99f1-c05d1d4a5851</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -31659,7 +33864,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 5.4 XX importPlan Property Transfer" id="ab1655c5-f352-4608-8fda-c57fa895357c"> + <con:testStep type="transfer" name="POST BP 5.4 XX importPlan Property Transfer" id="2481e026-8f3e-45ad-b340-9a2122ba5978"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> @@ -31675,7 +33880,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX pollStatus" id="423d8d23-791c-41bc-8a3f-431fcc48dbb0"> + <con:testStep type="httprequest" name="GET BP 5.4 XX pollStatus" id="8101665a-15a4-4f7e-b199-21b5e0fb6904"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> @@ -31710,7 +33915,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="2dba8446-75b8-4127-9212-bf72ed79e81c"> + <con:testStep type="groovy" name="pollStatus" id="88110aca-fc05-4008-9e98-f8e6d86037d7"> <con:settings/> <con:config> <script>import groovy.json.JsonSlurper @@ -31722,7 +33927,7 @@ def json = new JsonSlurper().parseText(response) if( context.loopIndex == null ) context.loopIndex = 0 -if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ +if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ sleep(1000) testRunner.gotoStepByName(testStepName) } else if (context.loopIndex == 40) { @@ -31733,7 +33938,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ }</script> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveStatus" id="d4cbd531-5b2b-48f0-9f24-908896db3ffd"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveStatus" id="5d02dd4e-a24f-492c-8cdf-33cb1da4a110"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> @@ -31749,7 +33954,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:assertion type="JsonPath Match" id="c47301d5-d89e-4a17-8345-4329bf534b29" name="status"> <con:configuration> <path>$.status</path> - <content>IMPORT_FINISHED</content> + <content>IMPORT_ABORTED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -31772,50 +33977,23 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="transfer" name="GET BP 5.4 XX retrieveStatus Property Transfer" id="feca6672-2522-4374-bf4b-7da3ac5ede6d"> - <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>firstPlanId</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>GET BP 5.4 XX retrieveStatus</con:sourceStep> - <con:sourcePath>$.importedPlanIds[0]</con:sourcePath> - <con:targetType>firstPlanId</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>secondPlanId</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>GET BP 5.4 XX retrieveStatus</con:sourceStep> - <con:sourcePath>$.importedPlanIds[1]</con:sourcePath> - <con:targetType>secondPlanId</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> + <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportJson" id="24bf2954-b830-4c84-827e-c54126d0a410"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportJson" id="1a319d6c-35cb-4da6-ab12-9adfd4fb0f10"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> @@ -31858,7 +34036,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan1"> <con:configuration> <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].valid</path> - <content>[true]</content> + <content>[false]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -31867,7 +34045,16 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan1"> <con:configuration> <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> - <content>[true]</content> + <content>[false]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.rules.findings.level plan1"> + <con:configuration> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.semantisch.rules[?(@.id == '3.2.3.2')].findings..level</path> + <content>[ERROR]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -31922,7 +34109,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportPdf" id="3b784c67-4936-4a2d-9d58-b6ed674cb5af"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportPdf" id="3ec48fa7-7298-4b4f-aa6e-e1168fec977a"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> @@ -31948,77 +34135,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 5.4 XX deleteFirstPlan" id="9698e68b-5efe-487b-95db-6b087f800aff"> - <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 5.4 XX deleteFirstPlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#firstPlanId}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> - <con:configuration> - <path>$.message</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="DEL BP 5.4 XX deleteSecondPlan" id="2bbb8d7c-5ca6-4c6a-9caf-38c69a721450"> - <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 5.4 XX deleteSecondPlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#secondPlanId}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> - <con:configuration> - <path>$.message</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="3353301c-affe-45bd-951f-35532594db9c"> + <con:testStep type="transfer" name="Cleanup Properties" id="7917701b-c567-4d83-a1ac-638121c801b2"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> @@ -32029,22 +34146,6 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:targetStep>#TestCase#</con:targetStep> <con:upgraded>true</con:upgraded> </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>firstPlanId</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>firstPlanId</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>secondPlanId</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>secondPlanId</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> </con:config> </con:testStep> <con:properties> @@ -32056,22 +34157,14 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:name>uuid</con:name> <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> </con:property> - <con:property> - <con:name>firstPlanId</con:name> - <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> - </con:property> - <con:property> - <con:name>secondPlanId</con:name> - <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> - </con:property> </con:properties> </con:testCase> - <con:testCase id="5191381e-2d7c-4a63-9a00-e3e8c79c0119" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="XPlanGML with multiple plans syntactic error TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>TestCase für den Import von XPlanGML mit mehreren Plänen mit syntaktischen Fehlern</con:description> + <con:testCase id="769749e4-24ae-4a98-afc0-5edf756a7bc4" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="XPlanGML with multiple plans skip errors TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für den Import von XPlanGML mit mehreren Plänen, die geometrische und semantische Fehler beinhalten. Die geometrische und semantische Validierung werden über Query-Parameter übersprungen.</con:description> <con:settings/> - <con:testStep type="httprequest" name="POST BP 5.4 XX importPlan" id="9c1846b2-97c7-422d-83f3-e1425be742a3"> + <con:testStep type="httprequest" name="POST BP 5.4 sS,sF,sG,sL importPlan" id="40d50385-caad-4947-8e3f-2b90936ad585"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 5.4 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 5.4 sS,sF,sG,sL importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> @@ -32120,22 +34213,46 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:attachment> <con:name>BP_6.0.2_valide.zip</con:name> <con:contentType>application/gml+xml</con:contentType> - <con:contentId>BP_5.4_MultiplePlaene_syntacticError.gml</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_5.4_MultiplePlaene_syntacticError.gml</con:url> + <con:contentId>BP_5.4_MultiplePlaene_semanticError.gml</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_5.4_MultiplePlaene_semanticError.gml</con:url> <con:id>292d515d-99cd-4aac-99f1-c05d1d4a5851</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> + <con:parameters> + <con:parameter required="false" disableUrlEncoding="false"> + <con:name>skipSemantisch</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> + <con:default/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>skipFlaechenschluss</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipLaufrichtung</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 5.4 XX importPlan Property Transfer" id="807321c3-993d-4b7c-87b4-465cdf0ed729"> + <con:testStep type="transfer" name="POST BP 5.4 XX importPlan Property Transfer" id="7c35f20c-22aa-495b-9ba4-34c644d86ad7"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 5.4 XX importPlan</con:sourceStep> + <con:sourceStep>POST BP 5.4 sS,sF,sG,sL importPlan</con:sourceStep> <con:sourcePath>$.uuid</con:sourcePath> <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> @@ -32145,7 +34262,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX pollStatus" id="44643a29-37b8-48d2-8fa4-19c0af06ea88"> + <con:testStep type="httprequest" name="GET BP 5.4 XX pollStatus" id="6a211176-9eb0-45ff-abf3-dded3f8f9865"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> @@ -32180,7 +34297,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="47ff2ba7-5ded-4a65-9917-11fe97b0bf19"> + <con:testStep type="groovy" name="pollStatus" id="ed0cd1c5-afc7-4e22-ac18-9480e4b2b3c9"> <con:settings/> <con:config> <script>import groovy.json.JsonSlurper @@ -32192,7 +34309,7 @@ def json = new JsonSlurper().parseText(response) if( context.loopIndex == null ) context.loopIndex = 0 -if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ +if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ sleep(1000) testRunner.gotoStepByName(testStepName) } else if (context.loopIndex == 40) { @@ -32203,7 +34320,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ }</script> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveStatus" id="4c093447-d7ea-4282-a7b1-d32fabee78aa"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveStatus" id="8d35d5e0-6e9f-4bc2-bd26-46e47a20c315"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> @@ -32219,7 +34336,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:assertion type="JsonPath Match" id="c47301d5-d89e-4a17-8345-4329bf534b29" name="status"> <con:configuration> <path>$.status</path> - <content>IMPORT_ABORTED</content> + <content>IMPORT_FINISHED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -32258,7 +34375,34 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportJson" id="42c3bee2-c4ea-4c61-8391-39f9e82fe017"> + <con:testStep type="transfer" name="GET BP 5.4 XX retrieveStatus Property Transfer" id="4aa18519-7e04-4331-84fd-65d1d455145a"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>firstPlanId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>GET BP 5.4 XX retrieveStatus</con:sourceStep> + <con:sourcePath>$.importedPlanIds[0]</con:sourcePath> + <con:targetType>firstPlanId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>secondPlanId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>GET BP 5.4 XX retrieveStatus</con:sourceStep> + <con:sourcePath>$.importedPlanIds[1]</con:sourcePath> + <con:targetType>secondPlanId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportJson" id="9b62d330-12af-4025-981e-648d31c1b615"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> @@ -32268,49 +34412,121 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:request/> <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> <con:configuration> - <codes>200</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="c3639f00-ced7-4918-9988-b1e61f27bb58" name="validationName exists"> + <con:configuration> + <path>$.validationName</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.valid"> + <con:configuration> + <path>$.syntaktisch.valid</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.status"> + <con:configuration> + <path>$.syntaktisch.status</path> + <content>COMPLETED</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan1"> + <con:configuration> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].valid</path> + <content>[true]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan1"> + <con:configuration> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> + <content>[null]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.status plan1"> + <con:configuration> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.semantisch.status</path> + <content>[SKIPPED]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c3639f00-ced7-4918-9988-b1e61f27bb58" name="validationName exists"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid plan1"> <con:configuration> - <path>$.validationName</path> - <content>true</content> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.valid</path> + <content>[true]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="e400d19f-3dd2-43c4-b2d5-b4620a7b733c" name="status"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.status plan1"> <con:configuration> - <path>$.status</path> - <content>TERMINATED_WITH_ERRORS</content> + <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.status</path> + <content>[COMPLETED]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.valid"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan2"> <con:configuration> - <path>$.syntaktisch.valid</path> - <content>false</content> + <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].valid</path> + <content>[true]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.status"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan2"> <con:configuration> - <path>$.syntaktisch.status</path> - <content>COMPLETED</content> + <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> + <content>[null]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="e400d19f-3dd2-43c4-b2d5-b4620a7b733c" name="plans"> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.status plan2"> <con:configuration> - <path>$.plans</path> - <content>[]</content> + <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.semantisch.status</path> + <content>[SKIPPED]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid plan2"> + <con:configuration> + <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.valid</path> + <content>[true]</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.status plan2"> + <con:configuration> + <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.status</path> + <content>[COMPLETED]</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -32329,7 +34545,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportPdf" id="67dbb413-836d-4afe-8931-347fb24fd0be"> + <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportPdf" id="30516391-6c1b-4eb7-834a-d8099fc102e2"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> @@ -32355,67 +34571,22 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="93e1aaf2-9f53-4167-9a72-5563521f0d8f"> - <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>uuid</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>uuid</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> - </con:config> - </con:testStep> - <con:properties> - <con:property> - <con:name>empty</con:name> - <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> - </con:property> - <con:property> - <con:name>uuid</con:name> - <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> - </con:property> - </con:properties> - </con:testCase> - <con:testCase id="c74899ca-956d-44a1-889e-b98853ea9908" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="XPlanGML with multiple plans geometric error TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>TestCase für den Import von XPlanGML mit mehreren Plänen mit geometrischen Fehlern</con:description> - <con:settings/> - <con:testStep type="httprequest" name="POST BP 5.4 XX importPlan" id="2862b79b-fd89-45ec-8725-e352f0d34aa3"> + <con:testStep type="httprequest" name="DEL BP 5.4 XX deleteFirstPlan" id="f2c929d2-0657-43d3-8576-bab3433175a9"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 5.4 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 5.4 XX deleteFirstPlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#firstPlanId}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="047b0265-8e8e-45c2-b4d6-1c67ce5c4a7c" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="a14750a4-b6ee-40eb-b83b-6905d92e26ed" name="uuidExists"> - <con:configuration> - <path>$.uuid</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="cca268ea-ed94-467c-9fee-33c8215bf396" name="statusLinkExists"> - <con:configuration> - <path>$.statusLink</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="cca268ea-ed94-467c-9fee-33c8215bf396" name="hrefExists"> + <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> <con:configuration> - <path>$.statusLink.href</path> + <path>$.message</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> @@ -32430,50 +34601,27 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>BP_6.0.2_valide.zip</con:name> - <con:contentType>application/gml+xml</con:contentType> - <con:contentId>BP_5.4_MultiplePlaene_geometricError.gml</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_5.4_MultiplePlaene_geometricError.gml</con:url> - <con:id>292d515d-99cd-4aac-99f1-c05d1d4a5851</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 5.4 XX importPlan Property Transfer" id="aa7ade52-3336-417b-a149-4cb75d12c8c8"> - <con:settings/> - <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>uuid</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 5.4 XX importPlan</con:sourceStep> - <con:sourcePath>$.uuid</con:sourcePath> - <con:targetType>uuid</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> - <con:upgraded>true</con:upgraded> - </con:transfers> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX pollStatus" id="89f30c70-2852-4b12-9fa4-0ad5f05bd4de"> + <con:testStep type="httprequest" name="DEL BP 5.4 XX deleteSecondPlan" id="c16547f7-b268-43a2-b5ab-9ca5f4599705"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 5.4 XX deleteSecondPlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#secondPlanId}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="ae2299b3-55a5-4171-b298-0c0fbf353fbb" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="9c15ee46-6bc7-4cb2-bca6-6439ca6fdd4f" name="statusExists"> + <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> <con:configuration> - <path>$.status</path> + <path>$.message</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> @@ -32493,267 +34641,275 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="b1a48715-4535-4dff-b797-05fea08588dd"> + <con:testStep type="transfer" name="Cleanup Properties" id="993e72c2-9451-4694-8277-33163f7df39b"> <con:settings/> - <con:config> - <script>import groovy.json.JsonSlurper - -def testStepName = "GET BP 5.4 XX pollStatus" -def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") -def json = new JsonSlurper().parseText(response) - -if( context.loopIndex == null ) - context.loopIndex = 0 - -if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ - sleep(1000) - testRunner.gotoStepByName(testStepName) -} else if (context.loopIndex == 40) { - context.loopIndex = null - assert(false) -} else { - context.loopIndex = null -}</script> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>uuid</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>uuid</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>firstPlanId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>firstPlanId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>secondPlanId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>secondPlanId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveStatus" id="836b8974-f26d-4136-81bc-9ed761a8f2e8"> - <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="ae2299b3-55a5-4171-b298-0c0fbf353fbb" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="c47301d5-d89e-4a17-8345-4329bf534b29" name="status"> - <con:configuration> - <path>$.status</path> - <content>IMPORT_ABORTED</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="79d9689a-c545-4733-bf8d-4b8da83f53a3" name="href report json"> - <con:configuration> - <path>$.links[?(@.rel == 'report' && @.type == 'application/json')].href</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="79d9689a-c545-4733-bf8d-4b8da83f53a3" name="href rename pdf"> - <con:configuration> - <path>$.links[?(@.rel == 'report' && @.type == 'application/pdf')].href</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> + </con:property> + <con:property> + <con:name>uuid</con:name> + <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> + </con:property> + <con:property> + <con:name>firstPlanId</con:name> + <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> + </con:property> + <con:property> + <con:name>secondPlanId</con:name> + <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> + </con:property> + </con:properties> + </con:testCase> + <con:testCase id="3513a1c3-69fb-41be-bb51-7f7fa52d8782" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Security with JWT TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:settings/> + <con:testStep type="groovy" name="checkPreconditions" id="944d7ad1-7315-4b62-b047-30c52ffcafa9"> + <con:settings/> + <con:config> + <script>def jwtUrl = context.testCase.testSuite.project.getPropertyValue("jwtUrl"); +def usernameNotDortmund = context.testCase.testSuite.project.getPropertyValue("usernameNotDortmund"); +def usernameDortmund = context.testCase.testSuite.project.getPropertyValue("usernameDortmund"); +def test_ = null; + +// jwtUrl, usernameNotDortmund and usernameDortmund are required for this TesCase +if (jwtUrl == "" || usernameNotDortmund == "" || usernameDortmund == ""){ + log.info "TestCase is skipped: jwtUrl, usernameNotDortmund and usernameDortmund are required." + testRunner.gotoStepByName("Cleanup Properties"); +}</script> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportJson" id="b4cf7956-d4e0-446e-ba25-74a6da90b1d6"> + <con:testStep type="httprequest" name="GET XX X.X XX openAPI" id="99c43ad1-8869-4cee-bd93-f84920c9ccbe"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="4d61face-75e6-4117-8d95-8b1e7dd45d2e" name="GET XX X.X XX openAPI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="2f43fbe9-d109-43b0-beb7-c8ed78bed226" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c3639f00-ced7-4918-9988-b1e61f27bb58" name="validationName exists"> + <con:assertion type="JsonPath Match" id="31b6521b-7a41-46be-9040-38c3f4655011" name="openapi"> <con:configuration> - <path>$.validationName</path> - <content>true</content> + <path>$.openapi</path> + <content>3.0.1</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.valid"> + <con:assertion type="JsonPath Existence Match" id="dcb84152-4fe9-4776-8673-334ea542c0cc" name="JsonPath Existence Match"> <con:configuration> - <path>$.syntaktisch.valid</path> + <path>$.security[0].Bearer</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.status"> - <con:configuration> - <path>$.syntaktisch.status</path> - <content>COMPLETED</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan1"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].valid</path> - <content>[false]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan1"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> - <content>[true]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid plan1"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.valid</path> - <content>[false]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.rules.findings.level plan1"> + <con:assertion type="JsonPath Match" id="44032b4a-affb-40ed-b9ce-dc86c24659bf" name="securitySchemes.Bearer.scheme"> <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.rules[?(@.id == '2.2.2.1')].findings..level</path> - <content>[ERROR]</content> + <path>$.components.securitySchemes.Bearer.scheme</path> + <content>bearer</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan2"> + <con:assertion type="JsonPath Match" id="44032b4a-affb-40ed-b9ce-dc86c24659bf" name="securitySchemes.Bearer.bearerFormat"> <con:configuration> - <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].valid</path> - <content>[true]</content> + <path>$.components.securitySchemes.Bearer.bearerFormat</path> + <content>JWT</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan2"> + <con:credentials> + <con:authType>No Authorization</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="retrieveToken - userNotDortmund" id="6ca8698e-6b61-4c6a-8308-d075c66605ac"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="951ebbc5-a5ba-418e-a699-aade30608a45" name="retrieveToken - userNotDortmund" postQueryString="true" mediaType="application/x-www-form-urlencoded" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Content-Type" value="application/x-www-form-urlencoded" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#jwtUrl}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="db5ca4f1-f21a-4b5d-b819-c41465665b8d" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> - <content>[true]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid plan2"> + <con:assertion type="JsonPath Existence Match" id="b7016630-f4e7-44ff-85ef-83ded553be27" name="access_token"> <con:configuration> - <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.valid</path> - <content>[true]</content> + <path>$.access_token</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> + <con:authType>No Authorization</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> + <con:parameters> + <con:parameter> + <con:name>client_id</con:name> + <con:value>${#Project#jwtClientId}</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>username</con:name> + <con:value>${#Project#usernameNotDortmund}</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>password</con:name> + <con:value>${#Project#passwordNotDortmund}</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>grant_type</con:name> + <con:value>password</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportPdf" id="43a42886-7b4b-42de-829f-c3b4a3be1543"> + <con:testStep type="httprequest" name="retrieveToken - userDortmund" id="2a92ea6f-2609-4118-a9bb-403eaeb03ec3"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="951ebbc5-a5ba-418e-a699-aade30608a45" name="retrieveToken - userDortmund" postQueryString="true" mediaType="application/x-www-form-urlencoded" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Content-Type" value="application/x-www-form-urlencoded" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> + <con:endpoint>${#Project#jwtUrl}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="db5ca4f1-f21a-4b5d-b819-c41465665b8d" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> + <con:assertion type="JsonPath Existence Match" id="f7fffe97-95dc-47a4-9d59-5e71772747a2" name="access_token"> + <con:configuration> + <path>$.access_token</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> + <con:authType>No Authorization</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> + <con:parameters> + <con:parameter> + <con:name>client_id</con:name> + <con:value>${#Project#jwtClientId}</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>username</con:name> + <con:value>${#Project#usernameDortmund}</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>password</con:name> + <con:value>${#Project#passwordDortmund}</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>grant_type</con:name> + <con:value>password</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> </con:config> </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="a1012adb-4dca-4cd9-be77-952516aab180"> + <con:testStep type="transfer" name="retrieveToken Property Transfer" id="ff2c6a7b-441f-48a3-b1cc-cfe94792fc48"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>uuid</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>uuid</con:targetType> + <con:name>accessToken_notDortmund</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>retrieveToken - userNotDortmund</con:sourceStep> + <con:sourcePath>$.access_token</con:sourcePath> + <con:targetType>tokenNotDortmund</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>accessToken_Dortmund</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>retrieveToken - userDortmund</con:sourceStep> + <con:sourcePath>$.access_token</con:sourcePath> + <con:targetType>tokenDortmund</con:targetType> <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> <con:upgraded>true</con:upgraded> </con:transfers> </con:config> </con:testStep> - <con:properties> - <con:property> - <con:name>empty</con:name> - <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> - </con:property> - <con:property> - <con:name>uuid</con:name> - <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> - </con:property> - </con:properties> - </con:testCase> - <con:testCase id="8bdf8454-799d-469e-9552-25d1d44cd8ea" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="XPlanGML with multiple plans semantic error TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>TestCase für den Import von XPlanGML mit mehreren Plänen mit semantischen Fehlern</con:description> - <con:settings/> - <con:testStep type="httprequest" name="POST BP 5.4 XX importPlan" id="c1f96f80-628a-479e-aaeb-b7db15ac8180"> + <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Dortmund" id="096344ea-829f-49cc-b156-90a073a6f69b"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 5.4 XX importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Dortmund" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Authorization" value="Bearer ${#TestCase#tokenDortmund}"/> + <con:entry key="X-Filename" value="soapui-test"/> + <con:entry key="Accept" value="application/json"/> +</xml-fragment></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="047b0265-8e8e-45c2-b4d6-1c67ce5c4a7c" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="a14750a4-b6ee-40eb-b83b-6905d92e26ed" name="uuidExists"> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> <con:configuration> <path>$.uuid</path> <content>true</content> @@ -32762,7 +34918,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="cca268ea-ed94-467c-9fee-33c8215bf396" name="statusLinkExists"> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> <con:configuration> <path>$.statusLink</path> <content>true</content> @@ -32771,7 +34927,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="cca268ea-ed94-467c-9fee-33c8215bf396" name="hrefExists"> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> <con:configuration> <path>$.statusLink.href</path> <content>true</content> @@ -32783,30 +34939,63 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> + <con:authType>No Authorization</con:authType> </con:credentials> <con:attachment> - <con:name>BP_6.0.2_valide.zip</con:name> + <con:name>FP_6.0.2.zip</con:name> <con:contentType>application/gml+xml</con:contentType> - <con:contentId>BP_5.4_MultiplePlaene_semanticError.gml</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_5.4_MultiplePlaene_semanticError.gml</con:url> - <con:id>292d515d-99cd-4aac-99f1-c05d1d4a5851</con:id> + <con:contentId>BP_6.0_Dortmund.gml</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0_Dortmund.gml</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> + <con:parameters> + <con:parameter> + <con:name>skipSemantisch</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipFlaechenschluss</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipLaufrichtung</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter required="false" disableUrlEncoding="false"> + <con:name>internalId</con:name> + <con:value>soapui-test-id</con:value> + <con:style>QUERY</con:style> + <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> + <con:default/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>planStatus</con:name> + <con:value>FESTGESTELLT</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 5.4 XX importPlan Property Transfer" id="2481e026-8f3e-45ad-b340-9a2122ba5978"> + <con:testStep type="transfer" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Dortmund Property Transfer" id="1260d6ea-30ff-4335-88f4-b18d7f1072e1"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 5.4 XX importPlan</con:sourceStep> + <con:sourceStep>POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Dortmund</con:sourceStep> <con:sourcePath>$.uuid</con:sourcePath> <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> @@ -32816,20 +35005,23 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX pollStatus" id="8101665a-15a4-4f7e-b199-21b5e0fb6904"> + <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="d5be5a89-a60b-4eec-925b-f27211edc058"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Authorization" value="Bearer ${#TestCase#tokenDortmund}"/> + <con:entry key="Accept" value="application/json"/> +</xml-fragment></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="ae2299b3-55a5-4171-b298-0c0fbf353fbb" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="9c15ee46-6bc7-4cb2-bca6-6439ca6fdd4f" name="statusExists"> + <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> <con:configuration> <path>$.status</path> <content>true</content> @@ -32841,29 +35033,28 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> + <con:authType>No Authorization</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="88110aca-fc05-4008-9e98-f8e6d86037d7"> + <con:testStep type="groovy" name="pollStatus" id="57e7f4b6-2328-44bd-9d31-ce4c4d46603a"> <con:settings/> <con:config> <script>import groovy.json.JsonSlurper -def testStepName = "GET BP 5.4 XX pollStatus" +def testStepName = "GET BP 6.0 XX pollStatus" def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") def json = new JsonSlurper().parseText(response) if( context.loopIndex == null ) context.loopIndex = 0 -if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ +if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ sleep(1000) testRunner.gotoStepByName(testStepName) } else if (context.loopIndex == 40) { @@ -32874,186 +35065,196 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ }</script> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveStatus" id="5d02dd4e-a24f-492c-8cdf-33cb1da4a110"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="9bfe235c-59a6-497d-ad95-17ab133d565e"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Authorization" value="Bearer ${#TestCase#tokenDortmund}"/> + <con:entry key="Accept" value="application/json"/> +</xml-fragment></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="ae2299b3-55a5-4171-b298-0c0fbf353fbb" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="c47301d5-d89e-4a17-8345-4329bf534b29" name="status"> + <con:assertion type="JsonPath Match" id="d27fd88e-b78e-4e28-acfc-dc25276fc1a1" name="status"> <con:configuration> <path>$.status</path> - <content>IMPORT_ABORTED</content> + <content>IMPORT_FINISHED</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="79d9689a-c545-4733-bf8d-4b8da83f53a3" name="href report json"> + <con:assertion type="JsonPath Existence Match" id="320f668b-21ff-4589-a944-cfbd07931e2a" name="importedPlanIdsExists"> <con:configuration> - <path>$.links[?(@.rel == 'report' && @.type == 'application/json')].href</path> + <path>$.importedPlanIds</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> </con:configuration> </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="79d9689a-c545-4733-bf8d-4b8da83f53a3" name="href rename pdf"> + <con:assertion type="JsonPath Existence Match" id="493b851d-f4cf-4289-90b8-3cb49d482b72" name="linksExists"> <con:configuration> - <path>$.links[?(@.rel == 'report' && @.type == 'application/pdf')].href</path> + <path>$.links</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="a9ed262c-75d6-4a67-ad13-5b40ce1eb9ac" name="hrefExists"> + <con:configuration> + <path>$.links[0].href</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> + <con:authType>No Authorization</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportJson" id="1a319d6c-35cb-4da6-ab12-9adfd4fb0f10"> + <con:testStep type="transfer" name="GET BP 6.0 XX retrieveStatus Property Transfer" id="8d42c117-258d-4cda-b4a0-e58fcd034701"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>GET BP 6.0 XX retrieveStatus</con:sourceStep> + <con:sourcePath>$.importedPlanIds[0]</con:sourcePath> + <con:targetType>planId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan NotDortmund ExpectError403" id="4d50db5e-fbf3-48ff-824b-899f510f608a"> + <con:settings/> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan NotDortmund ExpectError403" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Authorization" value="Bearer ${#TestCase#tokenNotDortmund}"/> + <con:entry key="X-Filename" value="soapui-test"/> + <con:entry key="Accept" value="application/json"/> +</xml-fragment></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c3639f00-ced7-4918-9988-b1e61f27bb58" name="validationName exists"> - <con:configuration> - <path>$.validationName</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.valid"> - <con:configuration> - <path>$.syntaktisch.valid</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.status"> - <con:configuration> - <path>$.syntaktisch.status</path> - <content>COMPLETED</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan1"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].valid</path> - <content>[false]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan1"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> - <content>[false]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.rules.findings.level plan1"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.semantisch.rules[?(@.id == '3.2.3.2')].findings..level</path> - <content>[ERROR]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid plan1"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.valid</path> - <content>[true]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan2"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].valid</path> - <content>[true]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan2"> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> - <content>[true]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>403</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid plan2"> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> + <con:preemptive>true</con:preemptive> + <con:authType>No Authorization</con:authType> + </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/gml+xml</con:contentType> + <con:contentId>BP_6.0_Dortmund.gml</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0_Dortmund.gml</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>skipSemantisch</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipFlaechenschluss</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipLaufrichtung</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter required="false" disableUrlEncoding="false"> + <con:name>internalId</con:name> + <con:value>soapui-test-id</con:value> + <con:style>QUERY</con:style> + <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> + <con:default/> + <con:description xsi:nil="true"/> + </con:parameter> + <con:parameter> + <con:name>planStatus</con:name> + <con:value>FESTGESTELLT</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="DEL BP 6.0 pI deletePlan NotDortmund ExpectError403" id="423c27d1-2b83-42de-ad24-1dc5b3eac232"> + <con:settings/> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0 pI deletePlan NotDortmund ExpectError403" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Authorization" value="Bearer ${#TestCase#tokenNotDortmund}"/> + <con:entry key="Accept" value="application/json"/> +</xml-fragment></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.valid</path> - <content>[true]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> + <codes>403</codes> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> + <con:authType>No Authorization</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportPdf" id="3ec48fa7-7298-4b4f-aa6e-e1168fec977a"> + <con:testStep type="httprequest" name="DEL BP 6.0 pI deletePlan Dortmund" id="e86f4623-54f5-4918-a223-923302bc98b2"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0 pI deletePlan Dortmund" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Authorization" value="Bearer ${#TestCase#tokenDortmund}"/> + <con:entry key="Accept" value="application/json"/> +</xml-fragment></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> @@ -33061,19 +35262,34 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> + <con:authType>No Authorization</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="7917701b-c567-4d83-a1ac-638121c801b2"> + <con:testStep type="transfer" name="Cleanup Properties" id="5ff8fe08-a8f9-4a90-8062-d37fd1821891"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>tokenNotDortmund</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>tokenNotDortmund</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>tokenDortmund</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>tokenDortmund</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>empty</con:sourceType> @@ -33082,36 +35298,59 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:targetStep>#TestCase#</con:targetStep> <con:upgraded>true</con:upgraded> </con:transfers> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>planId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:upgraded>true</con:upgraded> + </con:transfers> </con:config> </con:testStep> <con:properties> <con:property> <con:name>empty</con:name> - <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> + <con:value/> + </con:property> + <con:property> + <con:name>tokenNotDortmund</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>tokenDortmund</con:name> + <con:value/> </con:property> <con:property> <con:name>uuid</con:name> - <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> + <con:value/> + </con:property> + <con:property> + <con:name>planId</con:name> + <con:value/> </con:property> </con:properties> </con:testCase> - <con:testCase id="769749e4-24ae-4a98-afc0-5edf756a7bc4" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="XPlanGML with multiple plans skip errors TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:description>TestCase für den Import von XPlanGML mit mehreren Plänen, die geometrische und semantische Fehler beinhalten. Die geometrische und semantische Validierung werden über Query-Parameter übersprungen.</con:description> + <con:testCase id="6d385587-d48e-4279-8734-a33aacc11b41" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Archive with internalId TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für den Import von Archiv mit internalId</con:description> <con:settings/> - <con:testStep type="httprequest" name="POST BP 5.4 sS,sF,sG,sL importPlan" id="40d50385-caad-4947-8e3f-2b90936ad585"> + <con:testStep type="httprequest" name="POST BP 5.3 xF,sS,sF,sG,sL importPlan" id="c86fc4e2-2cab-46f3-aff0-889fdc875185"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="aa5ee7a4-a529-48ac-ad3a-eb3064f75a0f" name="POST BP 5.4 sS,sF,sG,sL importPlan" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 5.3 xF,sS,sF,sG,sL importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="047b0265-8e8e-45c2-b4d6-1c67ce5c4a7c" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="a14750a4-b6ee-40eb-b83b-6905d92e26ed" name="uuidExists"> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> <con:configuration> <path>$.uuid</path> <content>true</content> @@ -33120,7 +35359,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="cca268ea-ed94-467c-9fee-33c8215bf396" name="statusLinkExists"> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> <con:configuration> <path>$.statusLink</path> <content>true</content> @@ -33129,7 +35368,7 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="cca268ea-ed94-467c-9fee-33c8215bf396" name="hrefExists"> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> <con:configuration> <path>$.statusLink.href</path> <content>true</content> @@ -33147,22 +35386,19 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> - <con:name>BP_6.0.2_valide.zip</con:name> - <con:contentType>application/gml+xml</con:contentType> - <con:contentId>BP_5.4_MultiplePlaene_semanticError.gml</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_5.4_MultiplePlaene_semanticError.gml</con:url> - <con:id>292d515d-99cd-4aac-99f1-c05d1d4a5851</con:id> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan002_5-3_internalId.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters> - <con:parameter required="false" disableUrlEncoding="false"> + <con:parameter> <con:name>skipSemantisch</con:name> <con:value>true</con:value> <con:style>QUERY</con:style> - <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> - <con:default/> - <con:description xsi:nil="true"/> </con:parameter> <con:parameter> <con:name>skipFlaechenschluss</con:name> @@ -33182,13 +35418,13 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ </con:parameters> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 5.4 XX importPlan Property Transfer" id="7c35f20c-22aa-495b-9ba4-34c644d86ad7"> + <con:testStep type="transfer" name="POST BP 5.3 xF,sS,sF,sG,sL importPlan Property Transfer" id="64aab377-c4d0-4a19-a9d4-219bfe4b5c8f"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 5.4 sS,sF,sG,sL importPlan</con:sourceStep> + <con:sourceStep>POST BP 5.3 xF,sS,sF,sG,sL importPlan</con:sourceStep> <con:sourcePath>$.uuid</con:sourcePath> <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> @@ -33198,20 +35434,20 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX pollStatus" id="6a211176-9eb0-45ff-abf3-dded3f8f9865"> + <con:testStep type="httprequest" name="GET BP 5.3 XX pollStatus" id="7c301571-e746-4b70-a3d1-8df3396d316c"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 5.3 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="ae2299b3-55a5-4171-b298-0c0fbf353fbb" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="9c15ee46-6bc7-4cb2-bca6-6439ca6fdd4f" name="statusExists"> + <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> <con:configuration> <path>$.status</path> <content>true</content> @@ -33233,12 +35469,12 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_ABORTED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="ed0cd1c5-afc7-4e22-ac18-9480e4b2b3c9"> + <con:testStep type="groovy" name="pollStatus" id="ddeadd33-17fb-48c1-8c84-1a38ffcd175b"> <con:settings/> <con:config> <script>import groovy.json.JsonSlurper -def testStepName = "GET BP 5.4 XX pollStatus" +def testStepName = "GET BP 5.3 XX pollStatus" def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") def json = new JsonSlurper().parseText(response) @@ -33256,46 +35492,180 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ }</script> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveStatus" id="8d35d5e0-6e9f-4bc2-bd26-46e47a20c315"> + <con:testStep type="httprequest" name="GET BP 5.3 XX retrieveStatus" id="0cb64378-6b07-4090-a557-c5b329fc5c3f"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 5.3 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="d27fd88e-b78e-4e28-acfc-dc25276fc1a1" name="status"> + <con:configuration> + <path>$.status</path> + <content>IMPORT_FINISHED</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="320f668b-21ff-4589-a944-cfbd07931e2a" name="importedPlanIdsExists"> + <con:configuration> + <path>$.importedPlanIds</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="493b851d-f4cf-4289-90b8-3cb49d482b72" name="linksExists"> + <con:configuration> + <path>$.links</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="a9ed262c-75d6-4a67-ad13-5b40ce1eb9ac" name="hrefExists"> + <con:configuration> + <path>$.links[0].href</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="transfer" name="GET BP 5.3 XX retrieveStatus Property Transfer" id="f28d99c9-79f1-492f-9b57-6ff511a9831d"> + <con:settings/> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>planId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>GET BP 5.3 XX retrieveStatus</con:sourceStep> + <con:sourcePath>$.importedPlanIds[0]</con:sourcePath> + <con:targetType>planId</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.3 pI retrievePlans" id="07c6883d-c23e-4e94-95eb-16b630972017"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 5.3 pI retrievePlans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plans</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> + <con:configuration> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="64341637-e8b1-46ad-b0c7-6610bd830219" name="internalId"> + <con:configuration> + <path>$[0].xplanModelData.internalId</path> + <content>TESTID1</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters> + <con:parameter> + <con:name>planId</con:name> + <con:value>${#TestCase#planId}</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.3 retrievePlanById" id="d4fb5890-720e-4d02-b489-f79ada6267d8"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 5.3 retrievePlanById" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="ae2299b3-55a5-4171-b298-0c0fbf353fbb" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="c47301d5-d89e-4a17-8345-4329bf534b29" name="status"> + <con:assertion type="JsonPath Match" id="d0072b44-46f6-4617-a278-0ba3a106b87c" name="internalId"> <con:configuration> - <path>$.status</path> - <content>IMPORT_FINISHED</content> + <path>$.xplanModelData.internalId</path> + <content>TESTID1</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="79d9689a-c545-4733-bf8d-4b8da83f53a3" name="href report json"> + <con:credentials> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> + </con:credentials> + <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> + <con:jmsPropertyConfig/> + <con:parameters/> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="DEL BP 5.3 pI deletePlan" id="3c587e65-a1f4-4de8-82d9-90adf61aad2b"> + <con:settings/> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 5.3 pI deletePlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:settings> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + </con:settings> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> + <con:request/> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> - <path>$.links[?(@.rel == 'report' && @.type == 'application/json')].href</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> + <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath RegEx Match" id="79d9689a-c545-4733-bf8d-4b8da83f53a3" name="href rename pdf"> + <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> <con:configuration> - <path>$.links[?(@.rel == 'report' && @.type == 'application/pdf')].href</path> + <path>$.message</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> - <regEx>^.*/api/v2/report\/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*$</regEx> </con:configuration> </con:assertion> <con:credentials> @@ -33311,158 +35681,83 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="GET BP 5.4 XX retrieveStatus Property Transfer" id="4aa18519-7e04-4331-84fd-65d1d455145a"> + <con:testStep type="transfer" name="Cleanup Properties" id="641b244a-8d1e-4688-a193-d0fd29999257"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>firstPlanId</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>GET BP 5.4 XX retrieveStatus</con:sourceStep> - <con:sourcePath>$.importedPlanIds[0]</con:sourcePath> - <con:targetType>firstPlanId</con:targetType> + <con:name>uuid</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> <con:upgraded>true</con:upgraded> </con:transfers> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>secondPlanId</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>GET BP 5.4 XX retrieveStatus</con:sourceStep> - <con:sourcePath>$.importedPlanIds[1]</con:sourcePath> - <con:targetType>secondPlanId</con:targetType> + <con:name>planId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>planId</con:targetType> <con:targetStep>#TestCase#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> <con:upgraded>true</con:upgraded> </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportJson" id="9b62d330-12af-4025-981e-648d31c1b615"> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>uuid</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>planId</con:name> + <con:value/> + </con:property> + </con:properties> + </con:testCase> + <con:testCase id="0778da5a-6f6c-4290-93ff-3d5fa109d317" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Archive with internalId and QueryParam internalId TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für den Import von Archiv mit internalId und Query-Parameter internalId</con:description> + <con:settings/> + <con:testStep type="httprequest" name="POST BP 5.3 xF,sS,sF,sG,sL,iI importPlan" id="60cb92e0-eee1-40a8-97b3-4833dbc41bd8"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportJson" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 5.3 xF,sS,sF,sG,sL,iI importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> + <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> +</xml-fragment></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="c3639f00-ced7-4918-9988-b1e61f27bb58" name="validationName exists"> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="uuidExists"> <con:configuration> - <path>$.validationName</path> + <path>$.uuid</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.valid"> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="statusLinkExists"> <con:configuration> - <path>$.syntaktisch.valid</path> + <path>$.statusLink</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="5c8e2019-5922-428a-956e-0664abe38de3" name="syntaktisch.status"> - <con:configuration> - <path>$.syntaktisch.status</path> - <content>COMPLETED</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan1"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].valid</path> - <content>[true]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan1"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> - <content>[null]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.status plan1"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.semantisch.status</path> - <content>[SKIPPED]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid plan1"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.valid</path> - <content>[true]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.status plan1"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity11_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.status</path> - <content>[COMPLETED]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="valid plan2"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].valid</path> - <content>[true]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.valid plan2"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.semantisch.valid</path> - <content>[null]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.semantisch.status plan2"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.semantisch.status</path> - <content>[SKIPPED]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.valid plan2"> - <con:configuration> - <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.valid</path> - <content>[true]</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="bb3f25f6-4470-4a47-909c-3aa0ca14a40c" name="validationResult.geometrisch.status plan2"> + <con:assertion type="JsonPath Existence Match" id="8b1c937c-2310-49dc-8b48-114ced3fabf3" name="hrefExists"> <con:configuration> - <path>$.plans[?(@.name == 'HafenCity14_SoapUI-XPlanManagerAPI')].validationResult.geometrisch.status</path> - <content>[COMPLETED]</content> + <path>$.statusLink.href</path> + <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> @@ -33476,53 +35771,76 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:preemptive>true</con:preemptive> <con:authType>Preemptive</con:authType> </con:credentials> + <con:attachment> + <con:name>FP_6.0.2.zip</con:name> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan002_5-3_internalId.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan002_5-3_internalId.zip</con:url> + <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> + </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET BP 5.4 XX retrieveReportPdf" id="30516391-6c1b-4eb7-834a-d8099fc102e2"> - <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="80a79ed8-fcfd-4604-9220-f7c650063d0c" name="GET BP 5.4 XX retrieveReportPdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/pdf" xmlns="http://eviware.com/soapui/config"/></con:setting> - </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/report/${#TestCase#uuid}</con:endpoint> - <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="84472359-c38c-468b-b28a-f03bbd016181" name="Valid HTTP Status Codes"> - <con:configuration> - <codes>200</codes> - </con:configuration> - </con:assertion> - <con:credentials> - <con:username>${#Project#username}</con:username> - <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>Basic</con:selectedAuthProfile> - <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> - <con:preemptive>true</con:preemptive> - <con:authType>Preemptive</con:authType> - </con:credentials> - <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> - <con:jmsPropertyConfig/> - <con:parameters/> + <con:parameters> + <con:parameter> + <con:name>skipSemantisch</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipFlaechenschluss</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipGeltungsbereich</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>skipLaufrichtung</con:name> + <con:value>true</con:value> + <con:style>QUERY</con:style> + </con:parameter> + <con:parameter> + <con:name>internalId</con:name> + <con:value>Test-overwrite-internalId</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 5.4 XX deleteFirstPlan" id="f2c929d2-0657-43d3-8576-bab3433175a9"> + <con:testStep type="transfer" name="POST BP 5.3 xF,sS,sF,sG,sL,iI importPlan Property Transfer" id="cb638c55-336b-4c0c-b3db-8a4ea8c549e6"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 5.4 XX deleteFirstPlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> + <con:name>uuid</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>POST BP 5.3 xF,sS,sF,sG,sL,iI importPlan</con:sourceStep> + <con:sourcePath>$.uuid</con:sourcePath> + <con:targetType>uuid</con:targetType> + <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> + <con:upgraded>true</con:upgraded> + </con:transfers> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.3 XX pollStatus" id="e11330a5-84bc-4109-8eeb-7a790ec214d3"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 5.3 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#firstPlanId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> + <con:assertion type="JsonPath Existence Match" id="8c1a42b6-d7c1-4c77-91c6-b7d4c3fc4530" name="statusExists"> <con:configuration> - <path>$.message</path> + <path>$.status</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> @@ -33542,22 +35860,72 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 5.4 XX deleteSecondPlan" id="c16547f7-b268-43a2-b5ab-9ca5f4599705"> + <con:testStep type="groovy" name="pollStatus" id="76f4e696-149e-4637-afc9-c55dcb26f61e"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 5.4 XX deleteSecondPlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config> + <script>import groovy.json.JsonSlurper + +def testStepName = "GET BP 5.3 XX pollStatus" +def response = testRunner.testCase.getTestStepByName(testStepName).getPropertyValue("Response") +def json = new JsonSlurper().parseText(response) + +if( context.loopIndex == null ) + context.loopIndex = 0 + +if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ + sleep(1000) + testRunner.gotoStepByName(testStepName) +} else if (context.loopIndex == 40) { + context.loopIndex = null + assert(false) +} else { + context.loopIndex = null +}</script> + </con:config> + </con:testStep> + <con:testStep type="httprequest" name="GET BP 5.3 XX retrieveStatus" id="cf02b496-6f6e-43b9-ba7e-7a580825a2bb"> + <con:settings/> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 5.3 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#secondPlanId}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> + <con:assertion type="JsonPath Match" id="d27fd88e-b78e-4e28-acfc-dc25276fc1a1" name="status"> <con:configuration> - <path>$.message</path> + <path>$.status</path> + <content>IMPORT_FINISHED</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="320f668b-21ff-4589-a944-cfbd07931e2a" name="importedPlanIdsExists"> + <con:configuration> + <path>$.importedPlanIds</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="493b851d-f4cf-4289-90b8-3cb49d482b72" name="linksExists"> + <con:configuration> + <path>$.links</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Existence Match" id="a9ed262c-75d6-4a67-ad13-5b40ce1eb9ac" name="hrefExists"> + <con:configuration> + <path>$.links[0].href</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> @@ -33577,195 +35945,114 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="993e72c2-9451-4694-8277-33163f7df39b"> + <con:testStep type="transfer" name="GET BP 5.3 XX retrieveStatus Property Transfer" id="ddb37866-914b-4b39-9029-555b357b7184"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>uuid</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>uuid</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>firstPlanId</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>firstPlanId</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>secondPlanId</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>secondPlanId</con:targetType> + <con:name>planId</con:name> + <con:sourceType>Response</con:sourceType> + <con:sourceStep>GET BP 5.3 XX retrieveStatus</con:sourceStep> + <con:sourcePath>$.importedPlanIds[0]</con:sourcePath> + <con:targetType>planId</con:targetType> <con:targetStep>#TestCase#</con:targetStep> + <con:type>JSONPATH</con:type> + <con:targetTransferType>JSONPATH</con:targetTransferType> <con:upgraded>true</con:upgraded> </con:transfers> </con:config> </con:testStep> - <con:properties> - <con:property> - <con:name>empty</con:name> - <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> - </con:property> - <con:property> - <con:name>uuid</con:name> - <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> - </con:property> - <con:property> - <con:name>firstPlanId</con:name> - <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> - </con:property> - <con:property> - <con:name>secondPlanId</con:name> - <con:value xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> - </con:property> - </con:properties> - </con:testCase> - <con:testCase id="3513a1c3-69fb-41be-bb51-7f7fa52d8782" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Security with JWT TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> - <con:settings/> - <con:testStep type="groovy" name="checkPreconditions" id="944d7ad1-7315-4b62-b047-30c52ffcafa9"> - <con:settings/> - <con:config> - <script>def jwtUrl = context.testCase.testSuite.project.getPropertyValue("jwtUrl"); -def usernameNotDortmund = context.testCase.testSuite.project.getPropertyValue("usernameNotDortmund"); -def usernameDortmund = context.testCase.testSuite.project.getPropertyValue("usernameDortmund"); -def test_ = null; - -// jwtUrl, usernameNotDortmund and usernameDortmund are required for this TesCase -if (jwtUrl == "" || usernameNotDortmund == "" || usernameDortmund == ""){ - log.info "TestCase is skipped: jwtUrl, usernameNotDortmund and usernameDortmund are required." - testRunner.gotoStepByName("Cleanup Properties"); -}</script> - </con:config> - </con:testStep> - <con:testStep type="httprequest" name="GET XX X.X XX openAPI" id="99c43ad1-8869-4cee-bd93-f84920c9ccbe"> + <con:testStep type="httprequest" name="GET BP 5.3 pI retrievePlans" id="f7ce008e-b6d9-466a-8736-66b223b46c48"> <con:settings/> - <con:config method="GET" xsi:type="con:HttpRequest" id="4d61face-75e6-4117-8d95-8b1e7dd45d2e" name="GET XX X.X XX openAPI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 5.3 pI retrievePlans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plans</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="2f43fbe9-d109-43b0-beb7-c8ed78bed226" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Match" id="31b6521b-7a41-46be-9040-38c3f4655011" name="openapi"> - <con:configuration> - <path>$.openapi</path> - <content>3.0.1</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Existence Match" id="dcb84152-4fe9-4776-8673-334ea542c0cc" name="JsonPath Existence Match"> - <con:configuration> - <path>$.security[0].Bearer</path> - <content>true</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="44032b4a-affb-40ed-b9ce-dc86c24659bf" name="securitySchemes.Bearer.scheme"> - <con:configuration> - <path>$.components.securitySchemes.Bearer.scheme</path> - <content>bearer</content> - <allowWildcards>false</allowWildcards> - <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> - <ignoreComments>false</ignoreComments> - </con:configuration> - </con:assertion> - <con:assertion type="JsonPath Match" id="44032b4a-affb-40ed-b9ce-dc86c24659bf" name="securitySchemes.Bearer.bearerFormat"> + <con:assertion type="JsonPath Match" id="64341637-e8b1-46ad-b0c7-6610bd830219" name="internalId"> <con:configuration> - <path>$.components.securitySchemes.Bearer.bearerFormat</path> - <content>JWT</content> + <path>$[0].xplanModelData.internalId</path> + <content>Test-overwrite-internalId</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> - <con:authType>No Authorization</con:authType> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters/> + <con:parameters> + <con:parameter> + <con:name>planId</con:name> + <con:value>${#TestCase#planId}</con:value> + <con:style>QUERY</con:style> + </con:parameter> + </con:parameters> </con:config> </con:testStep> - <con:testStep type="httprequest" name="retrieveToken - userNotDortmund" id="6ca8698e-6b61-4c6a-8308-d075c66605ac"> + <con:testStep type="httprequest" name="GET BP 5.3 retrievePlanById" id="2659024e-ce21-44bb-89d8-83780d7c5aeb"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="951ebbc5-a5ba-418e-a699-aade30608a45" name="retrieveToken - userNotDortmund" postQueryString="true" mediaType="application/x-www-form-urlencoded" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 5.3 retrievePlanById" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Content-Type" value="application/x-www-form-urlencoded" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#jwtUrl}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="db5ca4f1-f21a-4b5d-b819-c41465665b8d" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="b7016630-f4e7-44ff-85ef-83ded553be27" name="access_token"> + <con:assertion type="JsonPath Match" id="d0072b44-46f6-4617-a278-0ba3a106b87c" name="internalId"> <con:configuration> - <path>$.access_token</path> - <content>true</content> + <path>$.xplanModelData.internalId</path> + <content>Test-overwrite-internalId</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> - <con:authType>No Authorization</con:authType> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters> - <con:parameter> - <con:name>client_id</con:name> - <con:value>${#Project#jwtClientId}</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>username</con:name> - <con:value>${#Project#usernameNotDortmund}</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>password</con:name> - <con:value>${#Project#passwordNotDortmund}</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>grant_type</con:name> - <con:value>password</con:value> - <con:style>QUERY</con:style> - </con:parameter> - </con:parameters> + <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="retrieveToken - userDortmund" id="2a92ea6f-2609-4118-a9bb-403eaeb03ec3"> + <con:testStep type="httprequest" name="DEL BP 5.3 pI deletePlan" id="4cc04e6d-0aa1-4b1b-95f5-b15742b65319"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="951ebbc5-a5ba-418e-a699-aade30608a45" name="retrieveToken - userDortmund" postQueryString="true" mediaType="application/x-www-form-urlencoded" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 5.3 pI deletePlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Content-Type" value="application/x-www-form-urlencoded" xmlns="http://eviware.com/soapui/config"/></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#jwtUrl}</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="db5ca4f1-f21a-4b5d-b819-c41465665b8d" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> <con:configuration> <codes>200</codes> </con:configuration> </con:assertion> - <con:assertion type="JsonPath Existence Match" id="f7fffe97-95dc-47a4-9d59-5e71772747a2" name="access_token"> + <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> <con:configuration> - <path>$.access_token</path> + <path>$.message</path> <content>true</content> <allowWildcards>false</allowWildcards> <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> @@ -33773,69 +36060,64 @@ if (jwtUrl == "" || usernameNotDortmund == "" || usernameDortmund == ""){ </con:configuration> </con:assertion> <con:credentials> - <con:authType>No Authorization</con:authType> + <con:username>${#Project#username}</con:username> + <con:password>${#Project#password}</con:password> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> + <con:preemptive>true</con:preemptive> + <con:authType>Preemptive</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> - <con:parameters> - <con:parameter> - <con:name>client_id</con:name> - <con:value>${#Project#jwtClientId}</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>username</con:name> - <con:value>${#Project#usernameDortmund}</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>password</con:name> - <con:value>${#Project#passwordDortmund}</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>grant_type</con:name> - <con:value>password</con:value> - <con:style>QUERY</con:style> - </con:parameter> - </con:parameters> + <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="retrieveToken Property Transfer" id="ff2c6a7b-441f-48a3-b1cc-cfe94792fc48"> + <con:testStep type="transfer" name="Cleanup Properties" id="960f56be-a41b-40f1-9a3a-db2cbdf7b77e"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>accessToken_notDortmund</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>retrieveToken - userNotDortmund</con:sourceStep> - <con:sourcePath>$.access_token</con:sourcePath> - <con:targetType>tokenNotDortmund</con:targetType> + <con:name>uuid</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> <con:upgraded>true</con:upgraded> </con:transfers> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>accessToken_Dortmund</con:name> - <con:sourceType>Response</con:sourceType> - <con:sourceStep>retrieveToken - userDortmund</con:sourceStep> - <con:sourcePath>$.access_token</con:sourcePath> - <con:targetType>tokenDortmund</con:targetType> + <con:name>planId</con:name> + <con:sourceType>empty</con:sourceType> + <con:sourceStep>#TestCase#</con:sourceStep> + <con:targetType>planId</con:targetType> <con:targetStep>#TestCase#</con:targetStep> - <con:type>JSONPATH</con:type> - <con:targetTransferType>JSONPATH</con:targetTransferType> <con:upgraded>true</con:upgraded> </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Dortmund" id="096344ea-829f-49cc-b156-90a073a6f69b"> + <con:properties> + <con:property> + <con:name>empty</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>uuid</con:name> + <con:value/> + </con:property> + <con:property> + <con:name>planId</con:name> + <con:value/> + </con:property> + </con:properties> + </con:testCase> + <con:testCase id="078b5587-cef9-4b18-9a7f-c04bf31f334b" failOnError="false" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Archive without internalId TestCase" searchProperties="true" timeout="0" wsrmEnabled="false" wsrmVersion="1.0" wsrmAckTo="" amfAuthorisation="false" amfEndpoint="" amfLogin="" amfPassword=""> + <con:description>TestCase für den Import von Archiv ohne internalId</con:description> + <con:settings/> + <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL importPlan" id="71d9741a-d032-48ff-a2a7-5a22c096ede4"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Dortmund" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL importPlan" postQueryString="false" mediaType="application/octet-stream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Authorization" value="Bearer ${#TestCase#tokenDortmund}"/> - <con:entry key="X-Filename" value="soapui-test"/> <con:entry key="Accept" value="application/json"/> + <con:entry key="X-Filename" value="soapui-test"/> </xml-fragment></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> @@ -33875,15 +36157,16 @@ if (jwtUrl == "" || usernameNotDortmund == "" || usernameDortmund == ""){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> - <con:authType>No Authorization</con:authType> + <con:authType>Preemptive</con:authType> </con:credentials> <con:attachment> <con:name>FP_6.0.2.zip</con:name> - <con:contentType>application/gml+xml</con:contentType> - <con:contentId>BP_6.0_Dortmund.gml</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0_Dortmund.gml</con:url> + <con:contentType>application/octet-stream</con:contentType> + <con:contentId>BPlan002_5-3_internalId.zip</con:contentId> + <con:url>${projectDir}/xplan-manager-api/plans/BPlan004_6-0.zip</con:url> <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> @@ -33909,29 +36192,16 @@ if (jwtUrl == "" || usernameNotDortmund == "" || usernameDortmund == ""){ <con:value>true</con:value> <con:style>QUERY</con:style> </con:parameter> - <con:parameter required="false" disableUrlEncoding="false"> - <con:name>internalId</con:name> - <con:value>soapui-test-id</con:value> - <con:style>QUERY</con:style> - <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> - <con:default/> - <con:description xsi:nil="true"/> - </con:parameter> - <con:parameter> - <con:name>planStatus</con:name> - <con:value>FESTGESTELLT</con:value> - <con:style>QUERY</con:style> - </con:parameter> </con:parameters> </con:config> </con:testStep> - <con:testStep type="transfer" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Dortmund Property Transfer" id="1260d6ea-30ff-4335-88f4-b18d7f1072e1"> + <con:testStep type="transfer" name="POST BP 6.0 xF,sS,sF,sG,sL importPlan Property Transfer" id="ce880057-be60-4941-be79-924e7659e696"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>Response</con:sourceType> - <con:sourceStep>POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan Dortmund</con:sourceStep> + <con:sourceStep>POST BP 6.0 xF,sS,sF,sG,sL importPlan</con:sourceStep> <con:sourcePath>$.uuid</con:sourcePath> <con:targetType>uuid</con:targetType> <con:targetStep>#TestCase#</con:targetStep> @@ -33941,14 +36211,11 @@ if (jwtUrl == "" || usernameNotDortmund == "" || usernameDortmund == ""){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="d5be5a89-a60b-4eec-925b-f27211edc058"> + <con:testStep type="httprequest" name="GET BP 6.0 XX pollStatus" id="ee189b21-be57-4760-ab8f-23dc31455268"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX pollStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Authorization" value="Bearer ${#TestCase#tokenDortmund}"/> - <con:entry key="Accept" value="application/json"/> -</xml-fragment></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> @@ -33969,16 +36236,17 @@ if (jwtUrl == "" || usernameNotDortmund == "" || usernameDortmund == ""){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> - <con:authType>No Authorization</con:authType> + <con:authType>Preemptive</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="groovy" name="pollStatus" id="57e7f4b6-2328-44bd-9d31-ce4c4d46603a"> + <con:testStep type="groovy" name="pollStatus" id="3c5e8858-741b-4981-b341-93f12cf0160d"> <con:settings/> <con:config> <script>import groovy.json.JsonSlurper @@ -34001,14 +36269,11 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ }</script> </con:config> </con:testStep> - <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="9bfe235c-59a6-497d-ad95-17ab133d565e"> + <con:testStep type="httprequest" name="GET BP 6.0 XX retrieveStatus" id="7e7feea5-3823-4fe4-8abf-d15b181d6785"> <con:settings/> <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 XX retrieveStatus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Authorization" value="Bearer ${#TestCase#tokenDortmund}"/> - <con:entry key="Accept" value="application/json"/> -</xml-fragment></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/status/${#TestCase#uuid}</con:endpoint> <con:request/> @@ -34056,16 +36321,17 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> - <con:authType>No Authorization</con:authType> + <con:authType>Preemptive</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="GET BP 6.0 XX retrieveStatus Property Transfer" id="8d42c117-258d-4cda-b4a0-e58fcd034701"> + <con:testStep type="transfer" name="GET BP 6.0 XX retrieveStatus Property Transfer" id="519e139a-e164-4c64-ad32-8d9c85a0500a"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> @@ -34081,112 +36347,87 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ </con:transfers> </con:config> </con:testStep> - <con:testStep type="httprequest" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan NotDortmund ExpectError403" id="4d50db5e-fbf3-48ff-824b-899f510f608a"> + <con:testStep type="httprequest" name="GET BP 6.0 pI retrievePlans" id="70ac2106-7395-48db-adc5-207aee96caf4"> <con:settings/> - <con:config method="POST" xsi:type="con:HttpRequest" id="fb82fa77-b86e-45f2-8c0f-866cb490b0d1" name="POST BP 6.0 xF,sS,sF,sG,sL,iI,pS importPlan NotDortmund ExpectError403" postQueryString="false" mediaType="application/gml+xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 pI retrievePlans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Authorization" value="Bearer ${#TestCase#tokenNotDortmund}"/> - <con:entry key="X-Filename" value="soapui-test"/> - <con:entry key="Accept" value="application/json"/> -</xml-fragment></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> - <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan</con:endpoint> + <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plans</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="de44e7cd-c4f2-4f55-90d8-367bea84ef1e" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> - <codes>403</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="64341637-e8b1-46ad-b0c7-6610bd830219" name="internalId"> + <con:configuration> + <path>$[0].xplanModelData.internalId</path> + <content>null</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> - <con:authType>No Authorization</con:authType> + <con:authType>Preemptive</con:authType> </con:credentials> - <con:attachment> - <con:name>FP_6.0.2.zip</con:name> - <con:contentType>application/gml+xml</con:contentType> - <con:contentId>BP_6.0_Dortmund.gml</con:contentId> - <con:url>${projectDir}/xplan-manager-api/plans/BP_6.0_Dortmund.gml</con:url> - <con:id>e65ee7a4-20dd-461e-a899-ae69d9a90731</con:id> - </con:attachment> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters> <con:parameter> - <con:name>skipSemantisch</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipFlaechenschluss</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipGeltungsbereich</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter> - <con:name>skipLaufrichtung</con:name> - <con:value>true</con:value> - <con:style>QUERY</con:style> - </con:parameter> - <con:parameter required="false" disableUrlEncoding="false"> - <con:name>internalId</con:name> - <con:value>soapui-test-id</con:value> - <con:style>QUERY</con:style> - <con:type xmlns:xs="http://www.w3.org/2001/XMLSchema">xs:string</con:type> - <con:default/> - <con:description xsi:nil="true"/> - </con:parameter> - <con:parameter> - <con:name>planStatus</con:name> - <con:value>FESTGESTELLT</con:value> + <con:name>planId</con:name> + <con:value>${#TestCase#planId}</con:value> <con:style>QUERY</con:style> </con:parameter> </con:parameters> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0 pI deletePlan NotDortmund ExpectError403" id="423c27d1-2b83-42de-ad24-1dc5b3eac232"> + <con:testStep type="httprequest" name="GET BP 6.0 retrievePlanById" id="6ac4bc49-38f8-4fa7-b943-a878735a956b"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0 pI deletePlan NotDortmund ExpectError403" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="GET" xsi:type="con:HttpRequest" id="d219264b-19a2-4e32-bda8-d1d431e563e9" name="GET BP 6.0 retrievePlanById" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Authorization" value="Bearer ${#TestCase#tokenNotDortmund}"/> - <con:entry key="Accept" value="application/json"/> -</xml-fragment></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> <con:request/> - <con:assertion type="Valid HTTP Status Codes" id="a8bfebc1-8840-4207-86e3-e063ec337347" name="Valid HTTP Status Codes"> + <con:assertion type="Valid HTTP Status Codes" id="706a255f-d031-4dfe-b078-d7098c7d2b4a" name="Valid HTTP Status Codes"> <con:configuration> - <codes>403</codes> + <codes>200</codes> + </con:configuration> + </con:assertion> + <con:assertion type="JsonPath Match" id="d0072b44-46f6-4617-a278-0ba3a106b87c" name="internalId"> + <con:configuration> + <path>$.xplanModelData.internalId</path> + <content>null</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> </con:configuration> </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> - <con:authType>No Authorization</con:authType> + <con:authType>Preemptive</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="httprequest" name="DEL BP 6.0 pI deletePlan Dortmund" id="e86f4623-54f5-4918-a223-923302bc98b2"> + <con:testStep type="httprequest" name="DEL BP 6.0 pI deletePlan" id="be280a7d-c7e2-4ad0-bdad-a4a419c3387d"> <con:settings/> - <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0 pI deletePlan Dortmund" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <con:config method="DELETE" xsi:type="con:HttpRequest" id="bb47d485-53e8-420a-b18d-620a3ba2b7e3" name="DEL BP 6.0 pI deletePlan" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <con:settings> - <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config"> - <con:entry key="Authorization" value="Bearer ${#TestCase#tokenDortmund}"/> - <con:entry key="Accept" value="application/json"/> -</xml-fragment></con:setting> + <con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><entry key="Accept" value="application/json" xmlns="http://eviware.com/soapui/config"/></con:setting> </con:settings> <con:endpoint>${#Project#baseUrlManagerApi}/xplan-manager-api/api/v2/plan/${#TestCase#planId}</con:endpoint> <con:request/> @@ -34195,37 +36436,31 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <codes>200</codes> </con:configuration> </con:assertion> + <con:assertion type="JsonPath Existence Match" id="e3b7ac04-76d4-4ed3-babc-4ab10275695d" name="messageExists"> + <con:configuration> + <path>$.message</path> + <content>true</content> + <allowWildcards>false</allowWildcards> + <ignoreNamspaceDifferences>false</ignoreNamspaceDifferences> + <ignoreComments>false</ignoreComments> + </con:configuration> + </con:assertion> <con:credentials> <con:username>${#Project#username}</con:username> <con:password>${#Project#password}</con:password> - <con:selectedAuthProfile>No Authorization</con:selectedAuthProfile> + <con:selectedAuthProfile>Basic</con:selectedAuthProfile> + <con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes> <con:preemptive>true</con:preemptive> - <con:authType>No Authorization</con:authType> + <con:authType>Preemptive</con:authType> </con:credentials> <con:jmsConfig JMSDeliveryMode="PERSISTENT"/> <con:jmsPropertyConfig/> <con:parameters/> </con:config> </con:testStep> - <con:testStep type="transfer" name="Cleanup Properties" id="5ff8fe08-a8f9-4a90-8062-d37fd1821891"> + <con:testStep type="transfer" name="Cleanup Properties" id="f6eb1cac-1f00-4f81-93db-951c853ea3da"> <con:settings/> <con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>tokenNotDortmund</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>tokenNotDortmund</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> - <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> - <con:name>tokenDortmund</con:name> - <con:sourceType>empty</con:sourceType> - <con:sourceStep>#TestCase#</con:sourceStep> - <con:targetType>tokenDortmund</con:targetType> - <con:targetStep>#TestCase#</con:targetStep> - <con:upgraded>true</con:upgraded> - </con:transfers> <con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"> <con:name>uuid</con:name> <con:sourceType>empty</con:sourceType> @@ -34249,14 +36484,6 @@ if( ++context.loopIndex < 40 && json.status != "IMPORT_FINISHED" ){ <con:name>empty</con:name> <con:value/> </con:property> - <con:property> - <con:name>tokenNotDortmund</con:name> - <con:value/> - </con:property> - <con:property> - <con:name>tokenDortmund</con:name> - <con:value/> - </con:property> <con:property> <con:name>uuid</con:name> <con:value/> diff --git a/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api/plans/BPlan002_5-3_internalId.zip b/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api/plans/BPlan002_5-3_internalId.zip new file mode 100644 index 0000000000000000000000000000000000000000..29417dd318924d9789c20a150be47776c0260ef7 Binary files /dev/null and b/xplan-tests/xplan-tests-soapui/src/main/resources/xplan-manager-api/plans/BPlan002_5-3_internalId.zip differ diff --git a/xplan-validator/pom.xml b/xplan-validator/pom.xml index 9145fc12d59b01c33352641c37d70275015c9dee..ac24a160ad5609a3ece095eecc58ba139bcb234f 100644 --- a/xplan-validator/pom.xml +++ b/xplan-validator/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplanbox</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <modules> diff --git a/xplan-validator/xplan-validator-api/pom.xml b/xplan-validator/xplan-validator-api/pom.xml index 7886feebff843ce3c1565cf87e0b8fbf5ecede1e..5b92db7ad4ac7aff1bfeaab09f209139878f1dde 100755 --- a/xplan-validator/xplan-validator-api/pom.xml +++ b/xplan-validator/xplan-validator-api/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-validator</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-validator/xplan-validator-api/src/main/resources/application.properties b/xplan-validator/xplan-validator-api/src/main/resources/application.properties index 8d571c0c95b9288e62dc71e6b3a1e8f943805e77..77247bfbd4d24fae29310bb46149c09b5c29f28d 100644 --- a/xplan-validator/xplan-validator-api/src/main/resources/application.properties +++ b/xplan-validator/xplan-validator-api/src/main/resources/application.properties @@ -34,6 +34,7 @@ spring.rabbitmq.host=${XPLAN_RABBIT_HOST:localhost} spring.rabbitmq.password=${XPLAN_RABBIT_PASSWORD:guest} spring.rabbitmq.port=${XPLAN_RABBIT_PORT:5672} spring.rabbitmq.username=${XPLAN_RABBIT_USER:guest} +spring.rabbitmq.virtual-host=${XPLAN_RABBIT_VIRTUALHOST:} xplanbox.rabbitmq.public.topic.name=${XPLAN_RABBIT_PUBLIC_TOPIC:} @@ -47,6 +48,7 @@ xplanbox.s3.accessKeyId=${XPLAN_S3_ACCESS_KEY} xplanbox.s3.endpoint.url=${XPLAN_S3_ENDPOINT} xplanbox.s3.region=${XPLAN_S3_REGION} xplanbox.s3.secretKey=${XPLAN_S3_SECRET_ACCESS_KEY} +xplanbox.s3.pathStyleAccessEnabled=${XPLAN_S3_PATHSTYLEACCESS_ENABLED:false} xplanbox.validation.profiles=${XPLAN_VALIDATION_PROFILES:} xplanbox.s3.bucket.validation=${XPLAN_S3_BUCKET_VALIDATION:validation} diff --git a/xplan-validator/xplan-validator-config/pom.xml b/xplan-validator/xplan-validator-config/pom.xml index 19eac21ca944c1d706116f984ea9e2a1603d1ab2..4520be7dc3303f287bbfcb6963c177f495737927 100644 --- a/xplan-validator/xplan-validator-config/pom.xml +++ b/xplan-validator/xplan-validator-config/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-validator</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-validator/xplan-validator-executor/pom.xml b/xplan-validator/xplan-validator-executor/pom.xml index ceab4b716bb28b7fa065f4e4af41f5ae77fd036d..6e4146c06227f98496b60ce7f739c12dcf310e65 100644 --- a/xplan-validator/xplan-validator-executor/pom.xml +++ b/xplan-validator/xplan-validator-executor/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-validator</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-validator/xplan-validator-executor/src/main/resources/application.properties b/xplan-validator/xplan-validator-executor/src/main/resources/application.properties index 768094edc698dcb4140aa3b5a0dea77d0b2c6e94..364471117a43b345571265a31c967c6b447af3ae 100644 --- a/xplan-validator/xplan-validator-executor/src/main/resources/application.properties +++ b/xplan-validator/xplan-validator-executor/src/main/resources/application.properties @@ -31,6 +31,7 @@ spring.rabbitmq.host=${XPLAN_RABBIT_HOST:localhost} spring.rabbitmq.password=${XPLAN_RABBIT_PASSWORD:guest} spring.rabbitmq.port=${XPLAN_RABBIT_PORT:5672} spring.rabbitmq.username=${XPLAN_RABBIT_USER:guest} +spring.rabbitmq.virtual-host=${XPLAN_RABBIT_VIRTUALHOST:} spring.rabbitmq.listener.prefetch=1 xplanbox.rabbitmq.public.topic.name=${XPLAN_RABBIT_PUBLIC_TOPIC:} @@ -46,6 +47,7 @@ xplanbox.s3.accessKeyId=${XPLAN_S3_ACCESS_KEY} xplanbox.s3.endpoint.url=${XPLAN_S3_ENDPOINT} xplanbox.s3.region=${XPLAN_S3_REGION} xplanbox.s3.secretKey=${XPLAN_S3_SECRET_ACCESS_KEY} +xplanbox.s3.pathStyleAccessEnabled=${XPLAN_S3_PATHSTYLEACCESS_ENABLED:false} xplanbox.validation.profiles=${XPLAN_VALIDATION_PROFILES:} xplanbox.s3.bucket.validation=${XPLAN_S3_BUCKET_VALIDATION:validation} diff --git a/xplan-validator/xplan-validator-storage/pom.xml b/xplan-validator/xplan-validator-storage/pom.xml index 0e6a746bc940597c9bc11452c1908bc6c3d6d5cd..7da24c8c75c183cf408196de4774ff0ce1abc604 100644 --- a/xplan-validator/xplan-validator-storage/pom.xml +++ b/xplan-validator/xplan-validator-storage/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-validator</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <dependencies> diff --git a/xplan-validator/xplan-validator-web/pom.xml b/xplan-validator/xplan-validator-web/pom.xml index f5ae26e88ec596123ca5e7cfbd9a429283c1e92d..7eed7fb0e1a80d8569546333a9350fe59c33cefd 100644 --- a/xplan-validator/xplan-validator-web/pom.xml +++ b/xplan-validator/xplan-validator-web/pom.xml @@ -9,7 +9,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-validator</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-webservices/pom.xml b/xplan-webservices/pom.xml index b9c3d5a62a0e6ed0f2d4f9566fa2f0cbc58c6414..52d1f8248a6d475386effc39dc22be4676a95f0a 100644 --- a/xplan-webservices/pom.xml +++ b/xplan-webservices/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplanbox</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <modules> diff --git a/xplan-webservices/xplan-webservices-core/pom.xml b/xplan-webservices/xplan-webservices-core/pom.xml index 327c102793bcbc9bc1cd13875e4279d0e530bc84..32df7da774a333cd59422bfde3e920c4bed60ef1 100644 --- a/xplan-webservices/xplan-webservices-core/pom.xml +++ b/xplan-webservices/xplan-webservices-core/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-webservices/xplan-webservices-inspireplu/pom.xml b/xplan-webservices/xplan-webservices-inspireplu/pom.xml index d498ad476bea26345b35b34c3f24d77998ad1498..9c2468449c749f1ac50017f722880093efe291eb 100644 --- a/xplan-webservices/xplan-webservices-inspireplu/pom.xml +++ b/xplan-webservices/xplan-webservices-inspireplu/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <dependencies> diff --git a/xplan-webservices/xplan-webservices-mapproxy/pom.xml b/xplan-webservices/xplan-webservices-mapproxy/pom.xml index 40dba1a785421ac53fcf3b7a66c754b81551ca3c..55679f28819311b4f260497fb631087f0001db57 100644 --- a/xplan-webservices/xplan-webservices-mapproxy/pom.xml +++ b/xplan-webservices/xplan-webservices-mapproxy/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <modules> diff --git a/xplan-webservices/xplan-webservices-mapproxy/xplan-mapproxy-config/pom.xml b/xplan-webservices/xplan-webservices-mapproxy/xplan-mapproxy-config/pom.xml index d93678079b00e472ae540b9c94640d7a74684a60..3e0d613857a25e059ed6528dbeb3e24218aa846f 100644 --- a/xplan-webservices/xplan-webservices-mapproxy/xplan-mapproxy-config/pom.xml +++ b/xplan-webservices/xplan-webservices-mapproxy/xplan-mapproxy-config/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices-mapproxy</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-webservices/xplan-webservices-mapproxy/xplan-mapproxy-config/src/main/resources/mapproxy.yaml b/xplan-webservices/xplan-webservices-mapproxy/xplan-mapproxy-config/src/main/resources/mapproxy.yaml index 64b2d3ef89a5bbe4139ba635a4cd39adc614833e..133cb875318c86aeb4566efbf5126583faa9df4c 100644 --- a/xplan-webservices/xplan-webservices-mapproxy/xplan-mapproxy-config/src/main/resources/mapproxy.yaml +++ b/xplan-webservices/xplan-webservices-mapproxy/xplan-mapproxy-config/src/main/resources/mapproxy.yaml @@ -385,7 +385,7 @@ globals: lock_dir: "./cache_data/locks" tile_lock_dir: "./cache_data/tile_locks" s3: - endpoint_url: https://${XPLAN_S3_ENDPOINT} + endpoint_url: ${XPLAN_S3_ENDPOINT} bucket_name: ${XPLAN_S3_BUCKET_MAPPROXYCACHE} region_name: ${XPLAN_S3_REGION} image: diff --git a/xplan-webservices/xplan-webservices-mapproxy/xplan-mapproxy-docker/pom.xml b/xplan-webservices/xplan-webservices-mapproxy/xplan-mapproxy-docker/pom.xml index 95201778b089c4bdd680827e1b63d8ceb9bdc61a..e1c0bd1ec7668b496da59672d3a2b4024c752f40 100644 --- a/xplan-webservices/xplan-webservices-mapproxy/xplan-mapproxy-docker/pom.xml +++ b/xplan-webservices/xplan-webservices-mapproxy/xplan-mapproxy-docker/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices-mapproxy</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-webservices/xplan-webservices-mapserver/pom.xml b/xplan-webservices/xplan-webservices-mapserver/pom.xml index 5828a49973dc738142c5c75b4921f78db507c205..5e1790dcea14d87511b0a53639519ad5d957097e 100644 --- a/xplan-webservices/xplan-webservices-mapserver/pom.xml +++ b/xplan-webservices/xplan-webservices-mapserver/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <modules> diff --git a/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-config/pom.xml b/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-config/pom.xml index 61a914e288d37bc657433c0fec34c8c45798326e..6a967687bd10930ed07de338c9f63c578a17afe9 100644 --- a/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-config/pom.xml +++ b/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-config/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices-mapserver</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-config/src/main/resources/common.txt b/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-config/src/main/resources/common.txt index 0a060d3fcf4fa5e2f56869b81716368dcbf5ad4d..0e7a6f31cb1a3799b09dc09539abb317c1257560 100644 --- a/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-config/src/main/resources/common.txt +++ b/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-config/src/main/resources/common.txt @@ -30,7 +30,9 @@ IMAGETYPE png CONFIG "AWS_ACCESS_KEY_ID" "$AWS_ACCESS_KEY_ID" CONFIG "AWS_SECRET_ACCESS_KEY" "$AWS_SECRET_ACCESS_KEY" CONFIG "AWS_REGION" "$AWS_REGION" -CONFIG "AWS_S3_ENDPOINT" "$AWS_S3_ENDPOINT" +CONFIG "AWS_S3_ENDPOINT" "$AWS_S3_ENDPOINT_WITHOUT_PROTOCOL" +CONFIG "AWS_HTTPS" "$AWS_HTTPS" +CONFIG "AWS_VIRTUAL_HOSTING" "$AWS_VIRTUAL_HOSTING" SHAPEPATH "/vsis3/$XPLAN_S3_BUCKET_ATTACHMENTS" OUTPUTFORMAT diff --git a/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-docker/pom.xml b/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-docker/pom.xml index 43467b8e39d1885144a7119ae10a35fdb4e57a2d..59211c99ba7b81e5321a3e71eedb446f900600b6 100644 --- a/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-docker/pom.xml +++ b/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-docker/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices-mapserver</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-docker/startupWithConfiguredMapserver.sh b/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-docker/startupWithConfiguredMapserver.sh index ce6c47bf7f021987b49938ab458958d9725054c5..8030ca3eabbdc39eec3f266b981675cbd4573371 100755 --- a/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-docker/startupWithConfiguredMapserver.sh +++ b/xplan-webservices/xplan-webservices-mapserver/xplan-mapserver-docker/startupWithConfiguredMapserver.sh @@ -16,8 +16,25 @@ fi echo "[$(date -Iseconds)] Initializing mapserver config ..." echo "[$(date -Iseconds)] MapProxy config initialization..." +defined_envs="$(printf '${%s} ' $(env | cut -d'=' -f1)) \${AWS_S3_ENDPOINT_WITHOUT_PROTOCOL} \${AWS_HTTPS} \${AWS_VIRTUAL_HOSTING}" +export AWS_S3_ENDPOINT_WITHOUT_PROTOCOL="$(echo $AWS_S3_ENDPOINT | sed s/'http[s]\?:\/\/'//)" -defined_envs="$(printf '${%s} ' $(env | cut -d'=' -f1))" +# set AWS_HTTPS=YES|NO +if [[ $AWS_S3_ENDPOINT == https:* ]]; then + export AWS_HTTPS="YES" +else + export AWS_HTTPS="NO" +fi + +# set AWS_VIRTUAL_HOSTING=true|false +XPLAN_S3_PATHSTYLEACCESS_ENABLED="${XPLAN_S3_PATHSTYLEACCESS_ENABLED:-false}" +if [ $XPLAN_S3_PATHSTYLEACCESS_ENABLED = "true" ] +then + echo "[$(date -Iseconds)] XPLAN_S3_PATHSTYLEACCESS_ENABLED is enabled" + export AWS_VIRTUAL_HOSTING="false" +else + export AWS_VIRTUAL_HOSTING="true" +fi TARGET_DIR="$(dirname "${MS_MAPFILE}")" for FILE in /xplan-mapserver-docker/xplan-mapserver-config/*; do diff --git a/xplan-webservices/xplan-webservices-services/pom.xml b/xplan-webservices/xplan-webservices-services/pom.xml index cc43087a7c03b509ea98f348952be2370b50a26c..17d465adb2dd52282841c92b767a899f391d4301 100644 --- a/xplan-webservices/xplan-webservices-services/pom.xml +++ b/xplan-webservices/xplan-webservices-services/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <modules> diff --git a/xplan-webservices/xplan-webservices-services/xplan-services-docker/pom.xml b/xplan-webservices/xplan-webservices-services/xplan-services-docker/pom.xml index f14ae95fa9d0367a5e4fe37475e4e11122947a68..98c68a0b84fdd5003341c2cd974de85c00a49d5f 100644 --- a/xplan-webservices/xplan-webservices-services/xplan-services-docker/pom.xml +++ b/xplan-webservices/xplan-webservices-services/xplan-services-docker/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices-services</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <properties> diff --git a/xplan-webservices/xplan-webservices-services/xplan-services-wfs-syn/pom.xml b/xplan-webservices/xplan-webservices-services/xplan-services-wfs-syn/pom.xml index defe9891f7a980db4fff1c70658d2294c583f5a4..f74fdda944dc5506a2d7848282b9bcb47a8fe7e3 100644 --- a/xplan-webservices/xplan-webservices-services/xplan-services-wfs-syn/pom.xml +++ b/xplan-webservices/xplan-webservices-services/xplan-services-wfs-syn/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices-services</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-webservices/xplan-webservices-services/xplan-services-wfs/pom.xml b/xplan-webservices/xplan-webservices-services/xplan-services-wfs/pom.xml index 93a1ab7be114c8708920ef0407d9fc1bec3b0918..44461b0caff387b3a30b49f384f0de1321a456bd 100644 --- a/xplan-webservices/xplan-webservices-services/xplan-services-wfs/pom.xml +++ b/xplan-webservices/xplan-webservices-services/xplan-services-wfs/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices-services</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-webservices/xplan-webservices-services/xplan-services-wms/pom.xml b/xplan-webservices/xplan-webservices-services/xplan-services-wms/pom.xml index 8b8828586a7cd0d5912e85c4bde40fa7994be247..7ca1d43fcfc5b2b69ad8b3c2e410829d106032b7 100644 --- a/xplan-webservices/xplan-webservices-services/xplan-services-wms/pom.xml +++ b/xplan-webservices/xplan-webservices-services/xplan-services-wms/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices-services</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-webservices/xplan-webservices-validator-wms/pom.xml b/xplan-webservices/xplan-webservices-validator-wms/pom.xml index 2c9d24106c6a5db31a0db12ae9cdd614a0b4b037..5cf441c596b69d54544c0839f97c6a04eaf35c99 100644 --- a/xplan-webservices/xplan-webservices-validator-wms/pom.xml +++ b/xplan-webservices/xplan-webservices-validator-wms/pom.xml @@ -9,7 +9,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build> diff --git a/xplan-webservices/xplan-webservices-workspaces/pom.xml b/xplan-webservices/xplan-webservices-workspaces/pom.xml index a123d7c59863d0bf5a801012b36c7561ef049942..9d6299440901924e0824b36a53aa3838254c4100 100644 --- a/xplan-webservices/xplan-webservices-workspaces/pom.xml +++ b/xplan-webservices/xplan-webservices-workspaces/pom.xml @@ -8,7 +8,7 @@ <parent> <groupId>de.latlon.product.xplanbox</groupId> <artifactId>xplan-webservices</artifactId> - <version>8.0</version> + <version>8.0.1</version> </parent> <build>