mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-20 22:59:54 +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.Message;
|
||||||
import net.sf.briar.api.protocol.MessageId;
|
import net.sf.briar.api.protocol.MessageId;
|
||||||
import net.sf.briar.api.protocol.Offer;
|
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.AckWriter;
|
||||||
import net.sf.briar.api.protocol.writers.BatchWriter;
|
import net.sf.briar.api.protocol.writers.BatchWriter;
|
||||||
import net.sf.briar.api.protocol.writers.OfferWriter;
|
import net.sf.briar.api.protocol.writers.OfferWriter;
|
||||||
@@ -437,13 +439,18 @@ public abstract class DatabaseComponentTest extends TestCase {
|
|||||||
context.mock(TransportWriter.class);
|
context.mock(TransportWriter.class);
|
||||||
final Ack ack = context.mock(Ack.class);
|
final Ack ack = context.mock(Ack.class);
|
||||||
final Batch batch = context.mock(Batch.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() {{
|
context.checking(new Expectations() {{
|
||||||
// Check whether the contact is still in the DB - which it's not
|
// 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));
|
will(returnValue(txn));
|
||||||
exactly(8).of(database).containsContact(txn, contactId);
|
exactly(11).of(database).containsContact(txn, contactId);
|
||||||
will(returnValue(false));
|
will(returnValue(false));
|
||||||
exactly(8).of(database).commitTransaction(txn);
|
exactly(11).of(database).commitTransaction(txn);
|
||||||
}});
|
}});
|
||||||
DatabaseComponent db = createDatabaseComponent(database, cleaner);
|
DatabaseComponent db = createDatabaseComponent(database, cleaner);
|
||||||
|
|
||||||
@@ -488,6 +495,21 @@ public abstract class DatabaseComponentTest extends TestCase {
|
|||||||
assertTrue(false);
|
assertTrue(false);
|
||||||
} catch(NoSuchContactException expected) {}
|
} 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();
|
context.assertIsSatisfied();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -921,11 +943,11 @@ public abstract class DatabaseComponentTest extends TestCase {
|
|||||||
oneOf(offer).getMessages();
|
oneOf(offer).getMessages();
|
||||||
will(returnValue(offered));
|
will(returnValue(offered));
|
||||||
oneOf(database).setStatusSeenIfVisible(txn, contactId, messageId);
|
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);
|
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);
|
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);
|
oneOf(requestWriter).writeBitmap(expectedRequest);
|
||||||
}});
|
}});
|
||||||
DatabaseComponent db = createDatabaseComponent(database, cleaner);
|
DatabaseComponent db = createDatabaseComponent(database, cleaner);
|
||||||
@@ -934,4 +956,63 @@ public abstract class DatabaseComponentTest extends TestCase {
|
|||||||
|
|
||||||
context.assertIsSatisfied();
|
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