From 9f720a5d90673c09952c5e23d900f346dc393ee4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tibor=20Cs=C3=B6g=C3=B6r?= Date: Thu, 4 May 2017 16:51:52 +0200 Subject: [PATCH] add regression test for #335 --- .../FailureDetectingExternalResourceTest.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 core/src/test/java/org/testcontainers/containers/FailureDetectingExternalResourceTest.java diff --git a/core/src/test/java/org/testcontainers/containers/FailureDetectingExternalResourceTest.java b/core/src/test/java/org/testcontainers/containers/FailureDetectingExternalResourceTest.java new file mode 100644 index 00000000000..47d594c4c02 --- /dev/null +++ b/core/src/test/java/org/testcontainers/containers/FailureDetectingExternalResourceTest.java @@ -0,0 +1,28 @@ +package org.testcontainers.containers; + +import org.junit.Test; +import org.junit.runner.Description; +import org.junit.runners.model.Statement; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; + +public class FailureDetectingExternalResourceTest { + + @Test + public void finishedIsCalledForCleanupIfStartingThrows() throws Throwable { + FailureDetectingExternalResource res = spy(FailureDetectingExternalResource.class); + Statement stmt = res.apply(mock(Statement.class), Description.EMPTY); + doThrow(new RuntimeException()).when(res).starting(any()); + try { + stmt.evaluate(); + } catch (Throwable t) { + // ignore + } + verify(res).starting(any()); + verify(res).finished(any()); + } + +}