+
+ deleteUnreferencedPolicyTypes();
+
+ assertThatThrownBy(() -> {
+ databaseProvider.getPolicyTypes(null, null);
+ }).hasMessageContaining("policy types for null:null do not exist");
+ }
+
+ private void deleteUnreferencedPolicyTypes() throws PfModelException {
+ ToscaServiceTemplate allPolicyTypes = databaseProvider.getPolicyTypes(null, null);
+
+ boolean deleteFailedDueToReference = false;
+
+ for (ToscaPolicyType policyType : allPolicyTypes.getPolicyTypes().values()) {
+ try {
+ ToscaServiceTemplate deletedServiceTemplate =
+ databaseProvider.deletePolicyType(policyType.getName(), policyType.getVersion());
+ assertEquals(1, deletedServiceTemplate.getPolicyTypesAsMap().size());
+ } catch (Exception pfModelRuntimeException) {
+ assertTrue(pfModelRuntimeException.getMessage().contains("is in use, it is referenced in policy type"));
+ deleteFailedDueToReference = true;
+ }
+ }
+
+ if (deleteFailedDueToReference) {
+ deleteUnreferencedPolicyTypes();
+ }