Added names to contacts, created Contact class in API.

This commit is contained in:
akwizgran
2013-02-12 17:38:49 +00:00
parent 79fc630ab7
commit 96f8e49d64
8 changed files with 153 additions and 75 deletions

View File

@@ -14,6 +14,7 @@ import java.util.Map;
import net.sf.briar.BriarTestCase;
import net.sf.briar.TestMessage;
import net.sf.briar.TestUtils;
import net.sf.briar.api.Contact;
import net.sf.briar.api.ContactId;
import net.sf.briar.api.TransportConfig;
import net.sf.briar.api.TransportProperties;
@@ -56,10 +57,11 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
protected final ContactId contactId;
protected final GroupId groupId;
protected final MessageId messageId, messageId1;
private final String subject;
private final String contactName, subject;
private final long timestamp;
private final int size;
private final byte[] raw;
private final Contact contact;
private final Message message, privateMessage;
private final Group group;
private final TransportId transportId;
@@ -74,10 +76,12 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
groupId = new GroupId(TestUtils.getRandomId());
messageId = new MessageId(TestUtils.getRandomId());
messageId1 = new MessageId(TestUtils.getRandomId());
contactName = "Alice";
subject = "Foo";
timestamp = System.currentTimeMillis();
size = 1234;
raw = new byte[size];
contact = new Contact(contactId, contactName);
message = new TestMessage(messageId, null, groupId, authorId, subject,
timestamp, raw);
privateMessage = new TestMessage(messageId, null, null, null, subject,
@@ -127,13 +131,13 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
// setRating(authorId, GOOD) again
oneOf(database).setRating(txn, authorId, GOOD);
will(returnValue(GOOD));
// addContact()
oneOf(database).addContact(txn);
// addContact(contactName)
oneOf(database).addContact(txn, contactName);
will(returnValue(contactId));
oneOf(listener).eventOccurred(with(any(ContactAddedEvent.class)));
// getContacts()
oneOf(database).getContacts(txn);
will(returnValue(Arrays.asList(contactId)));
will(returnValue(Arrays.asList(contact)));
// getRemoteProperties(transportId)
oneOf(database).getRemoteProperties(txn, transportId);
will(returnValue(Collections.emptyMap()));
@@ -178,8 +182,8 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
assertEquals(UNRATED, db.getRating(authorId));
db.setRating(authorId, GOOD); // First time - listeners called
db.setRating(authorId, GOOD); // Second time - not called
assertEquals(contactId, db.addContact());
assertEquals(Arrays.asList(contactId), db.getContacts());
assertEquals(contactId, db.addContact(contactName));
assertEquals(Arrays.asList(contact), db.getContacts());
assertEquals(Collections.emptyMap(),
db.getRemoteProperties(transportId));
db.subscribe(group); // First time - listeners called
@@ -366,7 +370,7 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
will(returnValue(true));
oneOf(database).addGroupMessage(txn, message);
will(returnValue(true));
oneOf(database).getContacts(txn);
oneOf(database).getContactIds(txn);
will(returnValue(Arrays.asList(contactId)));
oneOf(database).addStatus(txn, contactId, messageId, false);
// The author is unrated and there are no sendable children
@@ -401,7 +405,7 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
will(returnValue(true));
oneOf(database).addGroupMessage(txn, message);
will(returnValue(true));
oneOf(database).getContacts(txn);
oneOf(database).getContactIds(txn);
will(returnValue(Arrays.asList(contactId)));
oneOf(database).addStatus(txn, contactId, messageId, false);
// The author is rated GOOD and there are two sendable children
@@ -653,7 +657,7 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
// addContact()
oneOf(database).startTransaction();
will(returnValue(txn));
oneOf(database).addContact(txn);
oneOf(database).addContact(txn, contactName);
will(returnValue(contactId));
oneOf(database).commitTransaction(txn);
// Check whether the transport is in the DB (which it's not)
@@ -667,7 +671,7 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
}});
DatabaseComponent db = createDatabaseComponent(database, cleaner,
shutdown);
assertEquals(contactId, db.addContact());
assertEquals(contactId, db.addContact(contactName));
try {
db.addEndpoint(endpoint);
@@ -1182,7 +1186,7 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
will(returnValue(true));
oneOf(database).addStatus(txn, contactId, messageId, true);
// Set the status to seen = true for all other contacts (none)
oneOf(database).getContacts(txn);
oneOf(database).getContactIds(txn);
will(returnValue(Arrays.asList(contactId)));
// Calculate the sendability - zero, so ancestors aren't updated
oneOf(database).getRating(txn, authorId);
@@ -1224,7 +1228,7 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
will(returnValue(true));
oneOf(database).addStatus(txn, contactId, messageId, true);
// Set the status to seen = true for all other contacts (none)
oneOf(database).getContacts(txn);
oneOf(database).getContactIds(txn);
will(returnValue(Arrays.asList(contactId)));
// Calculate the sendability - ancestors are updated
oneOf(database).getRating(txn, authorId);
@@ -1424,7 +1428,7 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
will(returnValue(true));
oneOf(database).addGroupMessage(txn, message);
will(returnValue(true));
oneOf(database).getContacts(txn);
oneOf(database).getContactIds(txn);
will(returnValue(Arrays.asList(contactId)));
oneOf(database).addStatus(txn, contactId, messageId, false);
oneOf(database).getRating(txn, authorId);
@@ -1631,7 +1635,7 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
will(returnValue(true));
oneOf(database).getVisibility(txn, groupId);
will(returnValue(both));
oneOf(database).getContacts(txn);
oneOf(database).getContactIds(txn);
will(returnValue(both));
oneOf(database).removeVisibility(txn, contactId1, groupId);
oneOf(database).commitTransaction(txn);
@@ -1665,7 +1669,7 @@ public abstract class DatabaseComponentTest extends BriarTestCase {
will(returnValue(true));
oneOf(database).getVisibility(txn, groupId);
will(returnValue(both));
oneOf(database).getContacts(txn);
oneOf(database).getContactIds(txn);
will(returnValue(both));
oneOf(database).commitTransaction(txn);
}});

View File

@@ -55,7 +55,7 @@ public class H2DatabaseTest extends BriarTestCase {
private final ContactId contactId;
private final GroupId groupId;
private final MessageId messageId, messageId1;
private final String subject;
private final String contactName, subject;
private final long timestamp;
private final int size;
private final byte[] raw;
@@ -70,6 +70,7 @@ public class H2DatabaseTest extends BriarTestCase {
messageId = new MessageId(TestUtils.getRandomId());
messageId1 = new MessageId(TestUtils.getRandomId());
group = new Group(groupId, "Foo", null);
contactName = "Alice";
subject = "Foo";
timestamp = System.currentTimeMillis();
size = 1234;
@@ -93,7 +94,7 @@ public class H2DatabaseTest extends BriarTestCase {
Database<Connection> db = open(false);
Connection txn = db.startTransaction();
assertFalse(db.containsContact(txn, contactId));
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
assertTrue(db.containsContact(txn, contactId));
assertFalse(db.containsSubscription(txn, groupId));
db.addSubscription(txn, group);
@@ -147,22 +148,22 @@ public class H2DatabaseTest extends BriarTestCase {
Database<Connection> db = open(false);
Connection txn = db.startTransaction();
// Create three contacts
// Create three contacts, all with the same name
assertFalse(db.containsContact(txn, contactId));
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
assertTrue(db.containsContact(txn, contactId));
assertFalse(db.containsContact(txn, contactId1));
assertEquals(contactId1, db.addContact(txn));
assertEquals(contactId1, db.addContact(txn, contactName));
assertTrue(db.containsContact(txn, contactId1));
assertFalse(db.containsContact(txn, contactId2));
assertEquals(contactId2, db.addContact(txn));
assertEquals(contactId2, db.addContact(txn, contactName));
assertTrue(db.containsContact(txn, contactId2));
// Delete the contact with the highest ID
db.removeContact(txn, contactId2);
assertFalse(db.containsContact(txn, contactId2));
// Add another contact - a new ID should be created
// Add another contact (same name again) - a new ID should be created
assertFalse(db.containsContact(txn, contactId3));
assertEquals(contactId3, db.addContact(txn));
assertEquals(contactId3, db.addContact(txn, contactName));
assertTrue(db.containsContact(txn, contactId3));
db.commitTransaction(txn);
@@ -209,7 +210,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact and store a private message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addPrivateMessage(txn, privateMessage, contactId);
// Removing the contact should remove the message
@@ -228,7 +229,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact and store a private message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addPrivateMessage(txn, privateMessage, contactId);
// The message has no status yet, so it should not be sendable
@@ -256,7 +257,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact and store a private message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addPrivateMessage(txn, privateMessage, contactId);
db.addStatus(txn, contactId, messageId1, false);
@@ -284,7 +285,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.addVisibility(txn, contactId, groupId);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
@@ -322,7 +323,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.addVisibility(txn, contactId, groupId);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
@@ -359,7 +360,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.addVisibility(txn, contactId, groupId);
db.addGroupMessage(txn, message);
@@ -396,7 +397,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.addVisibility(txn, contactId, groupId);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
@@ -427,7 +428,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
db.addGroupMessage(txn, message);
@@ -459,7 +460,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact and some messages to ack
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addMessageToAck(txn, contactId, messageId);
db.addMessageToAck(txn, contactId, messageId1);
@@ -484,7 +485,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact and receive the same message twice
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addMessageToAck(txn, contactId, messageId);
db.addMessageToAck(txn, contactId, messageId);
@@ -509,7 +510,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.addVisibility(txn, contactId, groupId);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
@@ -748,7 +749,7 @@ public class H2DatabaseTest extends BriarTestCase {
// Add a contact with a transport
TransportProperties p = new TransportProperties(
Collections.singletonMap("foo", "bar"));
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.setRemoteProperties(txn, contactId, transportId, p, 1);
assertEquals(Collections.singletonMap(contactId, p),
db.getRemoteProperties(txn, transportId));
@@ -838,7 +839,7 @@ public class H2DatabaseTest extends BriarTestCase {
// Initialise the transport properties with version 1
TransportProperties p = new TransportProperties(
Collections.singletonMap("foo", "bar"));
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.setRemoteProperties(txn, contactId, transportId, p, 1);
assertEquals(Collections.singletonMap(contactId, p),
db.getRemoteProperties(txn, transportId));
@@ -870,7 +871,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact and subscribe to a group
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
@@ -887,7 +888,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
db.addGroupMessage(txn, message);
@@ -910,7 +911,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
db.addGroupMessage(txn, message);
@@ -933,7 +934,7 @@ public class H2DatabaseTest extends BriarTestCase {
// Add a contact, subscribe to a group and store a message -
// the message is older than the contact's retention time
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.addVisibility(txn, contactId, groupId);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
@@ -957,7 +958,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.addVisibility(txn, contactId, groupId);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
@@ -982,7 +983,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact and subscribe to a group
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.addVisibility(txn, contactId, groupId);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
@@ -1001,7 +1002,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact with a subscription
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
// There's no local subscription for the group
@@ -1018,7 +1019,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.addGroupMessage(txn, message);
db.addStatus(txn, contactId, messageId, false);
@@ -1037,7 +1038,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.addGroupMessage(txn, message);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
@@ -1057,7 +1058,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.addVisibility(txn, contactId, groupId);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
@@ -1079,7 +1080,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact, subscribe to a group and store a message
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
db.addVisibility(txn, contactId, groupId);
db.setSubscriptions(txn, contactId, Arrays.asList(group), 1);
@@ -1100,7 +1101,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact and subscribe to a group
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
// The group should not be visible to the contact
assertEquals(Collections.emptyList(), db.getVisibility(txn, groupId));
@@ -1192,7 +1193,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact and subscribe to a group
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
// A message with a private parent should return null
@@ -1241,7 +1242,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add a contact and subscribe to a group
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addSubscription(txn, group);
// Store a couple of messages
@@ -1472,7 +1473,7 @@ public class H2DatabaseTest extends BriarTestCase {
// Subscribe to the groups and add a contact
for(Group g : groups) db.addSubscription(txn, g);
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
// Make the groups visible to the contact
Collections.shuffle(groups);
@@ -1528,7 +1529,7 @@ public class H2DatabaseTest extends BriarTestCase {
// Add the contact, the transport, the endpoint and the first two
// secrets (periods 0 and 1)
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addTransport(txn, transportId);
db.addEndpoint(txn, ep);
db.addSecrets(txn, Arrays.asList(s1, s2));
@@ -1622,7 +1623,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add the contact, the transport, the endpoint and the temporary secret
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addTransport(txn, transportId);
db.addEndpoint(txn, ep);
db.addSecrets(txn, Arrays.asList(s));
@@ -1678,7 +1679,7 @@ public class H2DatabaseTest extends BriarTestCase {
Connection txn = db.startTransaction();
// Add the contact, the transport, the endpoint and the temporary secret
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addTransport(txn, transportId);
db.addEndpoint(txn, ep);
db.addSecrets(txn, Arrays.asList(s));
@@ -1749,7 +1750,7 @@ public class H2DatabaseTest extends BriarTestCase {
assertEquals(Collections.emptyList(), db.getEndpoints(txn));
// Add the contact, the transports and the endpoints
assertEquals(contactId, db.addContact(txn));
assertEquals(contactId, db.addContact(txn, contactName));
db.addTransport(txn, transportId1);
db.addTransport(txn, transportId2);
db.addEndpoint(txn, ep1);

View File

@@ -104,7 +104,7 @@ public class SimplexMessagingIntegrationTest extends BriarTestCase {
KeyManager km = alice.getInstance(KeyManager.class);
km.start();
// Add Bob as a contact
ContactId contactId = db.addContact();
ContactId contactId = db.addContact("Bob");
Endpoint ep = new Endpoint(contactId, transportId, epoch,
CLOCK_DIFFERENCE, LATENCY, true);
// Add the transport and the endpoint
@@ -151,7 +151,7 @@ public class SimplexMessagingIntegrationTest extends BriarTestCase {
KeyManager km = bob.getInstance(KeyManager.class);
km.start();
// Add Alice as a contact
ContactId contactId = db.addContact();
ContactId contactId = db.addContact("Alice");
Endpoint ep = new Endpoint(contactId, transportId, epoch,
CLOCK_DIFFERENCE, LATENCY, false);
// Add the transport and the endpoint