Display new contacts at the top of the contact list

by initializing their latest message time with the current time
This commit is contained in:
Torsten Grote
2019-03-21 10:51:17 -03:00
parent f5ef87b34b
commit ce52a36db1
5 changed files with 58 additions and 5 deletions

View File

@@ -4,16 +4,22 @@ import org.briarproject.bramble.api.client.ClientHelper;
import org.briarproject.bramble.api.data.BdfDictionary;
import org.briarproject.bramble.api.data.BdfEntry;
import org.briarproject.bramble.api.db.DatabaseComponent;
import org.briarproject.bramble.api.db.Transaction;
import org.briarproject.bramble.api.sync.GroupId;
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.TestUtils;
import org.briarproject.briar.api.client.MessageTracker;
import org.jmock.Expectations;
import org.junit.Assert;
import org.junit.Test;
import static org.briarproject.briar.client.MessageTrackerConstants.GROUP_KEY_LATEST_MSG;
import static org.briarproject.briar.client.MessageTrackerConstants.GROUP_KEY_MSG_COUNT;
import static org.briarproject.briar.client.MessageTrackerConstants.GROUP_KEY_STORED_MESSAGE_ID;
import static org.briarproject.briar.client.MessageTrackerConstants.GROUP_KEY_UNREAD_COUNT;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
public class MessageTrackerTest extends BrambleMockTestCase {
@@ -21,13 +27,31 @@ public class MessageTrackerTest extends BrambleMockTestCase {
protected final ClientHelper clientHelper =
context.mock(ClientHelper.class);
private final DatabaseComponent db = context.mock(DatabaseComponent.class);
private final Clock clock = context.mock(Clock.class);
private final MessageId messageId = new MessageId(TestUtils.getRandomId());
private final MessageTracker messageTracker =
new MessageTrackerImpl(db, clientHelper);
new MessageTrackerImpl(db, clientHelper, clock);
private final BdfDictionary dictionary = BdfDictionary.of(
new BdfEntry(GROUP_KEY_STORED_MESSAGE_ID, messageId)
);
@Test
public void testInitializeGroupCount() throws Exception {
Transaction txn = new Transaction(null, false);
long now = 42L;
BdfDictionary dictionary = BdfDictionary.of(
new BdfEntry(GROUP_KEY_MSG_COUNT, 0),
new BdfEntry(GROUP_KEY_UNREAD_COUNT, 0),
new BdfEntry(GROUP_KEY_LATEST_MSG, now)
);
context.checking(new Expectations() {{
oneOf(clock).currentTimeMillis();
will(returnValue(now));
oneOf(clientHelper).mergeGroupMetadata(txn, groupId, dictionary);
}});
messageTracker.initializeGroupCount(txn, groupId);
}
@Test
public void testMessageStore() throws Exception {
context.checking(new Expectations() {{
@@ -43,8 +67,8 @@ public class MessageTrackerTest extends BrambleMockTestCase {
will(returnValue(dictionary));
}});
MessageId loadedId = messageTracker.loadStoredMessageId(groupId);
Assert.assertNotNull(loadedId);
Assert.assertTrue(messageId.equals(loadedId));
assertNotNull(loadedId);
assertEquals(messageId, loadedId);
}
}