From 1026e349c456c7f58bcb5341cc52ea50944c2d24 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Thu, 12 Sep 2013 08:40:54 -0700 Subject: [PATCH] Prevent Mongo sample tests from failing in CI --- .../mongo/SampleMongoApplicationTests.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/spring-boot-samples/spring-boot-sample-data-mongo/src/test/java/org/springframework/boot/sample/data/mongo/SampleMongoApplicationTests.java b/spring-boot-samples/spring-boot-sample-data-mongo/src/test/java/org/springframework/boot/sample/data/mongo/SampleMongoApplicationTests.java index d962084e42..e2e893ff47 100644 --- a/spring-boot-samples/spring-boot-sample-data-mongo/src/test/java/org/springframework/boot/sample/data/mongo/SampleMongoApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-data-mongo/src/test/java/org/springframework/boot/sample/data/mongo/SampleMongoApplicationTests.java @@ -18,9 +18,12 @@ package org.springframework.boot.sample.data.mongo; import static org.junit.Assert.assertTrue; +import java.io.IOException; + import org.junit.Rule; import org.junit.Test; import org.springframework.boot.OutputCapture; +import org.springframework.core.NestedCheckedException; /** * Tests for {@link SampleMongoApplication}. @@ -34,9 +37,28 @@ public class SampleMongoApplicationTests { @Test public void testDefaultSettings() throws Exception { - SampleMongoApplication.main(new String[0]); + try { + SampleMongoApplication.main(new String[0]); + } catch (IllegalStateException e) { + if (serverNotRunning(e)) { + return; + } + } String output = this.outputCapture.toString(); assertTrue("Wrong output: " + output, output.contains("firstName='Alice', lastName='Smith'")); } + private boolean serverNotRunning(IllegalStateException e) { + @SuppressWarnings("serial") + NestedCheckedException nested = new NestedCheckedException("failed", e) { + }; + if (nested.contains(IOException.class)) { + Throwable root = nested.getRootCause(); + if (root.getMessage().contains("couldn't connect to [localhost")) { + return true; + } + } + return false; + } + }