45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
|
package com.moparisthebest.jdbc;
|
||
|
|
||
|
import org.junit.Test;
|
||
|
|
||
|
import java.io.IOException;
|
||
|
|
||
|
import static org.junit.Assert.*;
|
||
|
|
||
|
public class WrappingCloseableTest {
|
||
|
|
||
|
@Test
|
||
|
public void test() throws IOException {
|
||
|
final Closed parent = new SimpleCloseable("parent");
|
||
|
final Closed child = new SimpleCloseable("child");
|
||
|
|
||
|
assertFalse(parent.isClosed());
|
||
|
assertEquals("parent", parent.name());
|
||
|
|
||
|
assertFalse(child.isClosed());
|
||
|
assertEquals("child", child.name());
|
||
|
|
||
|
final Closed wrapped = WrappingCloseable.wrap(child, Closed.class, parent);
|
||
|
// when wrapped is closed, it should close child and then parent
|
||
|
|
||
|
assertFalse(parent.isClosed());
|
||
|
assertEquals("parent", parent.name());
|
||
|
|
||
|
assertFalse(child.isClosed());
|
||
|
assertEquals("child", child.name());
|
||
|
|
||
|
assertFalse(wrapped.isClosed());
|
||
|
assertEquals("child", wrapped.name());
|
||
|
|
||
|
wrapped.close();
|
||
|
|
||
|
assertTrue(parent.isClosed());
|
||
|
assertEquals("parent", parent.name());
|
||
|
|
||
|
assertTrue(child.isClosed());
|
||
|
assertEquals("child", child.name());
|
||
|
|
||
|
assertTrue(wrapped.isClosed());
|
||
|
assertEquals("child", wrapped.name());
|
||
|
}
|
||
|
}
|