X-Git-Url: https://git.pterodactylus.net/?p=tbgof.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Ftbgof%2Fcore%2FCoreTest.java;fp=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Ftbgof%2Fcore%2FCoreTest.java;h=860533919bb28f4579a935b9e8a5fc5d514f081d;hp=0000000000000000000000000000000000000000;hb=0428deb0f9c6399318eddd1caa38e3a1bf1e590f;hpb=393f89f40446d86f97afefef3f7c71ec40ab0321 diff --git a/src/test/java/net/pterodactylus/tbgof/core/CoreTest.java b/src/test/java/net/pterodactylus/tbgof/core/CoreTest.java new file mode 100644 index 0000000..8605339 --- /dev/null +++ b/src/test/java/net/pterodactylus/tbgof/core/CoreTest.java @@ -0,0 +1,52 @@ +package net.pterodactylus.tbgof.core; + +import java.util.concurrent.atomic.AtomicBoolean; + +import com.google.common.util.concurrent.MoreExecutors; +import com.google.common.util.concurrent.Service.Listener; +import com.google.common.util.concurrent.Service.State; +import org.hamcrest.MatcherAssert; +import org.hamcrest.Matchers; +import org.junit.Before; +import org.junit.Test; + +/** + * Unit test for {@link Core}. + * + * @author David Roden + */ +public class CoreTest { + + private final Core core = new Core(); + private final AtomicBoolean started = new AtomicBoolean(); + private final AtomicBoolean stopped = new AtomicBoolean(); + + @Before + public void setupCoreListener() { + core.addListener(new Listener() { + @Override + public void running() { + started.set(true); + } + + @Override + public void terminated(State from) { + stopped.set(true); + } + }, MoreExecutors.directExecutor()); + } + + @Test + public void coreCanStartUp() { + core.startAsync().awaitRunning(); + MatcherAssert.assertThat(started.get(), Matchers.is(true)); + } + + @Test + public void coreCanShutDown() { + core.startAsync().awaitRunning(); + core.stopAsync().awaitTerminated(); + MatcherAssert.assertThat(stopped.get(), Matchers.is(true)); + } + +}