package dw.cli.utest;
import static org.mockito.Matchers.anyBoolean;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.io.IOException;
import dw.cli.StdinReader;
import dw.cli.commands.PagePutter;
import dw.xmlrpc.DokuJClient;
public class Test_PagePutter {
private DokuJClient _mockDokuJClient;
private PagePutter _sut;
private static final String PAGE_ID = "somePageId";
private static final String TEXT_ON_CMD_LINE = "some text on cmd line";
private static final String TEXT_ON_STDIN = "some text on stdin";
@org.junit.Before
public void before() throws IOException{
StdinReader mockStdinReader = mock(StdinReader.class);
_mockDokuJClient = mock(DokuJClient.class);
when(mockStdinReader.readStdin()).thenReturn(TEXT_ON_STDIN);
_sut = new PagePutter(false, mockStdinReader);
}
@org.junit.Test
public void shouldReadFromStdinIfThereIsTextOnTheCommandLine() throws Exception{
String[] args = new String[]{
PAGE_ID,
TEXT_ON_CMD_LINE
};
_sut.run(_mockDokuJClient, args);
verify(_mockDokuJClient).putPage(eq(PAGE_ID), eq(TEXT_ON_CMD_LINE), anyString(), anyBoolean());
}
@org.junit.Test
public void shouldReadFromStdinIfThereIsNoTextOnTheCommandLine() throws Exception {
String[] args = new String[]{
PAGE_ID
};
_sut.run(_mockDokuJClient, args);
verify(_mockDokuJClient).putPage(eq(PAGE_ID), eq(TEXT_ON_STDIN), anyString(), anyBoolean());
}
}