import static com.google.common.base.Optional.of;
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.database.PostBuilder.PostCreated;
+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.allOf;
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.lessThanOrEqualTo;
-import static org.hamcrest.Matchers.notNullValue;
import static org.hamcrest.Matchers.nullValue;
import static org.mockito.Mockito.when;
-import net.pterodactylus.sone.core.Core;
+import net.pterodactylus.sone.data.Mocks;
import net.pterodactylus.sone.data.Post;
import net.pterodactylus.sone.data.Sone;
-import net.pterodactylus.sone.database.Database;
import net.pterodactylus.sone.freenet.SimpleFieldSetBuilder;
import net.pterodactylus.sone.freenet.fcp.Command.Response;
import net.pterodactylus.sone.freenet.fcp.FcpException;
public class CreatePostCommandTest {
private final long now = currentTimeMillis();
- private final Database database = mockDatabase();
- private final Core core = mockCore(database);
- private final CreatePostCommand createPostCommand = new CreatePostCommand(core);
+ private final Mocks mocks = new Mocks();
+ private final CreatePostCommand createPostCommand = new CreatePostCommand(mocks.core);
@Test
public void verifyThatCreatingAPostWorks() throws FcpException {
- Sone sone = mockLocalSone(core, "Sone");
- mockLocalSone(core, "OtherSone");
+ Sone sone = mocks.mockSone("Sone").local().create();
+ mocks.mockSone("OtherSone").local().create();
CapturingPostCreated capturingPostCreated = new CapturingPostCreated();
- when(core.postCreated()).thenReturn(Optional.<PostCreated>of(capturingPostCreated));
+ when(mocks.core.postCreated()).thenReturn(Optional.<PostCreated>of(capturingPostCreated));
SimpleFieldSet createPostFieldSet = new SimpleFieldSetBuilder()
.put("Sone", "Sone")
.put("Recipient", "OtherSone")
.get();
Response response = createPostCommand.execute(createPostFieldSet, null, DIRECT);
- assertThat(response, notNullValue());
- assertThat(capturingPostCreated.post, notNullValue());
- assertThat(response.getReplyParameters().get("Message"), is("PostCreated"));
+ verifyAnswer(response, "PostCreated");
assertThat(response.getReplyParameters().get("Post"), is(capturingPostCreated.post.getId()));
assertThat(capturingPostCreated.post.getSone(), is(sone));
assertThat(capturingPostCreated.post.getRecipientId(), is(of("OtherSone")));
@Test
public void verifyThatCreatingAPostWithoutRecipientWorks() throws FcpException {
- Sone sone = mockLocalSone(core, "Sone");
+ Sone sone = mocks.mockSone("Sone").local().create();
CapturingPostCreated capturingPostCreated = new CapturingPostCreated();
- when(core.postCreated()).thenReturn(Optional.<PostCreated>of(capturingPostCreated));
+ when(mocks.core.postCreated()).thenReturn(Optional.<PostCreated>of(capturingPostCreated));
SimpleFieldSet createPostFieldSet = new SimpleFieldSetBuilder()
.put("Sone", "Sone")
.put("Text", "Text of the post.")
.get();
Response response = createPostCommand.execute(createPostFieldSet, null, DIRECT);
- assertThat(response, notNullValue());
- assertThat(capturingPostCreated.post, notNullValue());
- assertThat(response.getReplyParameters().get("Message"), is("PostCreated"));
+ verifyAnswer(response, "PostCreated");
assertThat(response.getReplyParameters().get("Post"), is(capturingPostCreated.post.getId()));
assertThat(capturingPostCreated.post.getSone(), is(sone));
assertThat(capturingPostCreated.post.getRecipientId(), is(Optional.<String>absent()));
@Test
public void verifyThatCreatingAPostDirectedToTheSendingSoneCausesAnError() throws FcpException {
- mockLocalSone(core, "Sone");
+ mocks.mockSone("Sone").local().create();
CapturingPostCreated capturingPostCreated = new CapturingPostCreated();
- when(core.postCreated()).thenReturn(Optional.<PostCreated>of(capturingPostCreated));
+ when(mocks.core.postCreated()).thenReturn(Optional.<PostCreated>of(capturingPostCreated));
SimpleFieldSet createPostFieldSet = new SimpleFieldSetBuilder()
.put("Sone", "Sone")
.put("Text", "Text of the post.")
.get();
Response response = createPostCommand.execute(createPostFieldSet, null, DIRECT);
- assertThat(response, notNullValue());
- assertThat(response.getReplyParameters().get("Message"), is("Error"));
+ verifyAnswer(response, "Error");
assertThat(capturingPostCreated.post, nullValue());
}
@Test(expected = FcpException.class)
public void verifyThatCreatingAPostWithoutTextCausesAnError() throws FcpException {
- mockLocalSone(core, "Sone");
+ mocks.mockSone("Sone").create();
CapturingPostCreated capturingPostCreated = new CapturingPostCreated();
- when(core.postCreated()).thenReturn(Optional.<PostCreated>of(capturingPostCreated));
+ when(mocks.core.postCreated()).thenReturn(Optional.<PostCreated>of(capturingPostCreated));
SimpleFieldSet createPostFieldSet = new SimpleFieldSetBuilder()
.put("Sone", "Sone")
@Test(expected = FcpException.class)
public void verifyThatCreatingAPostWithoutSoneCausesAnError() throws FcpException {
- mockLocalSone(core, "Sone");
+ mocks.mockSone("Sone").local().create();
CapturingPostCreated capturingPostCreated = new CapturingPostCreated();
- when(core.postCreated()).thenReturn(Optional.<PostCreated>of(capturingPostCreated));
+ when(mocks.core.postCreated()).thenReturn(Optional.<PostCreated>of(capturingPostCreated));
SimpleFieldSet createPostFieldSet = new SimpleFieldSetBuilder()
.put("Text", "Text of the post.")