package nl.minicom.gitolite.manager.models; import java.io.IOException; import org.junit.Test; public class ConfigWriterTest extends ConfigWriterTestingUtils { @Test public void testSimpleCase() throws IOException { Config config = new Config(); Repository repo = config.createRepository("test"); User user = config.createUser("test-user"); repo.setPermission(user, Permission.ALL); validateWrittenConfig("simple-config.conf", config); } @Test public void testCaseWithAllGroup() throws IOException { Config config = new Config(); Repository repo = config.createRepository("test"); Group allGroup = config.createGroup("@all"); repo.setPermission(allGroup, Permission.ALL); validateWrittenConfig("config-with-all-group.conf", config); } @Test public void testCaseWithMultipleUsersAndGroups() throws IOException { Config config = new Config(); Repository repo = config.createRepository("test"); User user1 = config.createUser("test-user-1"); User user2 = config.createUser("test-user-2"); User user3 = config.createUser("test-user-3"); User user4 = config.createUser("test-user-4"); Group group1 = config.createGroup("@test-group-1"); Group group2 = config.createGroup("@test-group-2"); group1.add(user1); group2.add(user2); group2.add(user3); repo.setPermission(group1, Permission.ALL); repo.setPermission(group2, Permission.READ_WRITE); repo.setPermission(user4, Permission.READ_ONLY); validateWrittenConfig("multiple-users-and-groups-config.conf", config); } @Test public void testCaseWithEmbeddedGroups() throws IOException { Config config = new Config(); Repository repo = config.createRepository("test"); User user1 = config.createUser("test-user-1"); User user2 = config.createUser("test-user-2"); User user3 = config.createUser("test-user-3"); Group group1 = config.createGroup("@test-group-1"); Group group2 = config.createGroup("@test-group-2"); group1.add(user1); group1.add(user2); group2.add(user3); group2.add(group1); repo.setPermission(group1, Permission.ALL); repo.setPermission(group2, Permission.READ_WRITE); validateWrittenConfig("embedded-groups-config.conf", config); } }