package org.netmelody.cieye.server.response.responder.test; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.startsWith; import java.io.IOException; import org.apache.commons.io.IOUtils; import org.jmock.Expectations; import org.jmock.Mockery; import org.junit.Test; import org.netmelody.cieye.core.domain.CiServerType; import org.netmelody.cieye.core.domain.Feature; import org.netmelody.cieye.core.domain.Landscape; import org.netmelody.cieye.core.domain.TargetDetailGroup; import org.netmelody.cieye.server.CiSpyIntermediary; import org.netmelody.cieye.server.TargetGroupBriefing; import org.netmelody.cieye.server.response.CiEyeResponse; import org.netmelody.cieye.server.response.Prison; import org.netmelody.cieye.server.response.responder.LandscapeObservationResponder; public final class LandscapeObservationResponderTest { private final Mockery context = new Mockery(); private final CiSpyIntermediary spyIntermediary = context.mock(CiSpyIntermediary.class); private final Feature feature = new Feature("F", "E", new CiServerType("J")); private final LandscapeObservationResponder responder = new LandscapeObservationResponder(new Landscape("L", feature), spyIntermediary, new Prison()); @Test public void respondsWithCorrectJsonWhenNoTargetsArePresent() throws IOException { final TargetGroupBriefing briefing = new TargetGroupBriefing(new TargetDetailGroup(), 0L); context.checking(new Expectations() {{ allowing(spyIntermediary).briefingOn(feature); will(returnValue(briefing)); }}); final CiEyeResponse response = responder.respond(null); assertThat(IOUtils.toString(response.inputStream()), startsWith("{\"targets\":[]}")); } }