2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
6 * Modifications Copyright (C) 2023 Nordix Foundation.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.pap.main.comm;
24 import static org.assertj.core.api.Assertions.assertThat;
26 import java.sql.SQLIntegrityConstraintViolationException;
27 import org.hibernate.HibernateException;
28 import org.junit.Test;
29 import org.onap.policy.pap.main.PolicyPapApplication;
30 import org.springframework.boot.test.context.SpringBootTest;
33 classes = PolicyPapApplication.class,
34 webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
39 public class PdpStatusMessageHandlerTest {
42 public void testIsDuplicateKeyException() {
47 assertThat(PdpStatusMessageHandler.isDuplicateKeyException(null, HibernateException.class)).isFalse();
50 assertThat(PdpStatusMessageHandler.isDuplicateKeyException(
51 new Exception(), HibernateException.class))
54 // cause is also plain
55 assertThat(PdpStatusMessageHandler.isDuplicateKeyException(
57 new Exception()), HibernateException.class))
61 assertThat(PdpStatusMessageHandler.isDuplicateKeyException(
62 new SQLIntegrityConstraintViolationException(), HibernateException.class))
66 assertThat(PdpStatusMessageHandler.isDuplicateKeyException(
68 new SQLIntegrityConstraintViolationException()), HibernateException.class))
71 // eclipselink exception, no internal exception
72 assertThat(PdpStatusMessageHandler.isDuplicateKeyException(
73 new MyHibernateException(), HibernateException.class))
76 // eclipselink exception, cause is plain
77 assertThat(PdpStatusMessageHandler.isDuplicateKeyException(
78 new MyHibernateException(
79 new Exception()), HibernateException.class))
82 // eclipselink exception, cause is dup
83 assertThat(PdpStatusMessageHandler.isDuplicateKeyException(
84 new MyHibernateException(
85 new SQLIntegrityConstraintViolationException()), HibernateException.class))
88 // multiple cause both inside and outside of the eclipselink exception
89 assertThat(PdpStatusMessageHandler.isDuplicateKeyException(
92 new MyHibernateException(
94 new SQLIntegrityConstraintViolationException())))), HibernateException.class))
100 public static class MyHibernateException extends HibernateException {
101 private static final long serialVersionUID = 1L;
103 public MyHibernateException() {
107 public MyHibernateException(Exception exception) {