Remove redundant checks when adding contacts.

Hooks are now called exactly once per contact.
This commit is contained in:
akwizgran
2018-04-13 15:40:39 +01:00
parent 8c00f2417b
commit 85c11f8e1f
8 changed files with 35 additions and 104 deletions

View File

@@ -159,7 +159,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).getContacts(txn);
will(returnValue(Collections.singletonList(contact)));
}});
expectAddingContact(contact, true);
expectAddingContact(contact);
groupInvitationManager.createLocalState(txn);
}
@@ -175,20 +175,14 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
groupInvitationManager.createLocalState(txn);
}
private void expectAddingContact(Contact c, boolean contactExists)
throws Exception {
private void expectAddingContact(Contact c) throws Exception {
BdfDictionary meta = BdfDictionary
.of(new BdfEntry(GROUP_KEY_CONTACT_ID, c.getId().getInt()));
context.checking(new Expectations() {{
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, c);
will(returnValue(contactGroup));
oneOf(db).containsGroup(txn, contactGroup.getId());
will(returnValue(contactExists));
}});
if (contactExists) return;
BdfDictionary meta = BdfDictionary
.of(new BdfEntry(GROUP_KEY_CONTACT_ID, c.getId().getInt()));
context.checking(new Expectations() {{
oneOf(db).addGroup(txn, contactGroup);
oneOf(db).setGroupVisibility(txn, c.getId(), contactGroup.getId(),
SHARED);
@@ -197,8 +191,8 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
oneOf(db).getGroups(txn, PrivateGroupManager.CLIENT_ID,
PrivateGroupManager.CLIENT_VERSION);
will(returnValue(Collections.singletonList(privateGroup)));
oneOf(privateGroupManager)
.isMember(txn, privateGroup.getId(), c.getAuthor());
oneOf(privateGroupManager).isMember(txn, privateGroup.getId(),
c.getAuthor());
will(returnValue(true));
}});
expectAddingMember(privateGroup.getId(), c);
@@ -255,7 +249,7 @@ public class GroupInvitationManagerImplTest extends BrambleMockTestCase {
@Test
public void testAddingContact() throws Exception {
expectAddingContact(contact, false);
expectAddingContact(contact);
groupInvitationManager.addingContact(txn, contact);
}

View File

@@ -91,7 +91,7 @@ public class BlogSharingManagerImplTest extends BrambleMockTestCase {
}
@Test
public void testCreateLocalStateFirstTimeWithExistingContactNotSetUp()
public void testCreateLocalStateFirstTimeWithExistingContact()
throws Exception {
Transaction txn = new Transaction(null, false);
@@ -119,19 +119,10 @@ public class BlogSharingManagerImplTest extends BrambleMockTestCase {
Map<MessageId, BdfDictionary> sessions = Collections.emptyMap();
context.checking(new Expectations() {{
// Check for contact group in BlogSharingManagerImpl
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact);
will(returnValue(contactGroup));
oneOf(db).containsGroup(txn, contactGroup.getId());
will(returnValue(false));
// Check for contact group again in SharingManagerImpl
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact);
will(returnValue(contactGroup));
oneOf(db).containsGroup(txn, contactGroup.getId());
will(returnValue(false));
// Create the contact group and share it with the contact
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact);
will(returnValue(contactGroup));
oneOf(db).addGroup(txn, contactGroup);
oneOf(db).setGroupVisibility(txn, contactId, contactGroup.getId(),
SHARED);
@@ -151,33 +142,6 @@ public class BlogSharingManagerImplTest extends BrambleMockTestCase {
expectPreShareShareable(txn, contact, blog, sessions);
}
@Test
public void testCreateLocalStateFirstTimeWithExistingContactAlreadySetUp()
throws Exception {
Transaction txn = new Transaction(null, false);
context.checking(new Expectations() {{
// The local group doesn't exist - we need to set things up
oneOf(contactGroupFactory).createLocalGroup(CLIENT_ID,
CLIENT_VERSION);
will(returnValue(localGroup));
oneOf(db).containsGroup(txn, localGroup.getId());
will(returnValue(false));
oneOf(db).addGroup(txn, localGroup);
// Get contacts
oneOf(db).getContacts(txn);
will(returnValue(contacts));
// The contact has already been set up
oneOf(contactGroupFactory).createContactGroup(CLIENT_ID,
CLIENT_VERSION, contact);
will(returnValue(contactGroup));
oneOf(db).containsGroup(txn, contactGroup.getId());
will(returnValue(true));
}});
blogSharingManager.createLocalState(txn);
}
@Test
public void testCreateLocalStateSubsequentTime() throws Exception {
Transaction txn = new Transaction(null, false);