/** * OpenSpotLight - Open Source IT Governance Platform * * Copyright (c) 2009, CARAVELATECH CONSULTORIA E TECNOLOGIA EM INFORMATICA LTDA * or third-party contributors as indicated by the @author tags or express * copyright attribution statements applied by the authors. All third-party * contributions are distributed under license by CARAVELATECH CONSULTORIA E * TECNOLOGIA EM INFORMATICA LTDA. * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution; if not, write to: * Free Software Foundation, Inc. * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301 USA * *********************************************************************** * OpenSpotLight - Plataforma de Governança de TI de Código Aberto * * Direitos Autorais Reservados (c) 2009, CARAVELATECH CONSULTORIA E TECNOLOGIA * EM INFORMATICA LTDA ou como contribuidores terceiros indicados pela etiqueta * @author ou por expressa atribuição de direito autoral declarada e atribuída pelo autor. * Todas as contribuições de terceiros estão distribuídas sob licença da * CARAVELATECH CONSULTORIA E TECNOLOGIA EM INFORMATICA LTDA. * * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os * termos da Licença Pública Geral Menor do GNU conforme publicada pela Free Software * Foundation. * * Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA * GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA * FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor do GNU para mais detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto com este * programa; se não, escreva para: * Free Software Foundation, Inc. * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301 USA */ package org.openspotlight.conf; import java.util.Iterator; import junit.framework.Assert; import org.junit.Test; import org.openspotlight.domain.ArtifactSource; import org.openspotlight.domain.ArtifactSourceMapping; import org.openspotlight.domain.Group; import org.openspotlight.domain.Repository; import org.openspotlight.domain.RepositoryBuilder; public class RespoitoryBuilderTest { @Test public void testSimpleFileBuilder() { Repository repositorty = RepositoryBuilder.newRepositoryNamed("test").withGroup("OSL") .withArtifactSource("file://Users/porcelli/Documents/dev", "/osl") .withEncoding("UTF-8") .withArtifactMapping("osl-common") .withIncludes("**/*.*") .withExcludes("**/.DS_Store") .withTask(CallableImplJust2Test.class) .andCreate(); Assert.assertEquals("test", repositorty.getName()); Assert.assertEquals(1, repositorty.getGroups().size()); Group group = repositorty.getGroups().iterator().next(); Assert.assertEquals("OSL", group.getName()); Assert.assertEquals(1, group.getArtifactSources().size()); ArtifactSource artifactSource = group.getArtifactSources().iterator().next(); Assert.assertEquals("file://Users/porcelli/Documents/dev", artifactSource.getUrl()); Assert.assertEquals("UTF-8", artifactSource.getEncodingForFileContent()); Assert.assertEquals("/osl", artifactSource.getInitialLookup()); Assert.assertEquals(1, artifactSource.getMappings().size()); ArtifactSourceMapping mapping = artifactSource.getMappings().iterator().next(); Assert.assertEquals(1, mapping.getIncludeds().size()); Assert.assertEquals("osl-common", mapping.getFrom()); Assert.assertEquals("**/*.*", mapping.getIncludeds().iterator().next()); Assert.assertEquals("**/.DS_Store", mapping.getExcludeds().iterator().next()); Assert.assertEquals(1, mapping.getTasks().size()); Assert.assertEquals(CallableImplJust2Test.class, mapping.getTasks().get(0)); } @Test public void testSimpleFileBuilder2() { Repository repositorty = RepositoryBuilder.newRepositoryNamed("test").withGroup("OSL") .withArtifactSource("file://Users/porcelli/Documents/dev", "/osl") .withEncoding("UTF-8") .withArtifactMapping("osl-common") .withIncludes("**/*.*") .withExcludes("**/.DS_Store") .withTask(CallableImplJust2Test.class) .andWithAnotherArtifactMapping("osl-conf") .withIncludes("**/*.*") .withExcludes("**/.DS_Store") .withTask(CallableImplJust2Test.class) .andCreate(); Assert.assertEquals("test", repositorty.getName()); Assert.assertEquals(1, repositorty.getGroups().size()); Group group = repositorty.getGroups().iterator().next(); Assert.assertEquals("OSL", group.getName()); Assert.assertEquals(1, group.getArtifactSources().size()); ArtifactSource artifactSource = group.getArtifactSources().iterator().next(); Assert.assertEquals("file://Users/porcelli/Documents/dev", artifactSource.getUrl()); Assert.assertEquals("UTF-8", artifactSource.getEncodingForFileContent()); Assert.assertEquals("/osl", artifactSource.getInitialLookup()); Assert.assertEquals(2, artifactSource.getMappings().size()); for (ArtifactSourceMapping mapping: artifactSource.getMappings()) { Assert.assertEquals(1, mapping.getIncludeds().size()); if (!mapping.getFrom().equals("osl-common") && !mapping.getFrom().equals("osl-conf")) { Assert.fail(); } Assert.assertEquals("**/*.*", mapping.getIncludeds().iterator().next()); Assert.assertEquals("**/.DS_Store", mapping.getExcludeds().iterator().next()); Assert.assertEquals(1, mapping.getTasks().size()); Assert.assertEquals(CallableImplJust2Test.class, mapping.getTasks().get(0)); } } @Test public void testSimpleFileBuilder3() { Repository repositorty = RepositoryBuilder.newRepositoryNamed("test").withGroup("OSL") .withArtifactSource("file://Users/porcelli/Documents/dev", "/osl") .withEncoding("UTF-8") .withTask(CallableImplJust2Test.class) .withArtifactMapping("osl-common") .withIncludes("**/*.*") .withExcludes("**/.DS_Store") .andWithAnotherArtifactMapping("osl-conf") .withIncludes("**/*.*") .withExcludes("**/.DS_Store") .andCreate(); Assert.assertEquals("test", repositorty.getName()); Assert.assertEquals(1, repositorty.getGroups().size()); Group group = repositorty.getGroups().iterator().next(); Assert.assertEquals("OSL", group.getName()); Assert.assertEquals(1, group.getArtifactSources().size()); ArtifactSource artifactSource = group.getArtifactSources().iterator().next(); Assert.assertEquals("file://Users/porcelli/Documents/dev", artifactSource.getUrl()); Assert.assertEquals("UTF-8", artifactSource.getEncodingForFileContent()); Assert.assertEquals("/osl", artifactSource.getInitialLookup()); Assert.assertEquals(1, artifactSource.getTasks().size()); Assert.assertEquals(CallableImplJust2Test.class, artifactSource.getTasks().get(0)); Assert.assertEquals(2, artifactSource.getMappings().size()); for (ArtifactSourceMapping mapping: artifactSource.getMappings()) { Assert.assertEquals(1, mapping.getIncludeds().size()); if (!mapping.getFrom().equals("osl-common") && !mapping.getFrom().equals("osl-conf")) { Assert.fail(); } Assert.assertEquals("**/*.*", mapping.getIncludeds().iterator().next()); Assert.assertEquals("**/.DS_Store", mapping.getExcludeds().iterator().next()); Assert.assertEquals(0, mapping.getTasks().size()); } } @Test public void testFileBuilderWithMoreGroups() { Repository repositorty = RepositoryBuilder.newRepositoryNamed("test") .withGroup("MyCompanyName") .withSubGroup("MyItDepartment") .withSubGroup("OSL") .withArtifactSource("file://Users/porcelli/Documents/dev", "/osl") .withEncoding("UTF-8") .withTask(CallableImplJust2Test.class) .withArtifactMapping("osl-common") .withIncludes("**/*.*") .withExcludes("**/.DS_Store") .andWithAnotherArtifactMapping("osl-conf") .withIncludes("**/*.*") .withExcludes("**/.DS_Store") .andWithAnotherGroup("OSLInterface") .withArtifactSource("file://Users/porcelli/Documents/dev", "/osl-interface") .withEncoding("UTF-8") .withTask(CallableImplJust2Test.class) .withArtifactMapping("osl-common") .withIncludes("**/*.*") .withExcludes("**/.DS_Store") .andCreate(); Assert.assertEquals("test", repositorty.getName()); Assert.assertEquals(1, repositorty.getGroups().size()); Group companyGroup = repositorty.getGroups().iterator().next(); Assert.assertEquals("MyCompanyName", companyGroup.getName()); Assert.assertEquals(0, companyGroup.getArtifactSources().size()); Assert.assertEquals(1, companyGroup.getGroups().size()); Group itGroup = companyGroup.getGroups().iterator().next(); Assert.assertEquals("MyItDepartment", itGroup.getName()); Assert.assertEquals(0, itGroup.getArtifactSources().size()); Assert.assertEquals(2, itGroup.getGroups().size()); Iterator<Group> oslIt = itGroup.getGroups().iterator(); Group oslGroup = oslIt.next(); Assert.assertEquals("OSL", oslGroup.getName()); Assert.assertEquals(1, oslGroup.getArtifactSources().size()); ArtifactSource artifactSource = oslGroup.getArtifactSources().iterator().next(); Assert.assertEquals("file://Users/porcelli/Documents/dev", artifactSource.getUrl()); Assert.assertEquals("UTF-8", artifactSource.getEncodingForFileContent()); Assert.assertEquals("/osl", artifactSource.getInitialLookup()); Assert.assertEquals(1, artifactSource.getTasks().size()); Assert.assertEquals(CallableImplJust2Test.class, artifactSource.getTasks().get(0)); Assert.assertEquals(2, artifactSource.getMappings().size()); for (ArtifactSourceMapping mapping: artifactSource.getMappings()) { Assert.assertEquals(1, mapping.getIncludeds().size()); if (!mapping.getFrom().equals("osl-common") && !mapping.getFrom().equals("osl-conf")) { Assert.fail(); } Assert.assertEquals("**/*.*", mapping.getIncludeds().iterator().next()); Assert.assertEquals("**/.DS_Store", mapping.getExcludeds().iterator().next()); Assert.assertEquals(0, mapping.getTasks().size()); } Group oslInterfaceGroup = oslIt.next(); Assert.assertEquals("OSLInterface", oslInterfaceGroup.getName()); Assert.assertEquals(1, oslInterfaceGroup.getArtifactSources().size()); ArtifactSource artifactSourceInterface = oslInterfaceGroup.getArtifactSources().iterator().next(); Assert.assertEquals("file://Users/porcelli/Documents/dev", artifactSourceInterface.getUrl()); Assert.assertEquals("UTF-8", artifactSourceInterface.getEncodingForFileContent()); Assert.assertEquals("/osl-interface", artifactSourceInterface.getInitialLookup()); Assert.assertEquals(1, artifactSourceInterface.getTasks().size()); Assert.assertEquals(CallableImplJust2Test.class, artifactSourceInterface.getTasks().get(0)); Assert.assertEquals(1, artifactSourceInterface.getMappings().size()); Iterator<ArtifactSourceMapping> itInterface = artifactSourceInterface.getMappings().iterator(); ArtifactSourceMapping mappingInterface = itInterface.next(); Assert.assertEquals(1, mappingInterface.getIncludeds().size()); Assert.assertEquals("osl-common", mappingInterface.getFrom()); Assert.assertEquals("**/*.*", mappingInterface.getIncludeds().iterator().next()); Assert.assertEquals("**/.DS_Store", mappingInterface.getExcludeds().iterator().next()); } @Test public void testFileBuilderWithMoreGroupsUsingBackOperations() { Repository repositorty = RepositoryBuilder.newRepositoryNamed("test") .withGroup("MyCompanyName") .withSubGroup("MyItDepartment") .withSubGroup("OSL") .withArtifactSource("file://Users/porcelli/Documents/dev", "/osl") .withEncoding("UTF-8") .withTask(CallableImplJust2Test.class) .withArtifactMapping("osl-common") .withIncludes("**/*.*") .withExcludes("**/.DS_Store") .andWithAnotherArtifactMapping("osl-conf") .withIncludes("**/*.*") .withExcludes("**/.DS_Store") .back2Group() .back2Group() .back2Group() .andWithAnotherGroup("MyMktDepartment") .andWithAnotherGroup("OSLInterface") .withArtifactSource("file://Users/porcelli/Documents/dev", "/osl-interface") .withEncoding("UTF-8") .withTask(CallableImplJust2Test.class) .withArtifactMapping("osl-common") .withIncludes("**/*.*") .withExcludes("**/.DS_Store") .andCreate(); Assert.assertEquals("test", repositorty.getName()); Assert.assertEquals(1, repositorty.getGroups().size()); Group companyGroup = repositorty.getGroups().iterator().next(); Assert.assertEquals("MyCompanyName", companyGroup.getName()); Assert.assertEquals(0, companyGroup.getArtifactSources().size()); Assert.assertEquals(2, companyGroup.getGroups().size()); Iterator<Group> itCompany = companyGroup.getGroups().iterator(); Group itGroup = itCompany.next(); Assert.assertEquals("MyItDepartment", itGroup.getName()); Assert.assertEquals(0, itGroup.getArtifactSources().size()); Assert.assertEquals(1, itGroup.getGroups().size()); Group oslGroup = itGroup.getGroups().iterator().next(); Assert.assertEquals("OSL", oslGroup.getName()); Assert.assertEquals(1, oslGroup.getArtifactSources().size()); ArtifactSource artifactSource = oslGroup.getArtifactSources().iterator().next(); Assert.assertEquals("file://Users/porcelli/Documents/dev", artifactSource.getUrl()); Assert.assertEquals("UTF-8", artifactSource.getEncodingForFileContent()); Assert.assertEquals("/osl", artifactSource.getInitialLookup()); Assert.assertEquals(1, artifactSource.getTasks().size()); Assert.assertEquals(CallableImplJust2Test.class, artifactSource.getTasks().get(0)); Assert.assertEquals(2, artifactSource.getMappings().size()); for (ArtifactSourceMapping mapping: artifactSource.getMappings()) { Assert.assertEquals(1, mapping.getIncludeds().size()); if (!mapping.getFrom().equals("osl-common") && !mapping.getFrom().equals("osl-conf")) { Assert.fail(); } Assert.assertEquals("**/*.*", mapping.getIncludeds().iterator().next()); Assert.assertEquals("**/.DS_Store", mapping.getExcludeds().iterator().next()); Assert.assertEquals(0, mapping.getTasks().size()); } Group mktGroup = itCompany.next(); Assert.assertEquals("MyMktDepartment", mktGroup.getName()); Assert.assertEquals(0, mktGroup.getArtifactSources().size()); Assert.assertEquals(1, mktGroup.getGroups().size()); Group oslInterfaceGroup = mktGroup.getGroups().iterator().next(); Assert.assertEquals("OSLInterface", oslInterfaceGroup.getName()); Assert.assertEquals(1, oslInterfaceGroup.getArtifactSources().size()); ArtifactSource artifactSourceInterface = oslInterfaceGroup.getArtifactSources().iterator().next(); Assert.assertEquals("file://Users/porcelli/Documents/dev", artifactSourceInterface.getUrl()); Assert.assertEquals("UTF-8", artifactSourceInterface.getEncodingForFileContent()); Assert.assertEquals("/osl-interface", artifactSourceInterface.getInitialLookup()); Assert.assertEquals(1, artifactSourceInterface.getTasks().size()); Assert.assertEquals(CallableImplJust2Test.class, artifactSourceInterface.getTasks().get(0)); Assert.assertEquals(1, artifactSourceInterface.getMappings().size()); Iterator<ArtifactSourceMapping> itInterface = artifactSourceInterface.getMappings().iterator(); ArtifactSourceMapping mappingInterface = itInterface.next(); Assert.assertEquals(1, mappingInterface.getIncludeds().size()); Assert.assertEquals("osl-common", mappingInterface.getFrom()); Assert.assertEquals("**/*.*", mappingInterface.getIncludeds().iterator().next()); Assert.assertEquals("**/.DS_Store", mappingInterface.getExcludeds().iterator().next()); } }