diff --git a/briar-api/src/net/sf/briar/api/Contact.java b/briar-api/src/net/sf/briar/api/Contact.java new file mode 100644 index 0000000000000000000000000000000000000000..cfe5ddf14573063efabc91f4d913a6ce90a6fffc --- /dev/null +++ b/briar-api/src/net/sf/briar/api/Contact.java @@ -0,0 +1,31 @@ +package net.sf.briar.api; + +public class Contact { + + private final ContactId id; + private final String name; + + public Contact(ContactId id, String name) { + this.id = id; + this.name = name; + } + + public ContactId getId() { + return id; + } + + public String getName() { + return name; + } + + @Override + public int hashCode() { + return id.hashCode(); + } + + @Override + public boolean equals(Object o) { + if(o instanceof Contact) return id.equals(((Contact) o).id); + return false; + } +} diff --git a/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java b/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java index 1ea9c17b575e08147e7de120c6190a5d5be9c50f..fbfba41c33f27a069565af1bc8b0a6643c3de4a3 100644 --- a/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java +++ b/briar-api/src/net/sf/briar/api/db/DatabaseComponent.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.util.Collection; import java.util.Map; +import net.sf.briar.api.Contact; import net.sf.briar.api.ContactId; import net.sf.briar.api.Rating; import net.sf.briar.api.TransportConfig; @@ -50,11 +51,12 @@ public interface DatabaseComponent { void removeListener(DatabaseListener d); /** - * Adds a new contact to the database and returns an ID for the contact. + * Adds a contact with the given name to the database and returns an ID for + * the contact. */ - ContactId addContact() throws DbException; + ContactId addContact(String name) throws DbException; - /** Adds an endpoitn to the database. */ + /** Adds an endpoint to the database. */ void addEndpoint(Endpoint ep) throws DbException; /** Adds a locally generated group message to the database. */ @@ -155,8 +157,8 @@ public interface DatabaseComponent { /** Returns the configuration for the given transport. */ TransportConfig getConfig(TransportId t) throws DbException; - /** Returns the IDs of all contacts. */ - Collection<ContactId> getContacts() throws DbException; + /** Returns all contacts. */ + Collection<Contact> getContacts() throws DbException; /** Returns the local transport properties for the given transport. */ TransportProperties getLocalProperties(TransportId t) throws DbException; diff --git a/briar-core/src/net/sf/briar/db/Database.java b/briar-core/src/net/sf/briar/db/Database.java index 209c40722df549242a0872766212f7d22b0db66d..34fe4ab8ccd3f57652d9ce549921fb733617787d 100644 --- a/briar-core/src/net/sf/briar/db/Database.java +++ b/briar-core/src/net/sf/briar/db/Database.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.util.Collection; import java.util.Map; +import net.sf.briar.api.Contact; import net.sf.briar.api.ContactId; import net.sf.briar.api.Rating; import net.sf.briar.api.TransportConfig; @@ -77,11 +78,12 @@ interface Database<T> { void commitTransaction(T txn) throws DbException; /** - * Adds a new contact to the database and returns an ID for the contact. + * Adds a contact with the given name to the database and returns an ID for + * the contact. * <p> * Locking: contact write, subscription write. */ - ContactId addContact(T txn) throws DbException; + ContactId addContact(T txn, String name) throws DbException; /** * Adds an endpoint to the database. @@ -203,7 +205,14 @@ interface Database<T> { * <p> * Locking: contact read. */ - Collection<ContactId> getContacts(T txn) throws DbException; + Collection<ContactId> getContactIds(T txn) throws DbException; + + /** + * Returns all contacts. + * <p> + * Locking: contact read. + */ + Collection<Contact> getContacts(T txn) throws DbException; /** * Returns all endpoints. diff --git a/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java b/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java index b27f8acc754a3fe97cefa533992995c08af246f7..789b37bd563288dd61b4a723e901cea6075f1d5c 100644 --- a/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java +++ b/briar-core/src/net/sf/briar/db/DatabaseComponentImpl.java @@ -22,6 +22,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.logging.Logger; +import net.sf.briar.api.Contact; import net.sf.briar.api.ContactId; import net.sf.briar.api.Rating; import net.sf.briar.api.TransportConfig; @@ -171,7 +172,7 @@ DatabaseCleaner.Callback { listeners.remove(d); } - public ContactId addContact() throws DbException { + public ContactId addContact(String name) throws DbException { ContactId c; contactLock.writeLock().lock(); try { @@ -179,7 +180,7 @@ DatabaseCleaner.Callback { try { T txn = db.startTransaction(); try { - c = db.addContact(txn); + c = db.addContact(txn, name); db.commitTransaction(txn); } catch(DbException e) { db.abortTransaction(txn); @@ -279,7 +280,7 @@ DatabaseCleaner.Callback { if(sender != null) db.addStatus(txn, sender, id, true); if(stored) { // Mark the message as unseen by other contacts - for(ContactId c : db.getContacts(txn)) { + for(ContactId c : db.getContactIds(txn)) { if(!c.equals(sender)) db.addStatus(txn, c, id, false); } // Calculate and store the message's sendability @@ -801,12 +802,12 @@ DatabaseCleaner.Callback { } } - public Collection<ContactId> getContacts() throws DbException { + public Collection<Contact> getContacts() throws DbException { contactLock.readLock().lock(); try { T txn = db.startTransaction(); try { - Collection<ContactId> contacts = db.getContacts(txn); + Collection<Contact> contacts = db.getContacts(txn); db.commitTransaction(txn); return contacts; } catch(DbException e) { @@ -1691,7 +1692,7 @@ DatabaseCleaner.Callback { HashSet<ContactId> oldVisible = new HashSet<ContactId>(db.getVisibility(txn, g)); // Set the group's visibility for each current contact - for(ContactId c : db.getContacts(txn)) { + for(ContactId c : db.getContactIds(txn)) { boolean then = oldVisible.contains(c); boolean now = newVisible.contains(c); if(!then && now) { diff --git a/briar-core/src/net/sf/briar/db/JdbcDatabase.java b/briar-core/src/net/sf/briar/db/JdbcDatabase.java index 550b20e4406d818a1ee45fc1b36706a7a9171c4c..28ddeb940124d966a78a9e437e0729da8a6a0d61 100644 --- a/briar-core/src/net/sf/briar/db/JdbcDatabase.java +++ b/briar-core/src/net/sf/briar/db/JdbcDatabase.java @@ -26,6 +26,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.logging.Logger; +import net.sf.briar.api.Contact; import net.sf.briar.api.ContactId; import net.sf.briar.api.Rating; import net.sf.briar.api.TransportConfig; @@ -58,7 +59,10 @@ abstract class JdbcDatabase implements Database<Connection> { // Locking: contact private static final String CREATE_CONTACTS = - "CREATE TABLE contacts (contactId COUNTER)"; + "CREATE TABLE contacts " + + " (contactId COUNTER," + + " name VARCHAR NOT NULL," + + " PRIMARY KEY (contactId))"; // Locking: subscription private static final String CREATE_GROUPS = @@ -492,13 +496,15 @@ abstract class JdbcDatabase implements Database<Connection> { if(interrupted) Thread.currentThread().interrupt(); } - public ContactId addContact(Connection txn) throws DbException { + public ContactId addContact(Connection txn, String name) + throws DbException { PreparedStatement ps = null; ResultSet rs = null; try { // Create a contact row - String sql = "INSERT INTO contacts DEFAULT VALUES"; + String sql = "INSERT INTO contacts (name) VALUES (?)"; ps = txn.prepareStatement(sql); + ps.setString(1, name); int affected = ps.executeUpdate(); if(affected != 1) throw new DbStateException(); ps.close(); @@ -1001,7 +1007,7 @@ abstract class JdbcDatabase implements Database<Connection> { } } - public Collection<ContactId> getContacts(Connection txn) + public Collection<ContactId> getContactIds(Connection txn) throws DbException { PreparedStatement ps = null; ResultSet rs = null; @@ -1021,6 +1027,30 @@ abstract class JdbcDatabase implements Database<Connection> { } } + public Collection<Contact> getContacts(Connection txn) + throws DbException { + PreparedStatement ps = null; + ResultSet rs = null; + try { + String sql = "SELECT contactId, name FROM contacts"; + ps = txn.prepareStatement(sql); + rs = ps.executeQuery(); + List<Contact> contacts = new ArrayList<Contact>(); + while(rs.next()) { + ContactId id = new ContactId(rs.getInt(1)); + String name = rs.getString(2); + contacts.add(new Contact(id, name)); + } + rs.close(); + ps.close(); + return Collections.unmodifiableList(contacts); + } catch(SQLException e) { + tryToClose(rs); + tryToClose(ps); + throw new DbException(e); + } + } + public Collection<Endpoint> getEndpoints(Connection txn) throws DbException { PreparedStatement ps = null; diff --git a/briar-tests/src/net/sf/briar/db/DatabaseComponentTest.java b/briar-tests/src/net/sf/briar/db/DatabaseComponentTest.java index 4d1cbb4b84ee89fb118b399e7cf1a0102ac24cd7..f035ed314ffa5faa85a79be7b1a6586c0ba28ea9 100644 --- a/briar-tests/src/net/sf/briar/db/DatabaseComponentTest.java +++ b/briar-tests/src/net/sf/briar/db/DatabaseComponentTest.java @@ -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); }}); diff --git a/briar-tests/src/net/sf/briar/db/H2DatabaseTest.java b/briar-tests/src/net/sf/briar/db/H2DatabaseTest.java index 927871d755b462c2286d76280e21196119519a09..37cc20a629b2ad97235ebaa45c56575219ae5808 100644 --- a/briar-tests/src/net/sf/briar/db/H2DatabaseTest.java +++ b/briar-tests/src/net/sf/briar/db/H2DatabaseTest.java @@ -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); diff --git a/briar-tests/src/net/sf/briar/messaging/simplex/SimplexMessagingIntegrationTest.java b/briar-tests/src/net/sf/briar/messaging/simplex/SimplexMessagingIntegrationTest.java index c5f9a402c4c48e685a06f562ca9064aad104b17a..4ee3256b5aa3f2aaee77f1dada580baba17827df 100644 --- a/briar-tests/src/net/sf/briar/messaging/simplex/SimplexMessagingIntegrationTest.java +++ b/briar-tests/src/net/sf/briar/messaging/simplex/SimplexMessagingIntegrationTest.java @@ -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