package nl.minicom.gitolite.manager.models; import org.junit.Assert; import org.junit.Test; import com.google.common.collect.Sets; public class ConfigTest { private static final String TEST_REPO = "test-repo"; private static final String TEST_USER = "test-user"; private static final String TEST_GROUP = "@test-group"; @Test public void testConstructor() { new Config(); } @Test public void testIfWeCanCreateNewRepo() { Config config = new Config(); Repository repo = config.createRepository(TEST_REPO); Assert.assertEquals(Sets.newHashSet(repo), config.getRepositories()); } @Test(expected = NullPointerException.class) public void testThatCreateRepositoryMethodThrowsExceptionWhenNameIsNull() { new Config().createRepository(null); } @Test(expected = IllegalArgumentException.class) public void testThatCreateRepositoryMethodThrowsExceptionWhenNameIsEmpty() { new Config().createRepository(""); } @Test(expected = IllegalArgumentException.class) public void testThatWeCannotCreateTwoReposWithSameName() { Config config = new Config(); config.createRepository(TEST_REPO); config.createRepository(TEST_REPO); } @Test public void testThatEnsureRepositoryMethodCreatesNewRepoWhenRepoDoesntExist() { Config config = new Config(); Repository repo = config.ensureRepositoryExists(TEST_REPO); Assert.assertEquals(Sets.newHashSet(repo), config.getRepositories()); } @Test public void testThatEnsureRepositoryMethodDoesNotCreateDuplicateRepositories() { Config config = new Config(); Repository repo1 = config.ensureRepositoryExists(TEST_REPO); Repository repo2 = config.ensureRepositoryExists(TEST_REPO); Assert.assertEquals(repo1, repo2); Assert.assertEquals(Sets.newHashSet(repo1), config.getRepositories()); } @Test(expected = NullPointerException.class) public void testThatEnsureRepositoryExistsMethodThrowsExceptionWhenNameIsNull() { new Config().ensureRepositoryExists(null); } @Test(expected = IllegalArgumentException.class) public void testThatEnsureRepositoryExistsMethodThrowsExceptionWhenNameIsEmpty() { new Config().ensureRepositoryExists(""); } @Test public void testRemoveRepositoryOnExistingRepository() { Config config = new Config(); Repository repository = config.createRepository(TEST_REPO); Assert.assertTrue(config.removeRepository(repository)); Assert.assertEquals(Sets.<Repository>newHashSet(), config.getRepositories()); } @Test(expected = NullPointerException.class) public void testRemoveRepositoryOnNullArgument() { new Config().removeRepository(null); } @Test public void testHasRepositoryMethodWhenRepositoryExists() { Config config = new Config(); config.createRepository(TEST_REPO); Assert.assertTrue(config.hasRepository(TEST_REPO)); } @Test public void testHasRepositoryMethodWhenRepositoryDoesNotExist() { Assert.assertFalse(new Config().hasRepository(TEST_REPO)); } @Test(expected = NullPointerException.class) public void testGetRepositoryWithNullAsInput() { new Config().getRepository(null); } @Test(expected = IllegalArgumentException.class) public void testGetRepositoryWithEmptyStringAsInput() { new Config().getRepository(""); } @Test public void testIfWeCanCreateNewGroup() { Config config = new Config(); Group group = config.createGroup(TEST_GROUP); Assert.assertEquals(Sets.newHashSet(group), config.getGroups()); } @Test(expected = NullPointerException.class) public void testThatCreateGroupMethodThrowsExceptionWhenNameIsNull() { new Config().createGroup(null); } @Test(expected = IllegalArgumentException.class) public void testThatCreateGroupMethodThrowsExceptionWhenNameIsEmpty() { new Config().createGroup(""); } @Test(expected = IllegalArgumentException.class) public void testThatWeCannotCreateTwoGroupsWithSameName() { Config config = new Config(); config.createGroup(TEST_GROUP); config.createGroup(TEST_GROUP); } @Test public void testThatEnsureGroupMethodCreatesNewgroupWhengroupDoesntExist() { Config config = new Config(); Group group = config.ensureGroupExists(TEST_GROUP); Assert.assertEquals(Sets.newHashSet(group), config.getGroups()); } @Test public void testThatEnsureGroupMethodDoesNotCreateDuplicateGroup() { Config config = new Config(); Group group1 = config.ensureGroupExists(TEST_GROUP); Group group2 = config.ensureGroupExists(TEST_GROUP); Assert.assertEquals(group1, group2); Assert.assertEquals(Sets.newHashSet(group1), config.getGroups()); } @Test(expected = NullPointerException.class) public void testThatEnsureGroupExistsMethodThrowsExceptionWhenNameIsNull() { new Config().ensureGroupExists(null); } @Test(expected = IllegalArgumentException.class) public void testThatEnsureGroupExistsMethodThrowsExceptionWhenNameIsEmpty() { new Config().ensureGroupExists(""); } @Test public void testRemoveGroupOnExistingGroup() { Config config = new Config(); Group group = config.createGroup(TEST_GROUP); Assert.assertTrue(config.removeGroup(group)); Assert.assertEquals(Sets.<Group>newHashSet(), config.getGroups()); } @Test(expected = NullPointerException.class) public void testRemoveGroupOnNullArgument() { new Config().removeGroup(null); } @Test public void testHasGroupMethodWhenGroupExists() { Config config = new Config(); config.createGroup(TEST_GROUP); Assert.assertTrue(config.hasGroup(TEST_GROUP)); } @Test public void testHasGroupMethodWhenGroupDoesNotExist() { Assert.assertFalse(new Config().hasGroup(TEST_GROUP)); } @Test(expected = NullPointerException.class) public void testGetGroupWithNullAsInput() { new Config().getGroup(null); } @Test(expected = IllegalArgumentException.class) public void testGetGroupWithEmptyStringAsInput() { new Config().getGroup(""); } @Test public void testIfWeCanCreateNewUser() { Config config = new Config(); User user = config.createUser(TEST_USER); Assert.assertEquals(Sets.newHashSet(user), config.getUsers()); } @Test(expected = NullPointerException.class) public void testThatCreateUserMethodThrowsExceptionWhenNameIsNull() { new Config().createUser(null); } @Test(expected = IllegalArgumentException.class) public void testThatCreateUserMethodThrowsExceptionWhenNameIsEmpty() { new Config().createUser(""); } @Test(expected = IllegalArgumentException.class) public void testThatWeCannotCreateTwoUsersWithSameName() { Config config = new Config(); config.createUser(TEST_USER); config.createUser(TEST_USER); } @Test public void testThatEnsureUserMethodCreatesNewuserWhenuserDoesntExist() { Config config = new Config(); User user = config.ensureUserExists(TEST_USER); Assert.assertEquals(Sets.newHashSet(user), config.getUsers()); } @Test public void testThatEnsureUserMethodDoesNotCreateDuplicateUser() { Config config = new Config(); User user1 = config.ensureUserExists(TEST_USER); User user2 = config.ensureUserExists(TEST_USER); Assert.assertEquals(user1, user2); Assert.assertEquals(Sets.newHashSet(user1), config.getUsers()); } @Test(expected = NullPointerException.class) public void testThatEnsureUserExistsMethodThrowsExceptionWhenNameIsNull() { new Config().ensureUserExists(null); } @Test(expected = IllegalArgumentException.class) public void testThatEnsureUserExistsMethodThrowsExceptionWhenNameIsEmpty() { new Config().ensureUserExists(""); } @Test public void testRemoveUserOnExistingUser() { Config config = new Config(); User user = config.createUser(TEST_USER); Assert.assertTrue(config.removeUser(user)); Assert.assertEquals(Sets.<User>newHashSet(), config.getUsers()); } @Test(expected = NullPointerException.class) public void testRemoveUserOnNullArgument() { new Config().removeUser(null); } @Test public void testHasUserMethodWhenUserExists() { Config config = new Config(); config.createUser(TEST_USER); Assert.assertTrue(config.hasUser(TEST_USER)); } @Test public void testHasUserMethodWhenUserDoesNotExist() { Assert.assertFalse(new Config().hasUser(TEST_USER)); } @Test(expected = NullPointerException.class) public void testGetUserWithNullAsInput() { new Config().getUser(null); } @Test(expected = IllegalArgumentException.class) public void testGetUserWithEmptyStringAsInput() { new Config().getUser(""); } }