mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 18:59:06 +01:00
OK, I think that's enough unit tests for one day.
This commit is contained in:
@@ -23,6 +23,8 @@ import net.sf.briar.api.protocol.GroupId;
|
||||
import net.sf.briar.api.protocol.Message;
|
||||
import net.sf.briar.api.protocol.MessageId;
|
||||
import net.sf.briar.api.protocol.Offer;
|
||||
import net.sf.briar.api.protocol.Subscriptions;
|
||||
import net.sf.briar.api.protocol.Transports;
|
||||
import net.sf.briar.api.protocol.writers.AckWriter;
|
||||
import net.sf.briar.api.protocol.writers.BatchWriter;
|
||||
import net.sf.briar.api.protocol.writers.OfferWriter;
|
||||
@@ -437,13 +439,18 @@ public abstract class DatabaseComponentTest extends TestCase {
|
||||
context.mock(TransportWriter.class);
|
||||
final Ack ack = context.mock(Ack.class);
|
||||
final Batch batch = context.mock(Batch.class);
|
||||
final Offer offer = context.mock(Offer.class);
|
||||
final RequestWriter requestWriter = context.mock(RequestWriter.class);
|
||||
final Subscriptions subscriptionsUpdate =
|
||||
context.mock(Subscriptions.class);
|
||||
final Transports transportsUpdate = context.mock(Transports.class);
|
||||
context.checking(new Expectations() {{
|
||||
// Check whether the contact is still in the DB - which it's not
|
||||
exactly(8).of(database).startTransaction();
|
||||
exactly(11).of(database).startTransaction();
|
||||
will(returnValue(txn));
|
||||
exactly(8).of(database).containsContact(txn, contactId);
|
||||
exactly(11).of(database).containsContact(txn, contactId);
|
||||
will(returnValue(false));
|
||||
exactly(8).of(database).commitTransaction(txn);
|
||||
exactly(11).of(database).commitTransaction(txn);
|
||||
}});
|
||||
DatabaseComponent db = createDatabaseComponent(database, cleaner);
|
||||
|
||||
@@ -488,6 +495,21 @@ public abstract class DatabaseComponentTest extends TestCase {
|
||||
assertTrue(false);
|
||||
} catch(NoSuchContactException expected) {}
|
||||
|
||||
try {
|
||||
db.receiveOffer(contactId, offer, requestWriter);
|
||||
assertTrue(false);
|
||||
} catch(NoSuchContactException expected) {}
|
||||
|
||||
try {
|
||||
db.receiveSubscriptions(contactId, subscriptionsUpdate);
|
||||
assertTrue(false);
|
||||
} catch(NoSuchContactException expected) {}
|
||||
|
||||
try {
|
||||
db.receiveTransports(contactId, transportsUpdate);
|
||||
assertTrue(false);
|
||||
} catch(NoSuchContactException expected) {}
|
||||
|
||||
context.assertIsSatisfied();
|
||||
}
|
||||
|
||||
@@ -921,11 +943,11 @@ public abstract class DatabaseComponentTest extends TestCase {
|
||||
oneOf(offer).getMessages();
|
||||
will(returnValue(offered));
|
||||
oneOf(database).setStatusSeenIfVisible(txn, contactId, messageId);
|
||||
will(returnValue(false)); // Not visible - request # 0
|
||||
will(returnValue(false)); // Not visible - request message # 0
|
||||
oneOf(database).setStatusSeenIfVisible(txn, contactId, messageId1);
|
||||
will(returnValue(true)); // Visible - do not request # 1
|
||||
will(returnValue(true)); // Visible - do not request message # 1
|
||||
oneOf(database).setStatusSeenIfVisible(txn, contactId, messageId2);
|
||||
will(returnValue(false)); // Not visible - request # 2
|
||||
will(returnValue(false)); // Not visible - request message # 2
|
||||
oneOf(requestWriter).writeBitmap(expectedRequest);
|
||||
}});
|
||||
DatabaseComponent db = createDatabaseComponent(database, cleaner);
|
||||
@@ -934,4 +956,63 @@ public abstract class DatabaseComponentTest extends TestCase {
|
||||
|
||||
context.assertIsSatisfied();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReceiveSubscriptions() throws Exception {
|
||||
final long timestamp = 1234L;
|
||||
Mockery context = new Mockery();
|
||||
@SuppressWarnings("unchecked")
|
||||
final Database<Object> database = context.mock(Database.class);
|
||||
final DatabaseCleaner cleaner = context.mock(DatabaseCleaner.class);
|
||||
final Subscriptions subscriptionsUpdate =
|
||||
context.mock(Subscriptions.class);
|
||||
context.checking(new Expectations() {{
|
||||
allowing(database).startTransaction();
|
||||
will(returnValue(txn));
|
||||
allowing(database).commitTransaction(txn);
|
||||
allowing(database).containsContact(txn, contactId);
|
||||
will(returnValue(true));
|
||||
// Get the contents of the update
|
||||
oneOf(subscriptionsUpdate).getSubscriptions();
|
||||
will(returnValue(Collections.singletonList(group)));
|
||||
oneOf(subscriptionsUpdate).getTimestamp();
|
||||
will(returnValue(timestamp));
|
||||
oneOf(database).setSubscriptions(txn, contactId,
|
||||
Collections.singletonList(group), timestamp);
|
||||
}});
|
||||
DatabaseComponent db = createDatabaseComponent(database, cleaner);
|
||||
|
||||
db.receiveSubscriptions(contactId, subscriptionsUpdate);
|
||||
|
||||
context.assertIsSatisfied();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testReceiveTransports() throws Exception {
|
||||
final long timestamp = 1234L;
|
||||
Mockery context = new Mockery();
|
||||
@SuppressWarnings("unchecked")
|
||||
final Database<Object> database = context.mock(Database.class);
|
||||
final DatabaseCleaner cleaner = context.mock(DatabaseCleaner.class);
|
||||
final Transports transportsUpdate = context.mock(Transports.class);
|
||||
context.checking(new Expectations() {{
|
||||
allowing(database).startTransaction();
|
||||
will(returnValue(txn));
|
||||
allowing(database).commitTransaction(txn);
|
||||
allowing(database).containsContact(txn, contactId);
|
||||
will(returnValue(true));
|
||||
// Get the contents of the update
|
||||
oneOf(transportsUpdate).getTransports();
|
||||
will(returnValue(transports));
|
||||
oneOf(transportsUpdate).getTimestamp();
|
||||
will(returnValue(timestamp));
|
||||
oneOf(database).setTransports(txn, contactId, transports,
|
||||
timestamp);
|
||||
}});
|
||||
DatabaseComponent db = createDatabaseComponent(database, cleaner);
|
||||
|
||||
db.receiveTransports(contactId, transportsUpdate);
|
||||
|
||||
context.assertIsSatisfied();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user