From 27a169c6e29ff68b1e7022cba8ffb08d097e43cb Mon Sep 17 00:00:00 2001 From: akwizgran <michael@briarproject.org> Date: Fri, 24 Aug 2018 11:27:53 +0100 Subject: [PATCH] Minimise use of message constructor. --- .../briarproject/bramble/test/TestUtils.java | 5 +- .../client/BdfMessageValidatorTest.java | 22 +-- .../bramble/client/ClientHelperImplTest.java | 10 +- .../bramble/db/DatabaseComponentImplTest.java | 30 +-- .../bramble/db/JdbcDatabaseTest.java | 119 +++++------- .../TransportPropertyManagerImplTest.java | 22 +-- .../sync/SimplexOutgoingSessionTest.java | 3 +- .../sync/ValidationManagerImplTest.java | 183 ++++++++---------- .../briar/blog/BlogManagerImplTest.java | 59 +++--- .../briar/blog/BlogPostValidatorTest.java | 18 +- .../briar/feed/FeedManagerImplTest.java | 12 +- .../introduction/MessageEncoderTest.java | 11 +- .../messaging/MessageSizeIntegrationTest.java | 10 +- .../AbstractProtocolEngineTest.java | 112 +++++------ .../invitation/CreatorProtocolEngineTest.java | 6 +- .../GroupInvitationManagerImplTest.java | 13 +- .../invitation/InviteeProtocolEngineTest.java | 4 +- .../sharing/BlogSharingManagerImplTest.java | 5 +- 18 files changed, 284 insertions(+), 360 deletions(-) diff --git a/bramble-api/src/test/java/org/briarproject/bramble/test/TestUtils.java b/bramble-api/src/test/java/org/briarproject/bramble/test/TestUtils.java index c77fde6e99..5bcf28d779 100644 --- a/bramble-api/src/test/java/org/briarproject/bramble/test/TestUtils.java +++ b/bramble-api/src/test/java/org/briarproject/bramble/test/TestUtils.java @@ -40,6 +40,7 @@ public class TestUtils { private static final AtomicInteger nextTestDir = new AtomicInteger((int) (Math.random() * 1000 * 1000)); private static final Random random = new Random(); + private static final long timestamp = System.currentTimeMillis(); public static File getTestDirectory() { int name = nextTestDir.getAndIncrement(); @@ -101,9 +102,8 @@ public class TestUtils { String name = getRandomString(nameLength); byte[] publicKey = getRandomBytes(MAX_PUBLIC_KEY_LENGTH); byte[] privateKey = getRandomBytes(MAX_PUBLIC_KEY_LENGTH); - long created = System.currentTimeMillis(); return new LocalAuthor(id, FORMAT_VERSION, name, publicKey, privateKey, - created); + timestamp); } public static Author getAuthor() { @@ -137,7 +137,6 @@ public class TestUtils { public static Message getMessage(GroupId groupId, int rawLength) { MessageId id = new MessageId(getRandomId()); byte[] raw = getRandomBytes(rawLength); - long timestamp = System.currentTimeMillis(); return new Message(id, groupId, timestamp, raw); } diff --git a/bramble-core/src/test/java/org/briarproject/bramble/client/BdfMessageValidatorTest.java b/bramble-core/src/test/java/org/briarproject/bramble/client/BdfMessageValidatorTest.java index 0773562642..0845586eaa 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/client/BdfMessageValidatorTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/client/BdfMessageValidatorTest.java @@ -18,6 +18,8 @@ import org.junit.Test; import static org.briarproject.bramble.api.sync.SyncConstants.MESSAGE_HEADER_LENGTH; import static org.briarproject.bramble.api.transport.TransportConstants.MAX_CLOCK_DIFFERENCE; +import static org.briarproject.bramble.test.TestUtils.getMessage; +import static org.briarproject.bramble.test.TestUtils.getRandomBytes; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; @@ -28,8 +30,7 @@ public class BdfMessageValidatorTest extends ValidatorTestCase { new BdfMessageValidator(clientHelper, metadataEncoder, clock) { @Override protected BdfMessageContext validateMessage(Message m, Group g, - BdfList body) - throws InvalidMessageException, FormatException { + BdfList body) { throw new AssertionError(); } }; @@ -69,7 +70,7 @@ public class BdfMessageValidatorTest extends ValidatorTestCase { metadataEncoder, clock) { @Override protected BdfMessageContext validateMessage(Message m, Group g, - BdfList b) throws InvalidMessageException, FormatException { + BdfList b) { assertSame(message, m); assertSame(group, g); assertSame(body, b); @@ -83,11 +84,12 @@ public class BdfMessageValidatorTest extends ValidatorTestCase { @Test(expected = InvalidMessageException.class) public void testRejectsTooShortMessage() throws Exception { - byte[] invalidRaw = new byte[MESSAGE_HEADER_LENGTH]; + byte[] invalidRaw = getRandomBytes(MESSAGE_HEADER_LENGTH); // Use a mock message so the length of the raw message can be invalid Message invalidMessage = context.mock(Message.class); context.checking(new Expectations() {{ + //noinspection ResultOfMethodCallIgnored oneOf(invalidMessage).getTimestamp(); will(returnValue(timestamp)); oneOf(clock).currentTimeMillis(); @@ -101,15 +103,13 @@ public class BdfMessageValidatorTest extends ValidatorTestCase { @Test public void testAcceptsMinLengthMessage() throws Exception { - byte[] shortRaw = new byte[MESSAGE_HEADER_LENGTH + 1]; - Message shortMessage = - new Message(messageId, groupId, timestamp, shortRaw); + Message shortMessage = getMessage(groupId, MESSAGE_HEADER_LENGTH + 1); context.checking(new Expectations() {{ oneOf(clock).currentTimeMillis(); will(returnValue(timestamp)); - oneOf(clientHelper).toList(shortRaw, MESSAGE_HEADER_LENGTH, - shortRaw.length - MESSAGE_HEADER_LENGTH); + oneOf(clientHelper).toList(shortMessage.getRaw(), + MESSAGE_HEADER_LENGTH, 1); will(returnValue(body)); oneOf(metadataEncoder).encode(dictionary); will(returnValue(meta)); @@ -120,7 +120,7 @@ public class BdfMessageValidatorTest extends ValidatorTestCase { metadataEncoder, clock) { @Override protected BdfMessageContext validateMessage(Message m, Group g, - BdfList b) throws InvalidMessageException, FormatException { + BdfList b) { assertSame(shortMessage, m); assertSame(group, g); assertSame(body, b); @@ -160,7 +160,7 @@ public class BdfMessageValidatorTest extends ValidatorTestCase { metadataEncoder, clock) { @Override protected BdfMessageContext validateMessage(Message m, Group g, - BdfList b) throws InvalidMessageException, FormatException { + BdfList b) throws FormatException { throw new FormatException(); } }; diff --git a/bramble-core/src/test/java/org/briarproject/bramble/client/ClientHelperImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/client/ClientHelperImplTest.java index dec1e11002..abdce2893c 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/client/ClientHelperImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/client/ClientHelperImplTest.java @@ -39,6 +39,7 @@ import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_AUTHOR_N import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_PUBLIC_KEY_LENGTH; import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_SIGNATURE_LENGTH; import static org.briarproject.bramble.test.TestUtils.getAuthor; +import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getRandomBytes; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.util.StringUtils.getRandomString; @@ -67,11 +68,10 @@ public class ClientHelperImplTest extends BrambleTestCase { private final GroupId groupId = new GroupId(getRandomId()); private final BdfDictionary dictionary = new BdfDictionary(); - private final long timestamp = 42L; - private final byte[] rawMessage = getRandomBytes(42); - private final MessageId messageId = new MessageId(getRandomId()); - private final Message message = - new Message(messageId, groupId, timestamp, rawMessage); + private final Message message = getMessage(groupId); + private final MessageId messageId = message.getId(); + private final long timestamp = message.getTimestamp(); + private final byte[] rawMessage = message.getRaw(); private final Metadata metadata = new Metadata(); private final BdfList list = BdfList.of("Sign this!", getRandomBytes(42)); private final String label = StringUtils.getRandomString(5); diff --git a/bramble-core/src/test/java/org/briarproject/bramble/db/DatabaseComponentImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/db/DatabaseComponentImplTest.java index 676cac2e37..3eec4d9793 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/db/DatabaseComponentImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/db/DatabaseComponentImplTest.java @@ -64,6 +64,7 @@ import static java.util.Collections.singletonList; import static org.briarproject.bramble.api.sync.Group.Visibility.INVISIBLE; import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED; import static org.briarproject.bramble.api.sync.Group.Visibility.VISIBLE; +import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_LENGTH; import static org.briarproject.bramble.api.sync.ValidationManager.State.DELIVERED; import static org.briarproject.bramble.api.sync.ValidationManager.State.UNKNOWN; import static org.briarproject.bramble.api.transport.TransportConstants.REORDERING_WINDOW_SIZE; @@ -72,6 +73,7 @@ import static org.briarproject.bramble.test.TestUtils.getAuthor; import static org.briarproject.bramble.test.TestUtils.getClientId; import static org.briarproject.bramble.test.TestUtils.getGroup; import static org.briarproject.bramble.test.TestUtils.getLocalAuthor; +import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.test.TestUtils.getSecretKey; import static org.briarproject.bramble.test.TestUtils.getTransportId; @@ -97,10 +99,9 @@ public class DatabaseComponentImplTest extends BrambleMockTestCase { private final Group group; private final Author author; private final LocalAuthor localAuthor; - private final MessageId messageId, messageId1; - private final int size; - private final byte[] raw; private final Message message; + private final MessageId messageId, messageId1; + private final byte[] raw, raw1; private final Metadata metadata; private final TransportId transportId; private final int maxLatency; @@ -115,12 +116,12 @@ public class DatabaseComponentImplTest extends BrambleMockTestCase { groupId = group.getId(); author = getAuthor(); localAuthor = getLocalAuthor(); - messageId = new MessageId(getRandomId()); - messageId1 = new MessageId(getRandomId()); - long timestamp = System.currentTimeMillis(); - size = 1234; - raw = new byte[size]; - message = new Message(messageId, groupId, timestamp, raw); + message = getMessage(groupId); + Message message1 = getMessage(groupId); + messageId = message.getId(); + messageId1 = message1.getId(); + raw = message.getRaw(); + raw1 = message1.getRaw(); metadata = new Metadata(); metadata.put("foo", new byte[] {'b', 'a', 'r'}); transportId = getTransportId(); @@ -865,7 +866,6 @@ public class DatabaseComponentImplTest extends BrambleMockTestCase { @Test public void testGenerateBatch() throws Exception { - byte[] raw1 = new byte[size]; Collection<MessageId> ids = Arrays.asList(messageId, messageId1); Collection<byte[]> messages = Arrays.asList(raw, raw1); context.checking(new Expectations() {{ @@ -873,7 +873,8 @@ public class DatabaseComponentImplTest extends BrambleMockTestCase { will(returnValue(txn)); oneOf(database).containsContact(txn, contactId); will(returnValue(true)); - oneOf(database).getMessagesToSend(txn, contactId, size * 2); + oneOf(database).getMessagesToSend(txn, contactId, + MAX_MESSAGE_LENGTH * 2); will(returnValue(ids)); oneOf(database).getRawMessage(txn, messageId); will(returnValue(raw)); @@ -893,7 +894,7 @@ public class DatabaseComponentImplTest extends BrambleMockTestCase { Transaction transaction = db.startTransaction(false); try { assertEquals(messages, db.generateBatch(transaction, contactId, - size * 2, maxLatency)); + MAX_MESSAGE_LENGTH * 2, maxLatency)); db.commitTransaction(transaction); } finally { db.endTransaction(transaction); @@ -961,7 +962,6 @@ public class DatabaseComponentImplTest extends BrambleMockTestCase { @Test public void testGenerateRequestedBatch() throws Exception { - byte[] raw1 = new byte[size]; Collection<MessageId> ids = Arrays.asList(messageId, messageId1); Collection<byte[]> messages = Arrays.asList(raw, raw1); context.checking(new Expectations() {{ @@ -970,7 +970,7 @@ public class DatabaseComponentImplTest extends BrambleMockTestCase { oneOf(database).containsContact(txn, contactId); will(returnValue(true)); oneOf(database).getRequestedMessagesToSend(txn, contactId, - size * 2); + MAX_MESSAGE_LENGTH * 2); will(returnValue(ids)); oneOf(database).getRawMessage(txn, messageId); will(returnValue(raw)); @@ -990,7 +990,7 @@ public class DatabaseComponentImplTest extends BrambleMockTestCase { Transaction transaction = db.startTransaction(false); try { assertEquals(messages, db.generateRequestedBatch(transaction, - contactId, size * 2, maxLatency)); + contactId, MAX_MESSAGE_LENGTH * 2, maxLatency)); db.commitTransaction(transaction); } finally { db.endTransaction(transaction); diff --git a/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java b/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java index 486ac0e824..f6d091dd61 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java @@ -53,7 +53,7 @@ import static org.briarproject.bramble.api.db.Metadata.REMOVE; import static org.briarproject.bramble.api.sync.Group.Visibility.INVISIBLE; import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED; import static org.briarproject.bramble.api.sync.Group.Visibility.VISIBLE; -import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_LENGTH; +import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH; import static org.briarproject.bramble.api.sync.ValidationManager.State.DELIVERED; import static org.briarproject.bramble.api.sync.ValidationManager.State.INVALID; import static org.briarproject.bramble.api.sync.ValidationManager.State.PENDING; @@ -62,7 +62,7 @@ import static org.briarproject.bramble.test.TestUtils.getAuthor; import static org.briarproject.bramble.test.TestUtils.getClientId; import static org.briarproject.bramble.test.TestUtils.getGroup; import static org.briarproject.bramble.test.TestUtils.getLocalAuthor; -import static org.briarproject.bramble.test.TestUtils.getRandomBytes; +import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.test.TestUtils.getSecretKey; import static org.briarproject.bramble.test.TestUtils.getTestDirectory; @@ -89,11 +89,8 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { private final Group group; private final Author author; private final LocalAuthor localAuthor; - private final MessageId messageId; - private final long timestamp; - private final int size; - private final byte[] raw; private final Message message; + private final MessageId messageId; private final TransportId transportId; private final ContactId contactId; private final KeySetId keySetId, keySetId1; @@ -106,11 +103,8 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { groupId = group.getId(); author = getAuthor(); localAuthor = getLocalAuthor(); - messageId = new MessageId(getRandomId()); - timestamp = System.currentTimeMillis(); - size = 1234; - raw = getRandomBytes(size); - message = new Message(messageId, groupId, timestamp, raw); + message = getMessage(groupId); + messageId = message.getId(); transportId = getTransportId(); contactId = new ContactId(1); keySetId = new KeySetId(1); @@ -150,8 +144,7 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { assertTrue(db.containsContact(txn, contactId)); assertTrue(db.containsGroup(txn, groupId)); assertTrue(db.containsMessage(txn, messageId)); - byte[] raw1 = db.getRawMessage(txn, messageId); - assertArrayEquals(raw, raw1); + assertArrayEquals(message.getRaw(), db.getRawMessage(txn, messageId)); // Delete the records db.removeMessage(txn, messageId); @@ -361,11 +354,11 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { // The message is sendable, but too large to send Collection<MessageId> ids = db.getMessagesToSend(txn, contactId, - size - 1); + message.getLength() - 1); assertTrue(ids.isEmpty()); // The message is just the right size to send - ids = db.getMessagesToSend(txn, contactId, size); + ids = db.getMessagesToSend(txn, contactId, message.getLength()); assertEquals(singletonList(messageId), ids); db.commitTransaction(txn); @@ -385,8 +378,8 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { db.addGroupVisibility(txn, contactId, groupId, false); // Add some messages to ack - MessageId messageId1 = new MessageId(getRandomId()); - Message message1 = new Message(messageId1, groupId, timestamp, raw); + Message message1 = getMessage(groupId); + MessageId messageId1 = message1.getId(); db.addMessage(txn, message, DELIVERED, true, contactId); db.addMessage(txn, message1, DELIVERED, true, contactId); @@ -449,9 +442,7 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { @Test public void testGetFreeSpace() throws Exception { - byte[] largeBody = new byte[MAX_MESSAGE_LENGTH]; - for (int i = 0; i < largeBody.length; i++) largeBody[i] = (byte) i; - Message message = new Message(messageId, groupId, timestamp, largeBody); + Message message = getMessage(groupId, MAX_MESSAGE_BODY_LENGTH); Database<Connection> db = open(false); // Sanity check: there should be enough space on disk for this test @@ -1105,8 +1096,8 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { @Test public void testMetadataQueries() throws Exception { - MessageId messageId1 = new MessageId(getRandomId()); - Message message1 = new Message(messageId1, groupId, timestamp, raw); + Message message1 = getMessage(groupId); + MessageId messageId1 = message1.getId(); Database<Connection> db = open(false); Connection txn = db.startTransaction(); @@ -1209,8 +1200,8 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { @Test public void testMetadataQueriesOnlyForDeliveredMessages() throws Exception { - MessageId messageId1 = new MessageId(getRandomId()); - Message message1 = new Message(messageId1, groupId, timestamp, raw); + Message message1 = getMessage(groupId); + MessageId messageId1 = message1.getId(); Database<Connection> db = open(false); Connection txn = db.startTransaction(); @@ -1280,14 +1271,14 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { @Test public void testMessageDependencies() throws Exception { - MessageId messageId1 = new MessageId(getRandomId()); - MessageId messageId2 = new MessageId(getRandomId()); - MessageId messageId3 = new MessageId(getRandomId()); - MessageId messageId4 = new MessageId(getRandomId()); - Message message1 = new Message(messageId1, groupId, timestamp, raw); - Message message2 = new Message(messageId2, groupId, timestamp, raw); - Message message3 = new Message(messageId3, groupId, timestamp, raw); - Message message4 = new Message(messageId4, groupId, timestamp, raw); + Message message1 = getMessage(groupId); + Message message2 = getMessage(groupId); + Message message3 = getMessage(groupId); + Message message4 = getMessage(groupId); + MessageId messageId1 = message1.getId(); + MessageId messageId2 = message2.getId(); + MessageId messageId3 = message3.getId(); + MessageId messageId4 = message4.getId(); Database<Connection> db = open(false); Connection txn = db.startTransaction(); @@ -1385,16 +1376,16 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { db.addGroup(txn, group1); // Add a message to the second group - MessageId messageId1 = new MessageId(getRandomId()); - Message message1 = new Message(messageId1, groupId1, timestamp, raw); + Message message1 = getMessage(groupId1); + MessageId messageId1 = message1.getId(); db.addMessage(txn, message1, DELIVERED, true, contactId); // Create an ID for a missing message MessageId messageId2 = new MessageId(getRandomId()); // Add another message to the first group - MessageId messageId3 = new MessageId(getRandomId()); - Message message3 = new Message(messageId3, groupId, timestamp, raw); + Message message3 = getMessage(groupId); + MessageId messageId3 = message3.getId(); db.addMessage(txn, message3, DELIVERED, true, contactId); // Add dependencies between the messages @@ -1428,36 +1419,32 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { @Test public void testGetPendingMessagesForDelivery() throws Exception { - MessageId mId1 = new MessageId(getRandomId()); - MessageId mId2 = new MessageId(getRandomId()); - MessageId mId3 = new MessageId(getRandomId()); - MessageId mId4 = new MessageId(getRandomId()); - Message m1 = new Message(mId1, groupId, timestamp, raw); - Message m2 = new Message(mId2, groupId, timestamp, raw); - Message m3 = new Message(mId3, groupId, timestamp, raw); - Message m4 = new Message(mId4, groupId, timestamp, raw); + Message message1 = getMessage(groupId); + Message message2 = getMessage(groupId); + Message message3 = getMessage(groupId); + Message message4 = getMessage(groupId); Database<Connection> db = open(false); Connection txn = db.startTransaction(); // Add a group and some messages with different states db.addGroup(txn, group); - db.addMessage(txn, m1, UNKNOWN, true, contactId); - db.addMessage(txn, m2, INVALID, true, contactId); - db.addMessage(txn, m3, PENDING, true, contactId); - db.addMessage(txn, m4, DELIVERED, true, contactId); + db.addMessage(txn, message1, UNKNOWN, true, contactId); + db.addMessage(txn, message2, INVALID, true, contactId); + db.addMessage(txn, message3, PENDING, true, contactId); + db.addMessage(txn, message4, DELIVERED, true, contactId); Collection<MessageId> result; // Retrieve messages to be validated result = db.getMessagesToValidate(txn); assertEquals(1, result.size()); - assertTrue(result.contains(mId1)); + assertTrue(result.contains(message1.getId())); // Retrieve pending messages result = db.getPendingMessages(txn); assertEquals(1, result.size()); - assertTrue(result.contains(mId3)); + assertTrue(result.contains(message3.getId())); db.commitTransaction(txn); db.close(); @@ -1465,35 +1452,31 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { @Test public void testGetMessagesToShare() throws Exception { - MessageId mId1 = new MessageId(getRandomId()); - MessageId mId2 = new MessageId(getRandomId()); - MessageId mId3 = new MessageId(getRandomId()); - MessageId mId4 = new MessageId(getRandomId()); - Message m1 = new Message(mId1, groupId, timestamp, raw); - Message m2 = new Message(mId2, groupId, timestamp, raw); - Message m3 = new Message(mId3, groupId, timestamp, raw); - Message m4 = new Message(mId4, groupId, timestamp, raw); + Message message1 = getMessage(groupId); + Message message2 = getMessage(groupId); + Message message3 = getMessage(groupId); + Message message4 = getMessage(groupId); Database<Connection> db = open(false); Connection txn = db.startTransaction(); // Add a group and some messages db.addGroup(txn, group); - db.addMessage(txn, m1, DELIVERED, true, contactId); - db.addMessage(txn, m2, DELIVERED, false, contactId); - db.addMessage(txn, m3, DELIVERED, false, contactId); - db.addMessage(txn, m4, DELIVERED, true, contactId); + db.addMessage(txn, message1, DELIVERED, true, contactId); + db.addMessage(txn, message2, DELIVERED, false, contactId); + db.addMessage(txn, message3, DELIVERED, false, contactId); + db.addMessage(txn, message4, DELIVERED, true, contactId); // Introduce dependencies between the messages - db.addMessageDependency(txn, m1, mId2, DELIVERED); - db.addMessageDependency(txn, m3, mId1, DELIVERED); - db.addMessageDependency(txn, m4, mId3, DELIVERED); + db.addMessageDependency(txn, message1, message2.getId(), DELIVERED); + db.addMessageDependency(txn, message3, message1.getId(), DELIVERED); + db.addMessageDependency(txn, message4, message3.getId(), DELIVERED); // Retrieve messages to be shared Collection<MessageId> result = db.getMessagesToShare(txn); assertEquals(2, result.size()); - assertTrue(result.contains(mId2)); - assertTrue(result.contains(mId3)); + assertTrue(result.contains(message2.getId())); + assertTrue(result.contains(message3.getId())); db.commitTransaction(txn); db.close(); @@ -1656,7 +1639,7 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { assertEquals(singletonList(messageId), ids); // The raw message should be available - assertArrayEquals(raw, db.getRawMessage(txn, messageId)); + assertArrayEquals(message.getRaw(), db.getRawMessage(txn, messageId)); // Delete the message db.deleteMessage(txn, messageId); diff --git a/bramble-core/src/test/java/org/briarproject/bramble/properties/TransportPropertyManagerImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/properties/TransportPropertyManagerImplTest.java index 90aba549db..99b444a708 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/properties/TransportPropertyManagerImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/properties/TransportPropertyManagerImplTest.java @@ -34,11 +34,10 @@ import static java.util.Collections.singletonList; import static org.briarproject.bramble.api.properties.TransportPropertyManager.CLIENT_ID; import static org.briarproject.bramble.api.properties.TransportPropertyManager.MAJOR_VERSION; import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED; -import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH; import static org.briarproject.bramble.test.TestUtils.getAuthor; import static org.briarproject.bramble.test.TestUtils.getGroup; import static org.briarproject.bramble.test.TestUtils.getLocalAuthor; -import static org.briarproject.bramble.test.TestUtils.getRandomBytes; +import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -187,8 +186,7 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase { throws Exception { Transaction txn = new Transaction(null, false); GroupId contactGroupId = new GroupId(getRandomId()); - long timestamp = 123456789; - Message message = getMessage(contactGroupId, timestamp); + Message message = getMessage(contactGroupId); Metadata meta = new Metadata(); BdfDictionary metaDictionary = BdfDictionary.of( new BdfEntry("transportId", "foo"), @@ -229,8 +227,7 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase { throws Exception { Transaction txn = new Transaction(null, false); GroupId contactGroupId = new GroupId(getRandomId()); - long timestamp = 123456789; - Message message = getMessage(contactGroupId, timestamp); + Message message = getMessage(contactGroupId); Metadata meta = new Metadata(); // Version 4 is being delivered BdfDictionary metaDictionary = BdfDictionary.of( @@ -267,8 +264,7 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase { public void testDeletesObsoleteUpdateWhenDelivered() throws Exception { Transaction txn = new Transaction(null, false); GroupId contactGroupId = new GroupId(getRandomId()); - long timestamp = 123456789; - Message message = getMessage(contactGroupId, timestamp); + Message message = getMessage(contactGroupId); Metadata meta = new Metadata(); // Version 3 is being delivered BdfDictionary metaDictionary = BdfDictionary.of( @@ -619,12 +615,6 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase { true, active); } - private Message getMessage(GroupId g, long timestamp) { - MessageId messageId = new MessageId(getRandomId()); - byte[] raw = getRandomBytes(MAX_MESSAGE_BODY_LENGTH); - return new Message(messageId, g, timestamp, raw); - } - private void expectGetLocalProperties(Transaction txn) throws Exception { Map<MessageId, BdfDictionary> messageMetadata = new LinkedHashMap<>(); // The latest update for transport "foo" should be returned @@ -664,9 +654,9 @@ public class TransportPropertyManagerImplTest extends BrambleMockTestCase { private void expectStoreMessage(Transaction txn, GroupId g, String transportId, BdfDictionary properties, long version, boolean local, boolean shared) throws Exception { - long timestamp = 123456789; BdfList body = BdfList.of(transportId, version, properties); - Message message = getMessage(g, timestamp); + Message message = getMessage(g); + long timestamp = message.getTimestamp(); BdfDictionary meta = BdfDictionary.of( new BdfEntry("transportId", transportId), new BdfEntry("version", version), diff --git a/bramble-core/src/test/java/org/briarproject/bramble/sync/SimplexOutgoingSessionTest.java b/bramble-core/src/test/java/org/briarproject/bramble/sync/SimplexOutgoingSessionTest.java index 4aa5cd36b2..f91b5fe7ac 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/sync/SimplexOutgoingSessionTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/sync/SimplexOutgoingSessionTest.java @@ -18,6 +18,7 @@ import java.util.Collections; import java.util.concurrent.Executor; import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_IDS; +import static org.briarproject.bramble.test.TestUtils.getRandomBytes; import static org.briarproject.bramble.test.TestUtils.getRandomId; public class SimplexOutgoingSessionTest extends BrambleMockTestCase { @@ -72,7 +73,7 @@ public class SimplexOutgoingSessionTest extends BrambleMockTestCase { @Test public void testSomethingToSend() throws Exception { Ack ack = new Ack(Collections.singletonList(messageId)); - byte[] raw = new byte[1234]; + byte[] raw = getRandomBytes(1234); SimplexOutgoingSession session = new SimplexOutgoingSession(db, dbExecutor, eventBus, contactId, MAX_LATENCY, streamWriter, recordWriter); diff --git a/bramble-core/src/test/java/org/briarproject/bramble/sync/ValidationManagerImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/sync/ValidationManagerImplTest.java index e3d7520e5e..3b4ae864a6 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/sync/ValidationManagerImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/sync/ValidationManagerImplTest.java @@ -1,6 +1,5 @@ package org.briarproject.bramble.sync; -import org.briarproject.bramble.api.UniqueId; import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.db.DatabaseComponent; import org.briarproject.bramble.api.db.Metadata; @@ -21,23 +20,26 @@ import org.briarproject.bramble.api.sync.ValidationManager.State; import org.briarproject.bramble.api.sync.event.MessageAddedEvent; import org.briarproject.bramble.test.BrambleMockTestCase; import org.briarproject.bramble.test.ImmediateExecutor; -import org.briarproject.bramble.util.ByteUtils; import org.jmock.Expectations; import org.junit.Before; import org.junit.Test; import java.util.Arrays; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; import java.util.concurrent.Executor; +import static java.util.Collections.emptyList; +import static java.util.Collections.emptyMap; +import static java.util.Collections.singletonList; +import static java.util.Collections.singletonMap; import static org.briarproject.bramble.api.sync.ValidationManager.State.DELIVERED; import static org.briarproject.bramble.api.sync.ValidationManager.State.INVALID; import static org.briarproject.bramble.api.sync.ValidationManager.State.PENDING; import static org.briarproject.bramble.api.sync.ValidationManager.State.UNKNOWN; import static org.briarproject.bramble.test.TestUtils.getClientId; import static org.briarproject.bramble.test.TestUtils.getGroup; +import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getRandomId; public class ValidationManagerImplTest extends BrambleMockTestCase { @@ -54,34 +56,23 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { private final Executor validationExecutor = new ImmediateExecutor(); private final ClientId clientId = getClientId(); private final int majorVersion = 123; - private final MessageId messageId = new MessageId(getRandomId()); - private final MessageId messageId1 = new MessageId(getRandomId()); - private final MessageId messageId2 = new MessageId(getRandomId()); private final Group group = getGroup(clientId, majorVersion); private final GroupId groupId = group.getId(); - private final long timestamp = System.currentTimeMillis(); - private final byte[] raw = new byte[123]; - private final Message message = new Message(messageId, groupId, timestamp, - raw); - private final Message message1 = new Message(messageId1, groupId, timestamp, - raw); - private final Message message2 = new Message(messageId2, groupId, timestamp, - raw); + private final Message message = getMessage(groupId); + private final Message message1 = getMessage(groupId); + private final Message message2 = getMessage(groupId); + private final MessageId messageId = message.getId(); + private final MessageId messageId1 = message1.getId(); + private final MessageId messageId2 = message2.getId(); private final Metadata metadata = new Metadata(); private final MessageContext validResult = new MessageContext(metadata); private final ContactId contactId = new ContactId(234); private final MessageContext validResultWithDependencies = - new MessageContext(metadata, Collections.singletonList(messageId1)); + new MessageContext(metadata, singletonList(messageId1)); private ValidationManagerImpl vm; - public ValidationManagerImplTest() { - // Encode the messages - System.arraycopy(groupId.getBytes(), 0, raw, 0, UniqueId.LENGTH); - ByteUtils.writeUint64(timestamp, raw, UniqueId.LENGTH); - } - @Before public void setUp() { vm = new ValidationManagerImpl(db, dbExecutor, validationExecutor, @@ -101,21 +92,21 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).startTransaction(true); will(returnValue(txn)); oneOf(db).getMessagesToValidate(txn); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn); oneOf(db).endTransaction(txn); // deliverOutstandingMessages() oneOf(db).startTransaction(true); will(returnValue(txn1)); oneOf(db).getPendingMessages(txn1); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn1); oneOf(db).endTransaction(txn1); // shareOutstandingMessages() oneOf(db).startTransaction(true); will(returnValue(txn2)); oneOf(db).getMessagesToShare(txn2); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn2); oneOf(db).endTransaction(txn2); }}); @@ -146,8 +137,8 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).startTransaction(true); will(returnValue(txn1)); oneOf(db).getRawMessage(txn1, messageId); - will(returnValue(raw)); - oneOf(messageFactory).createMessage(messageId, raw); + will(returnValue(message.getRaw())); + oneOf(messageFactory).createMessage(messageId, message.getRaw()); will(returnValue(message)); oneOf(db).getGroup(txn1, groupId); will(returnValue(group)); @@ -166,15 +157,15 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).setMessageState(txn2, messageId, DELIVERED); // Get any pending dependents oneOf(db).getMessageDependents(txn2, messageId); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); oneOf(db).commitTransaction(txn2); oneOf(db).endTransaction(txn2); // Load the second raw message and group oneOf(db).startTransaction(true); will(returnValue(txn3)); oneOf(db).getRawMessage(txn3, messageId1); - will(returnValue(raw)); - oneOf(messageFactory).createMessage(messageId1, raw); + will(returnValue(message1.getRaw())); + oneOf(messageFactory).createMessage(messageId1, message1.getRaw()); will(returnValue(message1)); oneOf(db).getGroup(txn3, groupId); will(returnValue(group)); @@ -193,21 +184,21 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).deleteMessageMetadata(txn4, messageId1); // Recursively invalidate any dependents oneOf(db).getMessageDependents(txn4, messageId1); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); oneOf(db).commitTransaction(txn4); oneOf(db).endTransaction(txn4); // Get pending messages to deliver oneOf(db).startTransaction(true); will(returnValue(txn5)); oneOf(db).getPendingMessages(txn5); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn5); oneOf(db).endTransaction(txn5); // Get messages to share oneOf(db).startTransaction(true); will(returnValue(txn6)); oneOf(db).getMessagesToShare(txn6); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn6); oneOf(db).endTransaction(txn6); }}); @@ -228,14 +219,14 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).startTransaction(true); will(returnValue(txn)); oneOf(db).getMessagesToValidate(txn); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn); oneOf(db).endTransaction(txn); // Get pending messages to deliver oneOf(db).startTransaction(true); will(returnValue(txn1)); oneOf(db).getPendingMessages(txn1); - will(returnValue(Collections.singletonList(messageId))); + will(returnValue(singletonList(messageId))); oneOf(db).commitTransaction(txn1); oneOf(db).endTransaction(txn1); // Check whether the message is ready to deliver @@ -244,11 +235,11 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).getMessageState(txn2, messageId); will(returnValue(PENDING)); oneOf(db).getMessageDependencies(txn2, messageId); - will(returnValue(Collections.singletonMap(messageId1, DELIVERED))); + will(returnValue(singletonMap(messageId1, DELIVERED))); // Get the message and its metadata to deliver oneOf(db).getRawMessage(txn2, messageId); - will(returnValue(raw)); - oneOf(messageFactory).createMessage(messageId, raw); + will(returnValue(message.getRaw())); + oneOf(messageFactory).createMessage(messageId, message.getRaw()); will(returnValue(message)); oneOf(db).getGroup(txn2, groupId); will(returnValue(group)); @@ -260,7 +251,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).setMessageState(txn2, messageId, DELIVERED); // Get any pending dependents oneOf(db).getMessageDependents(txn2, messageId); - will(returnValue(Collections.singletonMap(messageId2, PENDING))); + will(returnValue(singletonMap(messageId2, PENDING))); oneOf(db).commitTransaction(txn2); oneOf(db).endTransaction(txn2); // Check whether the dependent is ready to deliver @@ -269,11 +260,11 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).getMessageState(txn3, messageId2); will(returnValue(PENDING)); oneOf(db).getMessageDependencies(txn3, messageId2); - will(returnValue(Collections.singletonMap(messageId1, DELIVERED))); + will(returnValue(singletonMap(messageId1, DELIVERED))); // Get the dependent and its metadata to deliver oneOf(db).getRawMessage(txn3, messageId2); - will(returnValue(raw)); - oneOf(messageFactory).createMessage(messageId2, raw); + will(returnValue(message2.getRaw())); + oneOf(messageFactory).createMessage(messageId2, message2.getRaw()); will(returnValue(message2)); oneOf(db).getGroup(txn3, groupId); will(returnValue(group)); @@ -285,7 +276,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).setMessageState(txn3, messageId2, DELIVERED); // Get any pending dependents oneOf(db).getMessageDependents(txn3, messageId2); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); oneOf(db).commitTransaction(txn3); oneOf(db).endTransaction(txn3); @@ -293,7 +284,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).startTransaction(true); will(returnValue(txn4)); oneOf(db).getMessagesToShare(txn4); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn4); oneOf(db).endTransaction(txn4); }}); @@ -314,14 +305,14 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).startTransaction(true); will(returnValue(txn)); oneOf(db).getMessagesToValidate(txn); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn); oneOf(db).endTransaction(txn); // No pending messages to deliver oneOf(db).startTransaction(true); will(returnValue(txn1)); oneOf(db).getPendingMessages(txn1); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn1); oneOf(db).endTransaction(txn1); @@ -329,7 +320,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).startTransaction(true); will(returnValue(txn2)); oneOf(db).getMessagesToShare(txn2); - will(returnValue(Collections.singletonList(messageId))); + will(returnValue(singletonList(messageId))); oneOf(db).commitTransaction(txn2); oneOf(db).endTransaction(txn2); // Share message and get dependencies @@ -337,7 +328,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { will(returnValue(txn3)); oneOf(db).setMessageShared(txn3, messageId); oneOf(db).getMessageDependencies(txn3, messageId); - will(returnValue(Collections.singletonMap(messageId2, DELIVERED))); + will(returnValue(singletonMap(messageId2, DELIVERED))); oneOf(db).commitTransaction(txn3); oneOf(db).endTransaction(txn3); // Share dependency @@ -345,7 +336,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { will(returnValue(txn4)); oneOf(db).setMessageShared(txn4, messageId2); oneOf(db).getMessageDependencies(txn4, messageId2); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); oneOf(db).commitTransaction(txn4); oneOf(db).endTransaction(txn4); }}); @@ -376,7 +367,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).addMessageDependencies(txn1, message, validResultWithDependencies.getDependencies()); oneOf(db).getMessageDependencies(txn1, messageId); - will(returnValue(Collections.singletonMap(messageId1, DELIVERED))); + will(returnValue(singletonMap(messageId1, DELIVERED))); oneOf(db).mergeMessageMetadata(txn1, messageId, metadata); // Deliver the message oneOf(hook).incomingMessage(txn1, message, metadata); @@ -384,7 +375,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).setMessageState(txn1, messageId, DELIVERED); // Get any pending dependents oneOf(db).getMessageDependents(txn1, messageId); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); // Share message oneOf(db).setMessageShared(txn1, messageId); oneOf(db).commitTransaction(txn1); @@ -394,7 +385,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { will(returnValue(txn2)); oneOf(db).setMessageShared(txn2, messageId1); oneOf(db).getMessageDependencies(txn2, messageId1); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); oneOf(db).commitTransaction(txn2); oneOf(db).endTransaction(txn2); }}); @@ -431,8 +422,8 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).startTransaction(true); will(returnValue(txn2)); oneOf(db).getRawMessage(txn2, messageId1); - will(returnValue(raw)); - oneOf(messageFactory).createMessage(messageId1, raw); + will(returnValue(message1.getRaw())); + oneOf(messageFactory).createMessage(messageId1, message1.getRaw()); will(returnValue(message1)); oneOf(db).getGroup(txn2, groupId); will(returnValue(group)); @@ -451,21 +442,21 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).deleteMessageMetadata(txn3, messageId1); // Recursively invalidate dependents oneOf(db).getMessageDependents(txn3, messageId1); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); oneOf(db).commitTransaction(txn3); oneOf(db).endTransaction(txn3); // Get pending messages to deliver oneOf(db).startTransaction(true); will(returnValue(txn4)); oneOf(db).getPendingMessages(txn4); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn4); oneOf(db).endTransaction(txn4); // Get messages to share oneOf(db).startTransaction(true); will(returnValue(txn5)); oneOf(db).getMessagesToShare(txn5); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn5); oneOf(db).endTransaction(txn5); }}); @@ -495,8 +486,8 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).startTransaction(true); will(returnValue(txn1)); oneOf(db).getRawMessage(txn1, messageId); - will(returnValue(raw)); - oneOf(messageFactory).createMessage(messageId, raw); + will(returnValue(message.getRaw())); + oneOf(messageFactory).createMessage(messageId, message.getRaw()); will(returnValue(message)); // Load the group - *gasp* it's gone! oneOf(db).getGroup(txn1, groupId); @@ -507,8 +498,8 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).startTransaction(true); will(returnValue(txn2)); oneOf(db).getRawMessage(txn2, messageId1); - will(returnValue(raw)); - oneOf(messageFactory).createMessage(messageId1, raw); + will(returnValue(message1.getRaw())); + oneOf(messageFactory).createMessage(messageId1, message1.getRaw()); will(returnValue(message1)); oneOf(db).getGroup(txn2, groupId); will(returnValue(group)); @@ -527,21 +518,21 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).deleteMessageMetadata(txn3, messageId1); // Recursively invalidate dependents oneOf(db).getMessageDependents(txn3, messageId1); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); oneOf(db).commitTransaction(txn3); oneOf(db).endTransaction(txn3); // Get pending messages to deliver oneOf(db).startTransaction(true); will(returnValue(txn4)); oneOf(db).getPendingMessages(txn4); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn4); oneOf(db).endTransaction(txn4); // Get messages to share oneOf(db).startTransaction(true); will(returnValue(txn5)); oneOf(db).getMessagesToShare(txn5); - will(returnValue(Collections.emptyList())); + will(returnValue(emptyList())); oneOf(db).commitTransaction(txn5); oneOf(db).endTransaction(txn5); }}); @@ -575,7 +566,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).setMessageState(txn1, messageId, DELIVERED); // Get any pending dependents oneOf(db).getMessageDependents(txn1, messageId); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); oneOf(db).commitTransaction(txn1); oneOf(db).endTransaction(txn1); }}); @@ -584,7 +575,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { } @Test - public void testLocalMessagesAreNotValidatedWhenAdded() throws Exception { + public void testLocalMessagesAreNotValidatedWhenAdded() { vm.eventOccurred(new MessageAddedEvent(message, null)); } @@ -611,7 +602,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).addMessageDependencies(txn1, message, validResultWithDependencies.getDependencies()); oneOf(db).getMessageDependencies(txn1, messageId); - will(returnValue(Collections.singletonMap(messageId1, UNKNOWN))); + will(returnValue(singletonMap(messageId1, UNKNOWN))); oneOf(db).mergeMessageMetadata(txn1, messageId, metadata); oneOf(db).setMessageState(txn1, messageId, PENDING); oneOf(db).commitTransaction(txn1); @@ -644,7 +635,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).addMessageDependencies(txn1, message, validResultWithDependencies.getDependencies()); oneOf(db).getMessageDependencies(txn1, messageId); - will(returnValue(Collections.singletonMap(messageId1, DELIVERED))); + will(returnValue(singletonMap(messageId1, DELIVERED))); oneOf(db).mergeMessageMetadata(txn1, messageId, metadata); // Deliver the message oneOf(hook).incomingMessage(txn1, message, metadata); @@ -652,7 +643,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).setMessageState(txn1, messageId, DELIVERED); // Get any pending dependents oneOf(db).getMessageDependents(txn1, messageId); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); oneOf(db).commitTransaction(txn1); oneOf(db).endTransaction(txn1); }}); @@ -685,7 +676,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { validResultWithDependencies.getDependencies()); // Check for invalid dependencies oneOf(db).getMessageDependencies(txn1, messageId); - will(returnValue(Collections.singletonMap(messageId1, INVALID))); + will(returnValue(singletonMap(messageId1, INVALID))); // Invalidate message oneOf(db).getMessageState(txn1, messageId); will(returnValue(UNKNOWN)); @@ -694,7 +685,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).deleteMessageMetadata(txn1, messageId); // Recursively invalidate dependents oneOf(db).getMessageDependents(txn1, messageId); - will(returnValue(Collections.singletonMap(messageId2, UNKNOWN))); + will(returnValue(singletonMap(messageId2, UNKNOWN))); oneOf(db).commitTransaction(txn1); oneOf(db).endTransaction(txn1); // Invalidate dependent in a new transaction @@ -706,7 +697,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).deleteMessage(txn2, messageId2); oneOf(db).deleteMessageMetadata(txn2, messageId2); oneOf(db).getMessageDependents(txn2, messageId2); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); oneOf(db).commitTransaction(txn2); oneOf(db).endTransaction(txn2); }}); @@ -763,7 +754,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).deleteMessageMetadata(txn2, messageId1); // Message 1 has one dependent: 3 oneOf(db).getMessageDependents(txn2, messageId1); - will(returnValue(Collections.singletonMap(messageId3, PENDING))); + will(returnValue(singletonMap(messageId3, PENDING))); oneOf(db).commitTransaction(txn2); oneOf(db).endTransaction(txn2); // Invalidate message 2 @@ -776,7 +767,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).deleteMessageMetadata(txn3, messageId2); // Message 2 has one dependent: 3 (same dependent as 1) oneOf(db).getMessageDependents(txn3, messageId2); - will(returnValue(Collections.singletonMap(messageId3, PENDING))); + will(returnValue(singletonMap(messageId3, PENDING))); oneOf(db).commitTransaction(txn3); oneOf(db).endTransaction(txn3); // Invalidate message 3 (via 1) @@ -789,7 +780,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).deleteMessageMetadata(txn4, messageId3); // Message 3 has one dependent: 4 oneOf(db).getMessageDependents(txn4, messageId3); - will(returnValue(Collections.singletonMap(messageId4, PENDING))); + will(returnValue(singletonMap(messageId4, PENDING))); oneOf(db).commitTransaction(txn4); oneOf(db).endTransaction(txn4); // Invalidate message 3 (again, via 2) @@ -809,7 +800,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).deleteMessageMetadata(txn6, messageId4); // Message 4 has no dependents oneOf(db).getMessageDependents(txn6, messageId4); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); oneOf(db).commitTransaction(txn6); oneOf(db).endTransaction(txn6); }}); @@ -819,12 +810,10 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { @Test public void testPendingDependentsGetDelivered() throws Exception { - MessageId messageId3 = new MessageId(getRandomId()); - MessageId messageId4 = new MessageId(getRandomId()); - Message message3 = new Message(messageId3, groupId, timestamp, - raw); - Message message4 = new Message(messageId4, groupId, timestamp, - raw); + Message message3 = getMessage(groupId); + Message message4 = getMessage(groupId); + MessageId messageId3 = message3.getId(); + MessageId messageId4 = message4.getId(); Map<MessageId, State> twoDependents = new LinkedHashMap<>(); twoDependents.put(messageId1, PENDING); twoDependents.put(messageId2, PENDING); @@ -869,11 +858,11 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).getMessageState(txn2, messageId1); will(returnValue(PENDING)); oneOf(db).getMessageDependencies(txn2, messageId1); - will(returnValue(Collections.singletonMap(messageId, DELIVERED))); + will(returnValue(singletonMap(messageId, DELIVERED))); // Get message 1 and its metadata oneOf(db).getRawMessage(txn2, messageId1); - will(returnValue(raw)); - oneOf(messageFactory).createMessage(messageId1, raw); + will(returnValue(message1.getRaw())); + oneOf(messageFactory).createMessage(messageId1, message1.getRaw()); will(returnValue(message1)); oneOf(db).getGroup(txn2, groupId); will(returnValue(group)); @@ -885,7 +874,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).setMessageState(txn2, messageId1, DELIVERED); // Message 1 has one pending dependent: 3 oneOf(db).getMessageDependents(txn2, messageId1); - will(returnValue(Collections.singletonMap(messageId3, PENDING))); + will(returnValue(singletonMap(messageId3, PENDING))); oneOf(db).commitTransaction(txn2); oneOf(db).endTransaction(txn2); // Check whether message 2 is ready to be delivered @@ -894,11 +883,11 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).getMessageState(txn3, messageId2); will(returnValue(PENDING)); oneOf(db).getMessageDependencies(txn3, messageId2); - will(returnValue(Collections.singletonMap(messageId, DELIVERED))); + will(returnValue(singletonMap(messageId, DELIVERED))); // Get message 2 and its metadata oneOf(db).getRawMessage(txn3, messageId2); - will(returnValue(raw)); - oneOf(messageFactory).createMessage(messageId2, raw); + will(returnValue(message2.getRaw())); + oneOf(messageFactory).createMessage(messageId2, message2.getRaw()); will(returnValue(message2)); oneOf(db).getGroup(txn3, groupId); will(returnValue(group)); @@ -910,7 +899,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).setMessageState(txn3, messageId2, DELIVERED); // Message 2 has one pending dependent: 3 (same dependent as 1) oneOf(db).getMessageDependents(txn3, messageId2); - will(returnValue(Collections.singletonMap(messageId3, PENDING))); + will(returnValue(singletonMap(messageId3, PENDING))); oneOf(db).commitTransaction(txn3); oneOf(db).endTransaction(txn3); // Check whether message 3 is ready to be delivered (via 1) @@ -922,8 +911,8 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { will(returnValue(twoDependencies)); // Get message 3 and its metadata oneOf(db).getRawMessage(txn4, messageId3); - will(returnValue(raw)); - oneOf(messageFactory).createMessage(messageId3, raw); + will(returnValue(message3.getRaw())); + oneOf(messageFactory).createMessage(messageId3, message3.getRaw()); will(returnValue(message3)); oneOf(db).getGroup(txn4, groupId); will(returnValue(group)); @@ -934,7 +923,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).setMessageState(txn4, messageId3, DELIVERED); // Message 3 has one pending dependent: 4 oneOf(db).getMessageDependents(txn4, messageId3); - will(returnValue(Collections.singletonMap(messageId4, PENDING))); + will(returnValue(singletonMap(messageId4, PENDING))); oneOf(db).commitTransaction(txn4); oneOf(db).endTransaction(txn4); // Check whether message 3 is ready to be delivered (again, via 2) @@ -950,11 +939,11 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).getMessageState(txn6, messageId4); will(returnValue(PENDING)); oneOf(db).getMessageDependencies(txn6, messageId4); - will(returnValue(Collections.singletonMap(messageId3, DELIVERED))); + will(returnValue(singletonMap(messageId3, DELIVERED))); // Get message 4 and its metadata oneOf(db).getRawMessage(txn6, messageId4); - will(returnValue(raw)); - oneOf(messageFactory).createMessage(messageId4, raw); + will(returnValue(message4.getRaw())); + oneOf(messageFactory).createMessage(messageId4, message4.getRaw()); will(returnValue(message4)); oneOf(db).getGroup(txn6, groupId); will(returnValue(group)); @@ -966,7 +955,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).setMessageState(txn6, messageId4, DELIVERED); // Message 4 has no pending dependents oneOf(db).getMessageDependents(txn6, messageId4); - will(returnValue(Collections.emptyMap())); + will(returnValue(emptyMap())); oneOf(db).commitTransaction(txn6); oneOf(db).endTransaction(txn6); }}); @@ -1004,7 +993,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { oneOf(db).setMessageState(txn1, messageId, DELIVERED); // Get any pending dependents oneOf(db).getMessageDependents(txn1, messageId); - will(returnValue(Collections.singletonMap(messageId1, PENDING))); + will(returnValue(singletonMap(messageId1, PENDING))); oneOf(db).commitTransaction(txn1); oneOf(db).endTransaction(txn1); // Check whether the pending dependent is ready to be delivered diff --git a/briar-core/src/test/java/org/briarproject/briar/blog/BlogManagerImplTest.java b/briar-core/src/test/java/org/briarproject/briar/blog/BlogManagerImplTest.java index 524b7ea39b..a4f79f5c10 100644 --- a/briar-core/src/test/java/org/briarproject/briar/blog/BlogManagerImplTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/blog/BlogManagerImplTest.java @@ -32,10 +32,9 @@ import org.junit.Test; import static org.briarproject.bramble.api.identity.Author.Status.NONE; import static org.briarproject.bramble.api.identity.Author.Status.OURSELVES; import static org.briarproject.bramble.api.identity.Author.Status.VERIFIED; -import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_LENGTH; import static org.briarproject.bramble.test.TestUtils.getGroup; import static org.briarproject.bramble.test.TestUtils.getLocalAuthor; -import static org.briarproject.bramble.test.TestUtils.getRandomBytes; +import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.util.StringUtils.getRandomString; import static org.briarproject.briar.api.blog.BlogConstants.KEY_AUTHOR; @@ -75,9 +74,9 @@ public class BlogManagerImplTest extends BriarTestCase { private final LocalAuthor localAuthor1, localAuthor2, rssLocalAuthor; private final BdfList authorList1, authorList2, rssAuthorList; private final Blog blog1, blog2, rssBlog; - private final long timestamp, timeReceived; - private final MessageId messageId, rssMessageId; private final Message message, rssMessage; + private final MessageId messageId, rssMessageId; + private final long timestamp, timeReceived; private final String comment; public BlogManagerImplTest() { @@ -94,14 +93,12 @@ public class BlogManagerImplTest extends BriarTestCase { blog1 = createBlog(localAuthor1, false); blog2 = createBlog(localAuthor2, false); rssBlog = createBlog(rssLocalAuthor, true); - timestamp = System.currentTimeMillis(); + message = getMessage(blog1.getId()); + rssMessage = getMessage(rssBlog.getId()); + messageId = message.getId(); + rssMessageId = rssMessage.getId(); + timestamp = message.getTimestamp(); timeReceived = timestamp + 1; - messageId = new MessageId(getRandomId()); - rssMessageId = new MessageId(getRandomId()); - message = new Message(messageId, blog1.getId(), timestamp, - getRandomBytes(MAX_MESSAGE_LENGTH)); - rssMessage = new Message(rssMessageId, rssBlog.getId(), timestamp, - getRandomBytes(MAX_MESSAGE_LENGTH)); comment = getRandomString(MAX_BLOG_COMMENT_LENGTH); } @@ -372,9 +369,8 @@ public class BlogManagerImplTest extends BriarTestCase { new BdfEntry(KEY_TIMESTAMP, timestamp), new BdfEntry(KEY_TIME_RECEIVED, timeReceived) ); - MessageId commentId = new MessageId(getRandomId()); - Message commentMsg = new Message(commentId, blog1.getId(), - timestamp, getRandomBytes(MAX_MESSAGE_LENGTH)); + Message commentMsg = getMessage(blog1.getId()); + MessageId commentId = commentMsg.getId(); BdfDictionary commentMeta = BdfDictionary.of( new BdfEntry(KEY_TYPE, COMMENT.getInt()), new BdfEntry(KEY_COMMENT, comment), @@ -457,9 +453,8 @@ public class BlogManagerImplTest extends BriarTestCase { // The post was originally posted to blog 1, then reblogged to // blog 2 with a comment BdfList originalPostBody = BdfList.of("originalPostBody"); - MessageId wrappedPostId = new MessageId(getRandomId()); - Message wrappedPostMsg = new Message(wrappedPostId, blog2.getId(), - timestamp, getRandomBytes(MAX_MESSAGE_LENGTH)); + Message wrappedPostMsg = getMessage(blog2.getId()); + MessageId wrappedPostId = wrappedPostMsg.getId(); BdfDictionary wrappedPostMeta = BdfDictionary.of( new BdfEntry(KEY_TYPE, WRAPPED_POST.getInt()), new BdfEntry(KEY_RSS_FEED, false), @@ -468,9 +463,8 @@ public class BlogManagerImplTest extends BriarTestCase { new BdfEntry(KEY_TIMESTAMP, timestamp), new BdfEntry(KEY_TIME_RECEIVED, timeReceived) ); - MessageId commentId = new MessageId(getRandomId()); - Message commentMsg = new Message(commentId, blog2.getId(), - timestamp, getRandomBytes(MAX_MESSAGE_LENGTH)); + Message commentMsg = getMessage(blog2.getId()); + MessageId commentId = commentMsg.getId(); BdfDictionary commentMeta = BdfDictionary.of( new BdfEntry(KEY_TYPE, COMMENT.getInt()), new BdfEntry(KEY_COMMENT, comment), @@ -568,9 +562,8 @@ public class BlogManagerImplTest extends BriarTestCase { // The post was originally posted to the RSS blog, then reblogged to // blog 1 with a comment BdfList originalPostBody = BdfList.of("originalPostBody"); - MessageId wrappedPostId = new MessageId(getRandomId()); - Message wrappedPostMsg = new Message(wrappedPostId, blog1.getId(), - timestamp, getRandomBytes(MAX_MESSAGE_LENGTH)); + Message wrappedPostMsg = getMessage(blog1.getId()); + MessageId wrappedPostId = wrappedPostMsg.getId(); BdfDictionary wrappedPostMeta = BdfDictionary.of( new BdfEntry(KEY_TYPE, WRAPPED_POST.getInt()), new BdfEntry(KEY_RSS_FEED, true), @@ -579,9 +572,8 @@ public class BlogManagerImplTest extends BriarTestCase { new BdfEntry(KEY_TIMESTAMP, timestamp), new BdfEntry(KEY_TIME_RECEIVED, timeReceived) ); - MessageId commentId = new MessageId(getRandomId()); - Message commentMsg = new Message(commentId, blog1.getId(), - timestamp, getRandomBytes(MAX_MESSAGE_LENGTH)); + Message commentMsg = getMessage(blog1.getId()); + MessageId commentId = commentMsg.getId(); BdfDictionary commentMeta = BdfDictionary.of( new BdfEntry(KEY_TYPE, COMMENT.getInt()), new BdfEntry(KEY_COMMENT, comment), @@ -681,9 +673,8 @@ public class BlogManagerImplTest extends BriarTestCase { MessageId originalCommentId = new MessageId(getRandomId()); BdfList originalCommentBody = BdfList.of("originalCommentBody"); // The post and comment were reblogged to blog 2 with another comment - MessageId rewrappedPostId = new MessageId(getRandomId()); - Message rewrappedPostMsg = new Message(rewrappedPostId, - blog2.getId(), timestamp, getRandomBytes(MAX_MESSAGE_LENGTH)); + Message rewrappedPostMsg = getMessage(blog2.getId()); + MessageId rewrappedPostId = rewrappedPostMsg.getId(); BdfDictionary rewrappedPostMeta = BdfDictionary.of( new BdfEntry(KEY_TYPE, WRAPPED_POST.getInt()), new BdfEntry(KEY_RSS_FEED, true), @@ -692,9 +683,8 @@ public class BlogManagerImplTest extends BriarTestCase { new BdfEntry(KEY_TIMESTAMP, timestamp), new BdfEntry(KEY_TIME_RECEIVED, timeReceived) ); - MessageId wrappedCommentId = new MessageId(getRandomId()); - Message wrappedCommentMsg = new Message(wrappedCommentId, - blog2.getId(), timestamp, getRandomBytes(MAX_MESSAGE_LENGTH)); + Message wrappedCommentMsg = getMessage(blog2.getId()); + MessageId wrappedCommentId = wrappedCommentMsg.getId(); BdfDictionary wrappedCommentMeta = BdfDictionary.of( new BdfEntry(KEY_TYPE, WRAPPED_COMMENT.getInt()), new BdfEntry(KEY_COMMENT, comment), @@ -705,9 +695,8 @@ public class BlogManagerImplTest extends BriarTestCase { new BdfEntry(KEY_TIME_RECEIVED, timeReceived) ); String localComment = getRandomString(MAX_BLOG_COMMENT_LENGTH); - MessageId localCommentId = new MessageId(getRandomId()); - Message localCommentMsg = new Message(localCommentId, - blog2.getId(), timestamp, getRandomBytes(MAX_MESSAGE_LENGTH)); + Message localCommentMsg = getMessage(blog2.getId()); + MessageId localCommentId = localCommentMsg.getId(); BdfDictionary localCommentMeta = BdfDictionary.of( new BdfEntry(KEY_TYPE, COMMENT.getInt()), new BdfEntry(KEY_COMMENT, localComment), diff --git a/briar-core/src/test/java/org/briarproject/briar/blog/BlogPostValidatorTest.java b/briar-core/src/test/java/org/briarproject/briar/blog/BlogPostValidatorTest.java index 7d00fb4138..5cbe347ae3 100644 --- a/briar-core/src/test/java/org/briarproject/briar/blog/BlogPostValidatorTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/blog/BlogPostValidatorTest.java @@ -25,6 +25,7 @@ import java.security.GeneralSecurityException; import static org.briarproject.bramble.test.TestUtils.getAuthor; import static org.briarproject.bramble.test.TestUtils.getGroup; +import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getRandomBytes; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.util.StringUtils.getRandomString; @@ -74,17 +75,12 @@ public class BlogPostValidatorTest extends BriarTestCase { ); blog = new Blog(group, author, false); rssBlog = new Blog(group, author, true); - - MessageId messageId = new MessageId(getRandomId()); - long timestamp = System.currentTimeMillis(); - byte[] raw = getRandomBytes(123); - message = new Message(messageId, group.getId(), timestamp, raw); + message = getMessage(group.getId()); MetadataEncoder metadataEncoder = context.mock(MetadataEncoder.class); Clock clock = new SystemClock(); - validator = - new BlogPostValidator(groupFactory, messageFactory, blogFactory, - clientHelper, metadataEncoder, clock); + validator = new BlogPostValidator(groupFactory, messageFactory, + blogFactory, clientHelper, metadataEncoder, clock); context.assertIsSatisfied(); } @@ -117,8 +113,7 @@ public class BlogPostValidatorTest extends BriarTestCase { } @Test(expected = FormatException.class) - public void testValidateBlogPostWithoutAttachments() - throws IOException, GeneralSecurityException { + public void testValidateBlogPostWithoutAttachments() throws IOException { BdfList content = BdfList.of(null, null, body); BdfList m = BdfList.of(POST.getInt(), content, null); @@ -126,8 +121,7 @@ public class BlogPostValidatorTest extends BriarTestCase { } @Test(expected = FormatException.class) - public void testValidateBlogPostWithoutSignature() - throws IOException, GeneralSecurityException { + public void testValidateBlogPostWithoutSignature() throws IOException { BdfList content = BdfList.of(null, null, body, null); BdfList m = BdfList.of(POST.getInt(), content, null); diff --git a/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerImplTest.java b/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerImplTest.java index 4f104feb9b..086db14442 100644 --- a/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerImplTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerImplTest.java @@ -14,7 +14,6 @@ import org.briarproject.bramble.api.identity.LocalAuthor; import org.briarproject.bramble.api.sync.Group; import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.Message; -import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.test.BrambleMockTestCase; import org.briarproject.bramble.test.ImmediateExecutor; @@ -39,8 +38,7 @@ import okhttp3.Dns; import static org.briarproject.bramble.test.TestUtils.getGroup; import static org.briarproject.bramble.test.TestUtils.getLocalAuthor; -import static org.briarproject.bramble.test.TestUtils.getRandomBytes; -import static org.briarproject.bramble.test.TestUtils.getRandomId; +import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.briar.api.feed.FeedConstants.KEY_FEEDS; import static org.briarproject.briar.api.feed.FeedManager.CLIENT_ID; import static org.briarproject.briar.api.feed.FeedManager.MAJOR_VERSION; @@ -109,8 +107,7 @@ public class FeedManagerImplTest extends BrambleMockTestCase { entry.setUpdatedDate(new Date()); entries.add(entry); String body = "<p> (" + entry.getUpdatedDate().toString() + ")</p>"; - Message msg = new Message(new MessageId(getRandomId()), blogGroupId, 0, - getRandomBytes(42)); + Message msg = getMessage(blogGroupId); BlogPost post = new BlogPost(msg, null, localAuthor); context.checking(new Expectations() {{ @@ -118,9 +115,8 @@ public class FeedManagerImplTest extends BrambleMockTestCase { will(returnValue(txn)); oneOf(clock).currentTimeMillis(); will(returnValue(42L)); - oneOf(blogPostFactory) - .createBlogPost(feed.getBlogId(), 42L, null, localAuthor, - body); + oneOf(blogPostFactory).createBlogPost(feed.getBlogId(), 42L, null, + localAuthor, body); will(returnValue(post)); oneOf(blogManager).addLocalPost(txn, post); oneOf(db).commitTransaction(txn); diff --git a/briar-core/src/test/java/org/briarproject/briar/introduction/MessageEncoderTest.java b/briar-core/src/test/java/org/briarproject/briar/introduction/MessageEncoderTest.java index 56fe04bdb3..155bd6bb1b 100644 --- a/briar-core/src/test/java/org/briarproject/briar/introduction/MessageEncoderTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/introduction/MessageEncoderTest.java @@ -11,8 +11,11 @@ import org.briarproject.bramble.test.BrambleMockTestCase; import org.jmock.Expectations; import org.junit.Test; +import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH; +import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_LENGTH; import static org.briarproject.bramble.test.TestUtils.getAuthor; import static org.briarproject.bramble.test.TestUtils.getMessage; +import static org.briarproject.bramble.test.TestUtils.getRandomBytes; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.util.StringUtils.getRandomString; import static org.briarproject.briar.api.introduction.IntroductionConstants.MAX_REQUEST_MESSAGE_LENGTH; @@ -27,9 +30,9 @@ public class MessageEncoderTest extends BrambleMockTestCase { new MessageEncoderImpl(clientHelper, messageFactory); private final GroupId groupId = new GroupId(getRandomId()); - private final Message message = getMessage(groupId); + private final Message message = getMessage(groupId, MAX_MESSAGE_LENGTH); private final long timestamp = message.getTimestamp(); - private final byte[] body = message.getRaw(); + private final byte[] body = getRandomBytes(MAX_MESSAGE_BODY_LENGTH); private final Author author = getAuthor(); private final BdfList authorList = new BdfList(); private final String text = getRandomString(MAX_REQUEST_MESSAGE_LENGTH); @@ -43,8 +46,8 @@ public class MessageEncoderTest extends BrambleMockTestCase { expectCreateMessage( BdfList.of(REQUEST.getValue(), null, authorList, text)); - messageEncoder - .encodeRequestMessage(groupId, timestamp, null, author, text); + messageEncoder.encodeRequestMessage(groupId, timestamp, null, + author, text); } private void expectCreateMessage(BdfList bodyList) throws FormatException { diff --git a/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTest.java index 9e828d722d..4ecdb21c88 100644 --- a/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTest.java @@ -44,7 +44,7 @@ public class MessageSizeIntegrationTest extends BriarTestCase { @Inject ForumPostFactory forumPostFactory; - public MessageSizeIntegrationTest() throws Exception { + public MessageSizeIntegrationTest() { MessageSizeIntegrationTestComponent component = DaggerMessageSizeIntegrationTestComponent.builder().build(); component.inject(this); @@ -60,9 +60,9 @@ public class MessageSizeIntegrationTest extends BriarTestCase { PrivateMessage message = privateMessageFactory.createPrivateMessage( groupId, timestamp, body); // Check the size of the serialised message - int length = message.getMessage().getRaw().length; - assertTrue( - length > UniqueId.LENGTH + 8 + MAX_PRIVATE_MESSAGE_BODY_LENGTH); + int length = message.getMessage().getLength(); + assertTrue(length > UniqueId.LENGTH + 8 + + MAX_PRIVATE_MESSAGE_BODY_LENGTH); assertTrue(length <= MAX_RECORD_PAYLOAD_BYTES); } @@ -83,7 +83,7 @@ public class MessageSizeIntegrationTest extends BriarTestCase { ForumPost post = forumPostFactory.createPost(groupId, timestamp, parent, author, body); // Check the size of the serialised message - int length = post.getMessage().getRaw().length; + int length = post.getMessage().getLength(); assertTrue(length > UniqueId.LENGTH + 8 + UniqueId.LENGTH + 4 + MAX_AUTHOR_NAME_LENGTH + MAX_PUBLIC_KEY_LENGTH + MAX_FORUM_POST_BODY_LENGTH); diff --git a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/AbstractProtocolEngineTest.java b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/AbstractProtocolEngineTest.java index ebcaf70bb2..a831d16ee6 100644 --- a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/AbstractProtocolEngineTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/AbstractProtocolEngineTest.java @@ -29,6 +29,7 @@ import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_SIGNATUR import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED; import static org.briarproject.bramble.test.TestUtils.getAuthor; import static org.briarproject.bramble.test.TestUtils.getGroup; +import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getRandomBytes; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.bramble.util.StringUtils.getRandomString; @@ -44,94 +45,83 @@ import static org.briarproject.briar.privategroup.invitation.MessageType.JOIN; import static org.briarproject.briar.privategroup.invitation.MessageType.LEAVE; import static org.junit.Assert.assertEquals; -public abstract class AbstractProtocolEngineTest extends BrambleMockTestCase { +abstract class AbstractProtocolEngineTest extends BrambleMockTestCase { - protected final DatabaseComponent db = - context.mock(DatabaseComponent.class); - protected final ClientHelper clientHelper = - context.mock(ClientHelper.class); - protected final ClientVersioningManager clientVersioningManager = + final DatabaseComponent db = context.mock(DatabaseComponent.class); + final ClientHelper clientHelper = context.mock(ClientHelper.class); + final ClientVersioningManager clientVersioningManager = context.mock(ClientVersioningManager.class); - protected final PrivateGroupFactory privateGroupFactory = + final PrivateGroupFactory privateGroupFactory = context.mock(PrivateGroupFactory.class); - protected final PrivateGroupManager privateGroupManager = + final PrivateGroupManager privateGroupManager = context.mock(PrivateGroupManager.class); - protected final MessageParser messageParser = - context.mock(MessageParser.class); - protected final GroupMessageFactory groupMessageFactory = + final MessageParser messageParser = context.mock(MessageParser.class); + final GroupMessageFactory groupMessageFactory = context.mock(GroupMessageFactory.class); - protected final IdentityManager identityManager = - context.mock(IdentityManager.class); - protected final MessageEncoder messageEncoder = - context.mock(MessageEncoder.class); - protected final MessageTracker messageTracker = - context.mock(MessageTracker.class); - protected final Clock clock = context.mock(Clock.class); - - protected final Transaction txn = new Transaction(null, false); - protected final GroupId contactGroupId = new GroupId(getRandomId()); - protected final Group privateGroupGroup = - getGroup(CLIENT_ID, MAJOR_VERSION); - protected final GroupId privateGroupId = privateGroupGroup.getId(); - protected final Author author = getAuthor(); - protected final PrivateGroup privateGroup = - new PrivateGroup(privateGroupGroup, - getRandomString(MAX_GROUP_NAME_LENGTH), author, - getRandomBytes(GROUP_SALT_LENGTH)); - protected final byte[] signature = getRandomBytes(MAX_SIGNATURE_LENGTH); - protected final MessageId lastLocalMessageId = new MessageId(getRandomId()); - protected final MessageId lastRemoteMessageId = - new MessageId(getRandomId()); - protected final long localTimestamp = 3L; - protected final long inviteTimestamp = 6L; - protected final long messageTimestamp = inviteTimestamp + 1; - protected final MessageId messageId = new MessageId(getRandomId()); - protected final Message message = new Message(messageId, contactGroupId, - messageTimestamp, getRandomBytes(42)); + final IdentityManager identityManager = context.mock(IdentityManager.class); + final MessageEncoder messageEncoder = context.mock(MessageEncoder.class); + final MessageTracker messageTracker = context.mock(MessageTracker.class); + final Clock clock = context.mock(Clock.class); + + final Transaction txn = new Transaction(null, false); + final GroupId contactGroupId = new GroupId(getRandomId()); + final Group privateGroupGroup = getGroup(CLIENT_ID, MAJOR_VERSION); + final GroupId privateGroupId = privateGroupGroup.getId(); + final Author author = getAuthor(); + final PrivateGroup privateGroup = new PrivateGroup(privateGroupGroup, + getRandomString(MAX_GROUP_NAME_LENGTH), author, + getRandomBytes(GROUP_SALT_LENGTH)); + final byte[] signature = getRandomBytes(MAX_SIGNATURE_LENGTH); + final MessageId lastLocalMessageId = new MessageId(getRandomId()); + final MessageId lastRemoteMessageId = new MessageId(getRandomId()); + final Message message = getMessage(contactGroupId); + final MessageId messageId = message.getId(); + final long messageTimestamp = message.getTimestamp(); + final long inviteTimestamp = messageTimestamp - 1; + final long localTimestamp = inviteTimestamp - 1; private final BdfDictionary meta = BdfDictionary.of(new BdfEntry("me", "ta")); - protected final ContactId contactId = new ContactId(5); - protected final Contact contact = new Contact(contactId, author, + final ContactId contactId = new ContactId(5); + final Contact contact = new Contact(contactId, author, new AuthorId(getRandomId()), true, true); - protected final InviteMessage inviteMessage = + final InviteMessage inviteMessage = new InviteMessage(new MessageId(getRandomId()), contactGroupId, privateGroupId, 0L, privateGroup.getName(), privateGroup.getCreator(), privateGroup.getSalt(), getRandomString(MAX_GROUP_INVITATION_MSG_LENGTH), signature); - protected final JoinMessage joinMessage = + final JoinMessage joinMessage = new JoinMessage(new MessageId(getRandomId()), contactGroupId, privateGroupId, 0L, lastRemoteMessageId); - protected final LeaveMessage leaveMessage = + final LeaveMessage leaveMessage = new LeaveMessage(new MessageId(getRandomId()), contactGroupId, privateGroupId, 0L, lastRemoteMessageId); - protected final AbortMessage abortMessage = + final AbortMessage abortMessage = new AbortMessage(messageId, contactGroupId, privateGroupId, inviteTimestamp + 1); - protected void assertSessionConstantsUnchanged(Session s1, Session s2) { + void assertSessionConstantsUnchanged(Session s1, Session s2) { assertEquals(s1.getRole(), s2.getRole()); assertEquals(s1.getContactGroupId(), s2.getContactGroupId()); assertEquals(s1.getPrivateGroupId(), s2.getPrivateGroupId()); } - protected void assertSessionRecordedSentMessage(Session s) { + void assertSessionRecordedSentMessage(Session s) { assertEquals(messageId, s.getLastLocalMessageId()); assertEquals(lastRemoteMessageId, s.getLastRemoteMessageId()); assertEquals(messageTimestamp, s.getLocalTimestamp()); assertEquals(inviteTimestamp, s.getInviteTimestamp()); } - protected void expectGetLocalTimestamp(long time) { + void expectGetLocalTimestamp(long time) { context.checking(new Expectations() {{ oneOf(clock).currentTimeMillis(); will(returnValue(time)); }}); } - protected void expectSendInviteMessage(String msg) - throws Exception { + void expectSendInviteMessage(String msg) throws Exception { context.checking(new Expectations() {{ oneOf(messageEncoder) .encodeInviteMessage(contactGroupId, privateGroupId, @@ -142,7 +132,7 @@ public abstract class AbstractProtocolEngineTest extends BrambleMockTestCase { expectSendMessage(INVITE, true); } - protected void expectSendJoinMessage(JoinMessage m, boolean visible) + void expectSendJoinMessage(JoinMessage m, boolean visible) throws Exception { expectGetLocalTimestamp(messageTimestamp); context.checking(new Expectations() {{ @@ -154,7 +144,7 @@ public abstract class AbstractProtocolEngineTest extends BrambleMockTestCase { expectSendMessage(JOIN, visible); } - protected void expectSendLeaveMessage(boolean visible) throws Exception { + void expectSendLeaveMessage(boolean visible) throws Exception { expectGetLocalTimestamp(messageTimestamp); context.checking(new Expectations() {{ oneOf(messageEncoder) @@ -165,7 +155,7 @@ public abstract class AbstractProtocolEngineTest extends BrambleMockTestCase { expectSendMessage(LEAVE, visible); } - protected void expectSendAbortMessage() throws Exception { + void expectSendAbortMessage() throws Exception { expectGetLocalTimestamp(messageTimestamp); context.checking(new Expectations() {{ oneOf(messageEncoder) @@ -186,8 +176,7 @@ public abstract class AbstractProtocolEngineTest extends BrambleMockTestCase { }}); } - protected void expectSetPrivateGroupVisibility(Visibility v) - throws Exception { + void expectSetPrivateGroupVisibility(Visibility v) throws Exception { expectGetContactId(); context.checking(new Expectations() {{ oneOf(clientVersioningManager).getClientVisibility(txn, contactId, @@ -197,7 +186,7 @@ public abstract class AbstractProtocolEngineTest extends BrambleMockTestCase { }}); } - protected void expectGetContactId() throws Exception { + void expectGetContactId() throws Exception { BdfDictionary groupMeta = BdfDictionary .of(new BdfEntry(GROUP_KEY_CONTACT_ID, contactId.getInt())); context.checking(new Expectations() {{ @@ -207,8 +196,7 @@ public abstract class AbstractProtocolEngineTest extends BrambleMockTestCase { }}); } - protected void expectIsSubscribedPrivateGroup() - throws Exception { + void expectIsSubscribedPrivateGroup() throws Exception { context.checking(new Expectations() {{ oneOf(db).containsGroup(txn, privateGroupId); will(returnValue(true)); @@ -217,19 +205,17 @@ public abstract class AbstractProtocolEngineTest extends BrambleMockTestCase { }}); } - protected void expectIsNotSubscribedPrivateGroup() - throws Exception { + void expectIsNotSubscribedPrivateGroup() throws Exception { context.checking(new Expectations() {{ oneOf(db).containsGroup(txn, privateGroupId); will(returnValue(false)); }}); } - protected void expectMarkMessageVisibleInUi(MessageId m, boolean visible) - throws Exception { + void expectMarkMessageVisibleInUi(MessageId m) throws Exception { BdfDictionary d = new BdfDictionary(); context.checking(new Expectations() {{ - oneOf(messageEncoder).setVisibleInUi(d, visible); + oneOf(messageEncoder).setVisibleInUi(d, true); oneOf(clientHelper).mergeMessageMetadata(txn, m, d); }}); } diff --git a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/CreatorProtocolEngineTest.java b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/CreatorProtocolEngineTest.java index c1b2bd9b27..19e996e43d 100644 --- a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/CreatorProtocolEngineTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/CreatorProtocolEngineTest.java @@ -305,7 +305,7 @@ public class CreatorProtocolEngineTest extends AbstractProtocolEngineTest { lastRemoteMessageId); expectSendJoinMessage(properJoinMessage, false); - expectMarkMessageVisibleInUi(properJoinMessage.getId(), true); + expectMarkMessageVisibleInUi(properJoinMessage.getId()); context.checking(new Expectations() {{ oneOf(messageTracker) .trackMessage(txn, contactGroupId, inviteTimestamp + 1, @@ -394,7 +394,7 @@ public class CreatorProtocolEngineTest extends AbstractProtocolEngineTest { lastRemoteMessageId); CreatorSession session = getDefaultSession(INVITED); - expectMarkMessageVisibleInUi(properLeaveMessage.getId(), true); + expectMarkMessageVisibleInUi(properLeaveMessage.getId()); context.checking(new Expectations() {{ oneOf(messageTracker) .trackMessage(txn, contactGroupId, inviteTimestamp + 1, @@ -463,7 +463,7 @@ public class CreatorProtocolEngineTest extends AbstractProtocolEngineTest { } private void assertSessionAborted(CreatorSession oldSession, - CreatorSession newSession) throws Exception { + CreatorSession newSession) { assertEquals(ERROR, newSession.getState()); assertSessionRecordedSentMessage(newSession); assertSessionConstantsUnchanged(oldSession, newSession); diff --git a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImplTest.java b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImplTest.java index d36fc02e39..328347b4dc 100644 --- a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImplTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/GroupInvitationManagerImplTest.java @@ -46,7 +46,6 @@ import javax.annotation.Nullable; import static junit.framework.TestCase.fail; import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED; -import static org.briarproject.bramble.api.sync.SyncConstants.MESSAGE_HEADER_LENGTH; import static org.briarproject.bramble.test.TestUtils.getAuthor; import static org.briarproject.bramble.test.TestUtils.getGroup; import static org.briarproject.bramble.test.TestUtils.getMessage; @@ -106,9 +105,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase { private final Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION); private final Group privateGroup = getGroup(CLIENT_ID, MAJOR_VERSION); private final BdfDictionary meta = BdfDictionary.of(new BdfEntry("m", "e")); - private final Message message = - new Message(new MessageId(getRandomId()), contactGroup.getId(), - 0L, getRandomBytes(MESSAGE_HEADER_LENGTH + 1)); + private final Message message = getMessage(contactGroup.getId()); private final BdfList body = BdfList.of("body"); private final SessionId sessionId = new SessionId(privateGroup.getId().getBytes()); @@ -725,13 +722,11 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase { @Test public void testGetInvitations() throws Exception { BdfDictionary query = BdfDictionary.of(new BdfEntry("q", "u")); - MessageId messageId2 = new MessageId(TestUtils.getRandomId()); + Message message2 = getMessage(contactGroup.getId()); BdfDictionary meta2 = BdfDictionary.of(new BdfEntry("m2", "e")); Map<MessageId, BdfDictionary> results = new HashMap<>(); results.put(message.getId(), meta); - results.put(messageId2, meta2); - Message message2 = new Message(messageId2, contactGroup.getId(), - 0L, getRandomBytes(MESSAGE_HEADER_LENGTH + 1)); + results.put(message2.getId(), meta2); long time1 = 1L, time2 = 2L; String groupName = getRandomString(MAX_GROUP_NAME_LENGTH); byte[] salt = getRandomBytes(GROUP_SALT_LENGTH); @@ -766,7 +761,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase { salt); will(returnValue(pg)); // message 2 - oneOf(messageParser).getInviteMessage(txn, messageId2); + oneOf(messageParser).getInviteMessage(txn, message2.getId()); will(returnValue(inviteMessage2)); oneOf(privateGroupFactory).createPrivateGroup(groupName, author, salt); diff --git a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngineTest.java b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngineTest.java index f398d3a7fd..abbb912deb 100644 --- a/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngineTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/privategroup/invitation/InviteeProtocolEngineTest.java @@ -360,7 +360,7 @@ public class InviteeProtocolEngineTest extends AbstractProtocolEngineTest { oneOf(db).getContact(txn, contactId); will(returnValue(contact)); }}); - expectMarkMessageVisibleInUi(properInviteMessage.getId(), true); + expectMarkMessageVisibleInUi(properInviteMessage.getId()); expectMarkMessageAvailableToAnswer(properInviteMessage.getId(), true); context.checking(new Expectations() {{ oneOf(messageTracker).trackMessage(txn, contactGroupId, @@ -766,7 +766,7 @@ public class InviteeProtocolEngineTest extends AbstractProtocolEngineTest { } private void assertSessionAborted(InviteeSession oldSession, - InviteeSession newSession) throws Exception { + InviteeSession newSession) { assertEquals(ERROR, newSession.getState()); assertSessionRecordedSentMessage(newSession); assertSessionConstantsUnchanged(oldSession, newSession); diff --git a/briar-core/src/test/java/org/briarproject/briar/sharing/BlogSharingManagerImplTest.java b/briar-core/src/test/java/org/briarproject/briar/sharing/BlogSharingManagerImplTest.java index 8b72b4aff3..c44c1e23f1 100644 --- a/briar-core/src/test/java/org/briarproject/briar/sharing/BlogSharingManagerImplTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/sharing/BlogSharingManagerImplTest.java @@ -36,7 +36,7 @@ import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED; import static org.briarproject.bramble.test.TestUtils.getAuthor; import static org.briarproject.bramble.test.TestUtils.getGroup; import static org.briarproject.bramble.test.TestUtils.getLocalAuthor; -import static org.briarproject.bramble.test.TestUtils.getRandomBytes; +import static org.briarproject.bramble.test.TestUtils.getMessage; import static org.briarproject.bramble.test.TestUtils.getRandomId; import static org.briarproject.briar.api.blog.BlogSharingManager.CLIENT_ID; import static org.briarproject.briar.api.blog.BlogSharingManager.MAJOR_VERSION; @@ -198,8 +198,7 @@ public class BlogSharingManagerImplTest extends BrambleMockTestCase { throws Exception { Group contactGroup = getGroup(CLIENT_ID, MAJOR_VERSION); BdfDictionary sessionDict = new BdfDictionary(); - Message message = new Message(new MessageId(getRandomId()), - contactGroup.getId(), 42L, getRandomBytes(1337)); + Message message = getMessage(contactGroup.getId()); context.checking(new Expectations() {{ oneOf(contactGroupFactory).createContactGroup(CLIENT_ID, MAJOR_VERSION, contact); -- GitLab