package dw.cli.commands.itest;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import dw.cli.itest.TestHelper;
public class Test_PageGetterAndPutter extends TestHelper {
private final String pageId = "ns1:dummy";
@org.junit.Before
public void setUp() throws Exception{
runWithArguments("putPage", pageId, "");
}
@org.junit.Test
public void putPageAndgetPage() throws Exception{
final String content1 = "content1";
final String content2 = "content2";
assertSuccess("", runWithArguments("putPage", pageId, content1));
assertSuccess(content1, runWithArguments("getPage", pageId));
assertSuccess("", runWithArguments("putPage", pageId, content2));
assertSuccess(content2, runWithArguments("getPage", pageId));
}
@org.junit.Test
public void putPageWithSeveralParts() throws Exception {
runWithArguments("putPage", pageId, "toto", "tata");
assertSuccess("toto tata", runWithArguments("getPage", pageId));
}
@org.junit.Test
public void canPutAPageWithASummary() throws Exception {
//Sleep because DW behaves badly wrt revisions,when there are more than 1 version per second
Thread.sleep(1000, 0);
assertSuccess("", runWithArguments("putPage", pageId, "--summary", "my summary 1", "some content 2"));
assertLastModificationSummary("my summary 1", runWithArguments("getPageVersions", pageId));
//Sleep because DW behaves badly wrt revisions,when there are more than 1 version per second
Thread.sleep(1000, 0);
assertSuccess("", runWithArguments("putPage", pageId, "--summary", "my other summary", "some other content"));
assertLastModificationSummary("my other summary", runWithArguments("getPageVersions", pageId));
}
@org.junit.Test
public void shouldReadFromStdinIfThereIsNoTextOnTheCommandLine() throws Exception {
String data = "Some text on stdin";
InputStream stdin = System.in;
try {
System.setIn(new ByteArrayInputStream(data.getBytes()));
runWithArguments("putPage", pageId);
assertSuccess("Some text on stdin", runWithArguments("getPage", pageId));
} finally {
System.setIn(stdin);
}
}
}