Java 17 Upgrade
[policy/models.git] / models-base / src / test / java / org / onap / policy / models / base / ExceptionsTest.java
index 92e928e..b92aed4 100644 (file)
@@ -1,6 +1,7 @@
-/*
+/*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019 Nordix Foundation.
+ * Copyright (C) 2019, 2021, 2023 Nordix Foundation.
+ * Modifications Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,34 +24,58 @@ package org.onap.policy.models.base;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 import java.io.IOException;
-
 import org.junit.Test;
+import org.onap.policy.models.errors.concepts.ErrorResponse;
 
 public class ExceptionsTest {
 
+    private static final String STRING_TEXT = "String";
+    private static final String MESSAGE = "Message";
+
     @Test
     public void test() {
-        assertNotNull(new PfModelException("Message"));
-        assertNotNull(new PfModelException("Message", "String"));
-        assertNotNull(new PfModelException("Message", new IOException()));
-        assertNotNull(new PfModelException("Message", new IOException(), "String"));
+        assertNotNull(new PfModelException(Response.Status.OK, MESSAGE));
+        assertNotNull(new PfModelException(Response.Status.OK, MESSAGE, STRING_TEXT));
+        assertNotNull(new PfModelException(Response.Status.OK, MESSAGE, new IOException()));
+        assertNotNull(new PfModelException(Response.Status.OK, MESSAGE, new IOException(), STRING_TEXT));
 
         String key = "A String";
-        PfModelException ae = new PfModelException("Message", new IOException("IO exception message"), key);
-        assertEquals("Message\ncaused by: Message\ncaused by: IO exception message", ae.getCascadedMessage());
+        PfModelException ae =
+            new PfModelException(Response.Status.OK, MESSAGE, new IOException("IO exception message"), key);
+        ErrorResponse errorResponse = ae.getErrorResponse();
+        assertEquals("Message\nIO exception message", String.join("\n", errorResponse.getErrorDetails()));
         assertEquals(key, ae.getObject());
 
-        assertNotNull(new PfModelRuntimeException("Message"));
-        assertNotNull(new PfModelRuntimeException("Message", "String"));
-        assertNotNull(new PfModelRuntimeException("Message", new IOException()));
-        assertNotNull(new PfModelRuntimeException("Message", new IOException(), "String"));
+        assertNotNull(new PfModelRuntimeException(Response.Status.OK, MESSAGE));
+        assertNotNull(new PfModelRuntimeException(Response.Status.OK, MESSAGE, STRING_TEXT));
+        assertNotNull(new PfModelRuntimeException(Response.Status.OK, MESSAGE, new IOException()));
+        assertNotNull(new PfModelRuntimeException(Response.Status.OK, MESSAGE, new IOException(), STRING_TEXT));
 
         String rkey = "A String";
-        PfModelRuntimeException re = new PfModelRuntimeException("Runtime Message",
-                        new IOException("IO runtime exception message"), rkey);
-        assertEquals("Runtime Message\ncaused by: Runtime Message\ncaused by: IO runtime exception message",
-                        re.getCascadedMessage());
+        PfModelRuntimeException re = new PfModelRuntimeException(Response.Status.OK, "Runtime Message",
+            new IOException("IO runtime exception message"), rkey);
+        errorResponse = re.getErrorResponse();
+        assertEquals("Runtime Message\nIO runtime exception message",
+            String.join("\n", errorResponse.getErrorDetails()));
         assertEquals(key, re.getObject());
+
+        PfModelRuntimeException pfre = new PfModelRuntimeException(ae);
+        assertEquals(ae.getErrorResponse().getResponseCode(), pfre.getErrorResponse().getResponseCode());
+        assertEquals(ae.getMessage(), pfre.getMessage());
+
+        try {
+            try {
+                throw new PfModelException(Status.BAD_GATEWAY, "An Exception");
+            } catch (PfModelException pfme) {
+                throw new PfModelRuntimeException(pfme);
+            }
+        } catch (PfModelRuntimeException pfmre) {
+            assertEquals(Status.BAD_GATEWAY, pfmre.getErrorResponse().getResponseCode());
+            assertEquals("An Exception", pfmre.getMessage());
+            assertEquals(PfModelException.class.getName(), pfmre.getCause().getClass().getName());
+        }
     }
 }