package io.dropwizard.servlets.tasks;
import com.google.common.collect.ImmutableMultimap;
import org.junit.Test;
import java.io.PrintWriter;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@SuppressWarnings("CallToSystemGC")
public class GarbageCollectionTaskTest {
private final Runtime runtime = mock(Runtime.class);
private final PrintWriter output = mock(PrintWriter.class);
private final Task task = new GarbageCollectionTask(runtime);
@Test
public void runsOnceWithNoParameters() throws Exception {
task.execute(ImmutableMultimap.of(), output);
verify(runtime, times(1)).gc();
}
@Test
public void usesTheFirstRunsParameter() throws Exception {
task.execute(ImmutableMultimap.of("runs", "3", "runs", "2"), output);
verify(runtime, times(3)).gc();
}
@Test
public void defaultsToOneRunIfTheQueryParamDoesNotParse() throws Exception {
task.execute(ImmutableMultimap.of("runs", "$"), output);
verify(runtime, times(1)).gc();
}
}