refactor: unwrap invocationTargetException (#1718)

This commit is contained in:
Roland Praml
2019-05-21 00:37:03 +12:00
committed by Rob Bygrave
parent dcd81a857d
commit cf4d45befb
3 changed files with 194 additions and 3 deletions
@@ -0,0 +1,47 @@
package org.tests.lifecycle;
import io.ebean.BaseTestCase;
import io.ebean.DB;
import org.tests.model.basic.EBasicWithLifecycleExceptions;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import java.io.IOException;
import javax.persistence.PersistenceException;
public class TestLifecycleExceptions extends BaseTestCase {
@Test
public void prePersist_unchecked() {
EBasicWithLifecycleExceptions bean = new EBasicWithLifecycleExceptions();
bean.preException = new IndexOutOfBoundsException();
assertThatThrownBy(() -> DB.save(bean)).isInstanceOf(IndexOutOfBoundsException.class);
}
@Test
public void prepersist_checked() {
EBasicWithLifecycleExceptions bean = new EBasicWithLifecycleExceptions();
bean.preException = new IOException();
assertThatThrownBy(() -> DB.save(bean))
.isInstanceOf(PersistenceException.class)
.hasCauseInstanceOf(IOException.class);
}
@Test
public void postPersist_unchecked() {
EBasicWithLifecycleExceptions bean = new EBasicWithLifecycleExceptions();
bean.postException = new IndexOutOfBoundsException();
assertThatThrownBy(() -> DB.save(bean)).isInstanceOf(IndexOutOfBoundsException.class);
}
@Test
public void postpersist_checked() {
EBasicWithLifecycleExceptions bean = new EBasicWithLifecycleExceptions();
bean.postException = new IOException();
assertThatThrownBy(() -> DB.save(bean))
.isInstanceOf(PersistenceException.class)
.hasCauseInstanceOf(IOException.class);
}
}