package net.pterodactylus.sone.fcp;
import static java.lang.System.currentTimeMillis;
-import static net.pterodactylus.sone.data.Mocks.mockCore;
-import static net.pterodactylus.sone.data.Mocks.mockDatabase;
-import static net.pterodactylus.sone.data.Mocks.mockLocalSone;
-import static net.pterodactylus.sone.data.Mocks.mockPost;
+import static net.pterodactylus.sone.Verifiers.verifyAnswer;
import static net.pterodactylus.sone.freenet.fcp.Command.AccessType.DIRECT;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
import static org.hamcrest.core.AllOf.allOf;
import static org.mockito.Mockito.when;
-import net.pterodactylus.sone.core.Core;
+import net.pterodactylus.sone.data.Mocks;
import net.pterodactylus.sone.data.PostReply;
import net.pterodactylus.sone.data.Sone;
-import net.pterodactylus.sone.database.Database;
import net.pterodactylus.sone.database.PostReplyBuilder.PostReplyCreated;
import net.pterodactylus.sone.freenet.SimpleFieldSetBuilder;
import net.pterodactylus.sone.freenet.fcp.Command.Response;
public class CreateReplyCommandTest {
private final long now = currentTimeMillis();
- private final Database database = mockDatabase();
- private final Core core = mockCore(database);
- private final CreateReplyCommand createReplyCommand = new CreateReplyCommand(core);
+ private final Mocks mocks = new Mocks();
+ private final CreateReplyCommand createReplyCommand = new CreateReplyCommand(mocks.core);
@Test
public void verifyThatCreatingAFullySpecifiedReplyWorks() throws FcpException {
- Sone sone = mockLocalSone(core, "SoneId");
- mockPost(core, "PostId");
+ Sone sone = mocks.mockSone("SoneId").local().create();
+ mocks.mockPost(sone, "PostId").create();
CapturingPostReplyCreated capturingPostReplyCreated = new CapturingPostReplyCreated();
- when(core.postReplyCreated()).thenReturn(Optional.<PostReplyCreated>of(capturingPostReplyCreated));
+ when(mocks.core.postReplyCreated()).thenReturn(Optional.<PostReplyCreated>of(capturingPostReplyCreated));
SimpleFieldSet createReplyFieldSet = new SimpleFieldSetBuilder()
.put("Message", "CreateReply")
.put("Sone", "SoneId")
.put("Text", "Text of the reply.")
.get();
Response response = createReplyCommand.execute(createReplyFieldSet, null, DIRECT);
- assertThat(response, notNullValue());
+ verifyAnswer(response, "ReplyCreated");
assertThat(capturingPostReplyCreated.postReply, notNullValue());
assertThat(capturingPostReplyCreated.postReply.getId(), notNullValue());
assertThat(capturingPostReplyCreated.postReply.getPostId(), is("PostId"));
assertThat(capturingPostReplyCreated.postReply.getSone(), is(sone));
assertThat(capturingPostReplyCreated.postReply.getTime(), allOf(greaterThanOrEqualTo(now), lessThanOrEqualTo(currentTimeMillis())));
assertThat(capturingPostReplyCreated.postReply.getText(), is("Text of the reply."));
- assertThat(response.getReplyParameters(), notNullValue());
- assertThat(response.getReplyParameters().get("Message"), is("ReplyCreated"));
assertThat(response.getReplyParameters().get("Reply"), is(capturingPostReplyCreated.postReply.getId()));
}
@Test(expected = FcpException.class)
public void verifyThatCreatingAReplyWithoutSoneCausesAnError() throws FcpException {
- mockPost(core, "PostId");
+ Sone sone = mocks.mockSone("SoneId").local().create();
+ mocks.mockPost(sone, "PostId").create();
CapturingPostReplyCreated capturingPostReplyCreated = new CapturingPostReplyCreated();
- when(core.postReplyCreated()).thenReturn(Optional.<PostReplyCreated>of(capturingPostReplyCreated));
+ when(mocks.core.postReplyCreated()).thenReturn(Optional.<PostReplyCreated>of(capturingPostReplyCreated));
SimpleFieldSet createReplyFieldSet = new SimpleFieldSetBuilder()
.put("Message", "CreateReply")
.put("Post", "PostId")
@Test(expected = FcpException.class)
public void verifyThatCreatingAReplyWithoutPostCausesAnError() throws FcpException {
- mockLocalSone(core, "SoneId");
+ mocks.mockSone("SoneId").local().create();
CapturingPostReplyCreated capturingPostReplyCreated = new CapturingPostReplyCreated();
- when(core.postReplyCreated()).thenReturn(Optional.<PostReplyCreated>of(capturingPostReplyCreated));
+ when(mocks.core.postReplyCreated()).thenReturn(Optional.<PostReplyCreated>of(capturingPostReplyCreated));
SimpleFieldSet createReplyFieldSet = new SimpleFieldSetBuilder()
.put("Message", "CreateReply")
.put("Sone", "SoneId")
@Test(expected = FcpException.class)
public void verifyThatCreatingAReplyWithoutTextCausesAnError() throws FcpException {
- mockLocalSone(core, "SoneId");
- mockPost(core, "PostId");
+ Sone sone = mocks.mockSone("SoneId").local().create();
+ mocks.mockPost(sone, "PostId").create();
CapturingPostReplyCreated capturingPostReplyCreated = new CapturingPostReplyCreated();
- when(core.postReplyCreated()).thenReturn(Optional.<PostReplyCreated>of(capturingPostReplyCreated));
+ when(mocks.core.postReplyCreated()).thenReturn(Optional.<PostReplyCreated>of(capturingPostReplyCreated));
SimpleFieldSet createReplyFieldSet = new SimpleFieldSetBuilder()
.put("Message", "CreateReply")
.put("Sone", "SoneId")