From 2611e3e2f1609fb20b84c9b5f25fcb993c24b87e Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Sun, 26 Nov 2023 09:55:32 +0100
Subject: [PATCH] Fixed the tests

---
 .../converters/AccessTypeConverter.java       |  6 +++++
 .../BannerMessageTypeConverter.java           | 26 +++++++++++++++++++
 ...iliationIdentifierSchemeTypeConverter.java | 14 +++++++---
 .../IdentifierDescriptionTypeConverter.java   | 14 +++++++---
 .../IdentifierFunderTypeConverter.java        | 14 +++++++---
 .../IdentifierIdentifierTypeConverter.java    | 14 +++++++---
 ...fierNameIdentifierSchemeTypeConverter.java | 14 +++++++---
 .../IdentifierNameTypeConverter.java          | 14 +++++++---
 .../IdentifierRelatedTypeConverter.java       | 14 +++++++---
 .../IdentifierVisibilityTypeConverter.java    | 14 +++++++---
 .../converters/LanguageTypeConverter.java     | 14 +++++++---
 .../converters/TableColumnTypeConverter.java  | 14 +++++++---
 .../entities/maintenance/BannerMessage.java   |  3 ++-
 .../maintenance/BannerMessageType.java        | 23 +++++++++++-----
 14 files changed, 151 insertions(+), 47 deletions(-)
 create mode 100644 dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/BannerMessageTypeConverter.java

diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/AccessTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/AccessTypeConverter.java
index 80aa068628..e8ee655c8b 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/AccessTypeConverter.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/AccessTypeConverter.java
@@ -9,12 +9,18 @@ public class AccessTypeConverter implements AttributeConverter<AccessType, Strin
 
     @Override
     public String convertToDatabaseColumn(AccessType accessType) {
+        if (accessType == null) {
+            return null;
+        }
         return accessType.name()
                 .toLowerCase();
     }
 
     @Override
     public AccessType convertToEntityAttribute(String accessType) {
+        if (accessType == null) {
+            return null;
+        }
         return AccessType.valueOf(accessType.toUpperCase());
     }
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/BannerMessageTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/BannerMessageTypeConverter.java
new file mode 100644
index 0000000000..24143a7453
--- /dev/null
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/BannerMessageTypeConverter.java
@@ -0,0 +1,26 @@
+package at.tuwien.converters;
+
+import at.tuwien.entities.maintenance.BannerMessageType;
+import jakarta.persistence.AttributeConverter;
+import jakarta.persistence.Converter;
+
+@Converter
+public class BannerMessageTypeConverter implements AttributeConverter<BannerMessageType, String> {
+
+    @Override
+    public String convertToDatabaseColumn(BannerMessageType bannerMessageType) {
+        if (bannerMessageType == null) {
+            return null;
+        }
+        return bannerMessageType.name()
+                .toLowerCase();
+    }
+
+    @Override
+    public BannerMessageType convertToEntityAttribute(String bannerMessageType) {
+        if (bannerMessageType == null) {
+            return null;
+        }
+        return BannerMessageType.valueOf(bannerMessageType.toUpperCase());
+    }
+}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierAffiliationIdentifierSchemeTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierAffiliationIdentifierSchemeTypeConverter.java
index ba8a0a43fb..7afc5975b1 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierAffiliationIdentifierSchemeTypeConverter.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierAffiliationIdentifierSchemeTypeConverter.java
@@ -8,13 +8,19 @@ import jakarta.persistence.Converter;
 public class IdentifierAffiliationIdentifierSchemeTypeConverter implements AttributeConverter<AffiliationIdentifierSchemeType, String> {
 
     @Override
-    public String convertToDatabaseColumn(AffiliationIdentifierSchemeType columnType) {
-        return columnType.name()
+    public String convertToDatabaseColumn(AffiliationIdentifierSchemeType affiliationIdentifierSchemeType) {
+        if (affiliationIdentifierSchemeType == null) {
+            return null;
+        }
+        return affiliationIdentifierSchemeType.name()
                 .toLowerCase();
     }
 
     @Override
-    public AffiliationIdentifierSchemeType convertToEntityAttribute(String columnType) {
-        return AffiliationIdentifierSchemeType.valueOf(columnType.toUpperCase());
+    public AffiliationIdentifierSchemeType convertToEntityAttribute(String affiliationIdentifierSchemeType) {
+        if (affiliationIdentifierSchemeType == null) {
+            return null;
+        }
+        return AffiliationIdentifierSchemeType.valueOf(affiliationIdentifierSchemeType.toUpperCase());
     }
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierDescriptionTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierDescriptionTypeConverter.java
index 767733862d..d426126a56 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierDescriptionTypeConverter.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierDescriptionTypeConverter.java
@@ -8,13 +8,19 @@ import jakarta.persistence.Converter;
 public class IdentifierDescriptionTypeConverter implements AttributeConverter<DescriptionType, String> {
 
     @Override
-    public String convertToDatabaseColumn(DescriptionType columnType) {
-        return columnType.name()
+    public String convertToDatabaseColumn(DescriptionType descriptionType) {
+        if (descriptionType == null) {
+            return null;
+        }
+        return descriptionType.name()
                 .toLowerCase();
     }
 
     @Override
-    public DescriptionType convertToEntityAttribute(String columnType) {
-        return DescriptionType.valueOf(columnType.toUpperCase());
+    public DescriptionType convertToEntityAttribute(String descriptionType) {
+        if (descriptionType == null) {
+            return null;
+        }
+        return DescriptionType.valueOf(descriptionType.toUpperCase());
     }
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierFunderTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierFunderTypeConverter.java
index 48d4200b20..c721447551 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierFunderTypeConverter.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierFunderTypeConverter.java
@@ -8,13 +8,19 @@ import jakarta.persistence.Converter;
 public class IdentifierFunderTypeConverter implements AttributeConverter<IdentifierFunderType, String> {
 
     @Override
-    public String convertToDatabaseColumn(IdentifierFunderType columnType) {
-        return columnType.name()
+    public String convertToDatabaseColumn(IdentifierFunderType identifierFunderType) {
+        if (identifierFunderType == null) {
+            return null;
+        }
+        return identifierFunderType.name()
                 .toLowerCase();
     }
 
     @Override
-    public IdentifierFunderType convertToEntityAttribute(String columnType) {
-        return IdentifierFunderType.valueOf(columnType.toUpperCase());
+    public IdentifierFunderType convertToEntityAttribute(String identifierFunderType) {
+        if (identifierFunderType == null) {
+            return null;
+        }
+        return IdentifierFunderType.valueOf(identifierFunderType.toUpperCase());
     }
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierIdentifierTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierIdentifierTypeConverter.java
index f44a393663..e78553256b 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierIdentifierTypeConverter.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierIdentifierTypeConverter.java
@@ -8,13 +8,19 @@ import jakarta.persistence.Converter;
 public class IdentifierIdentifierTypeConverter implements AttributeConverter<IdentifierType, String> {
 
     @Override
-    public String convertToDatabaseColumn(IdentifierType columnType) {
-        return columnType.name()
+    public String convertToDatabaseColumn(IdentifierType identifierType) {
+        if (identifierType == null) {
+            return null;
+        }
+        return identifierType.name()
                 .toLowerCase();
     }
 
     @Override
-    public IdentifierType convertToEntityAttribute(String columnType) {
-        return IdentifierType.valueOf(columnType.toUpperCase());
+    public IdentifierType convertToEntityAttribute(String identifierType) {
+        if (identifierType == null) {
+            return null;
+        }
+        return IdentifierType.valueOf(identifierType.toUpperCase());
     }
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameIdentifierSchemeTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameIdentifierSchemeTypeConverter.java
index 365177d783..e5b74326aa 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameIdentifierSchemeTypeConverter.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameIdentifierSchemeTypeConverter.java
@@ -8,13 +8,19 @@ import jakarta.persistence.Converter;
 public class IdentifierNameIdentifierSchemeTypeConverter implements AttributeConverter<NameIdentifierSchemeType, String> {
 
     @Override
-    public String convertToDatabaseColumn(NameIdentifierSchemeType columnType) {
-        return columnType.name()
+    public String convertToDatabaseColumn(NameIdentifierSchemeType nameIdentifierSchemeType) {
+        if (nameIdentifierSchemeType == null) {
+            return null;
+        }
+        return nameIdentifierSchemeType.name()
                 .toLowerCase();
     }
 
     @Override
-    public NameIdentifierSchemeType convertToEntityAttribute(String columnType) {
-        return NameIdentifierSchemeType.valueOf(columnType.toUpperCase());
+    public NameIdentifierSchemeType convertToEntityAttribute(String nameIdentifierSchemeType) {
+        if (nameIdentifierSchemeType == null) {
+            return null;
+        }
+        return NameIdentifierSchemeType.valueOf(nameIdentifierSchemeType.toUpperCase());
     }
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameTypeConverter.java
index 8eb9fc7afe..c43f26af31 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameTypeConverter.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameTypeConverter.java
@@ -9,13 +9,19 @@ import jakarta.persistence.Converter;
 public class IdentifierNameTypeConverter implements AttributeConverter<NameType, String> {
 
     @Override
-    public String convertToDatabaseColumn(NameType columnType) {
-        return columnType.name()
+    public String convertToDatabaseColumn(NameType nameType) {
+        if (nameType == null) {
+            return null;
+        }
+        return nameType.name()
                 .toLowerCase();
     }
 
     @Override
-    public NameType convertToEntityAttribute(String columnType) {
-        return NameType.valueOf(columnType.toUpperCase());
+    public NameType convertToEntityAttribute(String nameType) {
+        if (nameType == null) {
+            return null;
+        }
+        return NameType.valueOf(nameType.toUpperCase());
     }
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierRelatedTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierRelatedTypeConverter.java
index 1fef4cb8b2..93309f8049 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierRelatedTypeConverter.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierRelatedTypeConverter.java
@@ -8,13 +8,19 @@ import jakarta.persistence.Converter;
 public class IdentifierRelatedTypeConverter implements AttributeConverter<RelatedType, String> {
 
     @Override
-    public String convertToDatabaseColumn(RelatedType columnType) {
-        return columnType.name()
+    public String convertToDatabaseColumn(RelatedType relatedType) {
+        if (relatedType == null) {
+            return null;
+        }
+        return relatedType.name()
                 .toLowerCase();
     }
 
     @Override
-    public RelatedType convertToEntityAttribute(String columnType) {
-        return RelatedType.valueOf(columnType.toUpperCase());
+    public RelatedType convertToEntityAttribute(String relatedType) {
+        if (relatedType == null) {
+            return null;
+        }
+        return RelatedType.valueOf(relatedType.toUpperCase());
     }
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierVisibilityTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierVisibilityTypeConverter.java
index 756f73b847..f6e6329768 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierVisibilityTypeConverter.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierVisibilityTypeConverter.java
@@ -8,13 +8,19 @@ import jakarta.persistence.Converter;
 public class IdentifierVisibilityTypeConverter implements AttributeConverter<VisibilityType, String> {
 
     @Override
-    public String convertToDatabaseColumn(VisibilityType columnType) {
-        return columnType.name()
+    public String convertToDatabaseColumn(VisibilityType visibilityType) {
+        if (visibilityType == null) {
+            return null;
+        }
+        return visibilityType.name()
                 .toLowerCase();
     }
 
     @Override
-    public VisibilityType convertToEntityAttribute(String columnType) {
-        return VisibilityType.valueOf(columnType.toUpperCase());
+    public VisibilityType convertToEntityAttribute(String visibilityType) {
+        if (visibilityType == null) {
+            return null;
+        }
+        return VisibilityType.valueOf(visibilityType.toUpperCase());
     }
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/LanguageTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/LanguageTypeConverter.java
index 5d132af64d..dad10800f4 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/LanguageTypeConverter.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/LanguageTypeConverter.java
@@ -8,13 +8,19 @@ import jakarta.persistence.Converter;
 public class LanguageTypeConverter implements AttributeConverter<LanguageType, String> {
 
     @Override
-    public String convertToDatabaseColumn(LanguageType columnType) {
-        return columnType.name()
+    public String convertToDatabaseColumn(LanguageType languageType) {
+        if (languageType == null) {
+            return null;
+        }
+        return languageType.name()
                 .toLowerCase();
     }
 
     @Override
-    public LanguageType convertToEntityAttribute(String columnType) {
-        return LanguageType.valueOf(columnType.toUpperCase());
+    public LanguageType convertToEntityAttribute(String languageType) {
+        if (languageType == null) {
+            return null;
+        }
+        return LanguageType.valueOf(languageType.toUpperCase());
     }
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/TableColumnTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/TableColumnTypeConverter.java
index 7be348e8fd..f057f72332 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/TableColumnTypeConverter.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/TableColumnTypeConverter.java
@@ -8,13 +8,19 @@ import jakarta.persistence.Converter;
 public class TableColumnTypeConverter implements AttributeConverter<TableColumnType, String> {
 
     @Override
-    public String convertToDatabaseColumn(TableColumnType columnType) {
-        return columnType.name()
+    public String convertToDatabaseColumn(TableColumnType tableColumnType) {
+        if (tableColumnType == null) {
+            return null;
+        }
+        return tableColumnType.name()
                 .toLowerCase();
     }
 
     @Override
-    public TableColumnType convertToEntityAttribute(String columnType) {
-        return TableColumnType.valueOf(columnType.toUpperCase());
+    public TableColumnType convertToEntityAttribute(String tableColumnType) {
+        if (tableColumnType == null) {
+            return null;
+        }
+        return TableColumnType.valueOf(tableColumnType.toUpperCase());
     }
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java
index befcec9c73..70c5abd8d8 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java
@@ -1,5 +1,6 @@
 package at.tuwien.entities.maintenance;
 
+import at.tuwien.converters.BannerMessageTypeConverter;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
@@ -27,8 +28,8 @@ public class BannerMessage {
     @Column(updatable = false, nullable = false)
     private Long id;
 
-    @Enumerated(EnumType.STRING)
     @Column(nullable = false, columnDefinition = "enum('error', 'warning', 'info')")
+    @Convert(converter = BannerMessageTypeConverter.class)
     private BannerMessageType type;
 
     @Column(nullable = false)
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessageType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessageType.java
index 8d17965f48..fbfdab9711 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessageType.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessageType.java
@@ -1,13 +1,24 @@
-
 package at.tuwien.entities.maintenance;
 
 import lombok.Getter;
-import lombok.ToString;
 
 @Getter
-@ToString
 public enum BannerMessageType {
-    WARNING,
-    ERROR,
-    INFO;
+
+    WARNING("warning"),
+
+    ERROR("error"),
+
+    INFO("info");
+
+    private String name;
+
+    BannerMessageType(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public String toString() {
+        return this.name;
+    }
 }
\ No newline at end of file
-- 
GitLab