diff --git a/briar-tests/src/org/briarproject/bramble/identity/IdentityManagerImplTest.java b/briar-tests/src/org/briarproject/bramble/identity/IdentityManagerImplTest.java index afcc1db3ab9cfd4648d2034e71fbde76c2df5011..f35044b07992fd52d8ad4ec2276e8dc6d8eeed1b 100644 --- a/briar-tests/src/org/briarproject/bramble/identity/IdentityManagerImplTest.java +++ b/briar-tests/src/org/briarproject/bramble/identity/IdentityManagerImplTest.java @@ -1,6 +1,6 @@ package org.briarproject.bramble.identity; -import org.briarproject.BriarTestCase; +import org.briarproject.BriarMockTestCase; import org.briarproject.TestUtils; import org.briarproject.bramble.api.contact.Contact; import org.briarproject.bramble.api.contact.ContactId; @@ -12,48 +12,73 @@ import org.briarproject.bramble.api.identity.AuthorId; import org.briarproject.bramble.api.identity.IdentityManager; import org.briarproject.bramble.api.identity.LocalAuthor; import org.jmock.Expectations; -import org.jmock.Mockery; import org.junit.Test; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import static org.briarproject.bramble.api.identity.Author.Status.OURSELVES; import static org.briarproject.bramble.api.identity.Author.Status.UNKNOWN; import static org.briarproject.bramble.api.identity.Author.Status.UNVERIFIED; import static org.briarproject.bramble.api.identity.Author.Status.VERIFIED; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; -public class IdentityManagerImplTest extends BriarTestCase { +public class IdentityManagerImplTest extends BriarMockTestCase { - private final Mockery context; private final IdentityManager identityManager; - private final DatabaseComponent db; - private final Transaction txn; + private final DatabaseComponent db = context.mock(DatabaseComponent.class); + private final Transaction txn = new Transaction(null, false); + private final LocalAuthor localAuthor = + new LocalAuthor(new AuthorId(TestUtils.getRandomId()), + TestUtils.getRandomString(8), TestUtils.getRandomBytes(42), + TestUtils.getRandomBytes(42), 0); + private final Collection<LocalAuthor> localAuthors = + Collections.singletonList(localAuthor); public IdentityManagerImplTest() { - context = new Mockery(); - db = context.mock(DatabaseComponent.class); - txn = new Transaction(null, false); identityManager = new IdentityManagerImpl(db); } @Test - public void testUnitTestsExist() { - fail(); // FIXME: Write more tests + public void testRegisterLocalAuthor() throws DbException { + expectRegisterLocalAuthor(); + identityManager.registerLocalAuthor(localAuthor); + } + + private void expectRegisterLocalAuthor() throws DbException { + context.checking(new Expectations() {{ + oneOf(db).startTransaction(false); + will(returnValue(txn)); + oneOf(db).addLocalAuthor(txn, localAuthor); + oneOf(db).commitTransaction(txn); + oneOf(db).endTransaction(txn); + }}); + } + + @Test + public void testGetLocalAuthor() throws DbException { + context.checking(new Expectations() {{ + oneOf(db).startTransaction(true); + will(returnValue(txn)); + oneOf(db).getLocalAuthors(txn); + will(returnValue(localAuthors)); + oneOf(db).commitTransaction(txn); + oneOf(db).endTransaction(txn); + }}); + assertEquals(localAuthor, identityManager.getLocalAuthor()); + } + + @Test + public void testGetCachedLocalAuthor() throws DbException { + expectRegisterLocalAuthor(); + identityManager.registerLocalAuthor(localAuthor); + assertEquals(localAuthor, identityManager.getLocalAuthor()); } @Test public void testGetAuthorStatus() throws DbException { final AuthorId authorId = new AuthorId(TestUtils.getRandomId()); - final Collection<LocalAuthor> localAuthors = new ArrayList<>(); - LocalAuthor localAuthor = - new LocalAuthor(new AuthorId(TestUtils.getRandomId()), - TestUtils.getRandomString(8), - TestUtils.getRandomBytes(42), - TestUtils.getRandomBytes(42), 0); - localAuthors.add(localAuthor); final Collection<Contact> contacts = new ArrayList<>(); context.checking(new Expectations() {{ @@ -96,8 +121,6 @@ public class IdentityManagerImplTest extends BriarTestCase { }}); assertEquals(OURSELVES, identityManager.getAuthorStatus(localAuthor.getId())); - - context.assertIsSatisfied(); } private void checkAuthorStatusContext(final AuthorId authorId,