001    /*
002     * #%L
003     * License Maven Plugin
004     * 
005     * $Id: LicenseStoreTest.java 14664 2011-09-09 07:47:49Z tchemit $
006     * $HeadURL: http://svn.codehaus.org/mojo/tags/license-maven-plugin-1.0/src/test/java/org/codehaus/mojo/license/model/LicenseStoreTest.java $
007     * %%
008     * Copyright (C) 2008 - 2011 CodeLutin, Codehaus, Tony Chemit
009     * %%
010     * This program is free software: you can redistribute it and/or modify
011     * it under the terms of the GNU Lesser General Public License as 
012     * published by the Free Software Foundation, either version 3 of the 
013     * License, or (at your option) any later version.
014     * 
015     * This program is distributed in the hope that it will be useful,
016     * but WITHOUT ANY WARRANTY; without even the implied warranty of
017     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
018     * GNU General Lesser Public License for more details.
019     * 
020     * You should have received a copy of the GNU General Lesser Public 
021     * License along with this program.  If not, see
022     * <http://www.gnu.org/licenses/lgpl-3.0.html>.
023     * #L%
024     */
025    
026    package org.codehaus.mojo.license.model;
027    
028    import org.junit.Assert;
029    import org.junit.Before;
030    import org.junit.Test;
031    
032    import java.io.IOException;
033    import java.net.URL;
034    import java.util.Arrays;
035    import java.util.List;
036    
037    /**
038     * Tests {@link LicenseStore}.
039     *
040     * @author tchemit <chemit@codelutin.com>
041     * @since 1.0
042     */
043    public class LicenseStoreTest
044    {
045    
046        public static final List<String> DEFAULT_LICENSES =
047            Arrays.asList( "agpl_v3", "apache_v2", "cddl_v1", "fdl_v1_3", "gpl_v1", "gpl_v2", "gpl_v3", "lgpl_v2_1",
048                           "lgpl_v3", "mit" );
049    
050        public static final List<String> NEW_LICENSES = Arrays.asList( "license1", "license2" );
051    
052        protected LicenseStore store;
053    
054        @Before
055        public void setUp()
056        {
057            store = null;
058        }
059    
060        @Test
061        public void testJarRepository()
062            throws IOException
063        {
064    
065            store = new LicenseStore();
066            store.init();
067    
068            List<LicenseRepository> repositories = store.getRepositories();
069            Assert.assertNotNull( repositories );
070            Assert.assertEquals( 1, repositories.size() );
071            LicenseRepository repository = repositories.get( 0 );
072    
073            License[] licenses1 = repository.getLicenses();
074            License[] licenses = store.getLicenses();
075            Assert.assertNotNull( licenses );
076            Assert.assertNotNull( licenses1 );
077            Assert.assertEquals( DEFAULT_LICENSES.size(), licenses.length );
078            Assert.assertEquals( DEFAULT_LICENSES.size(), licenses1.length );
079    
080            for ( String licenseName : DEFAULT_LICENSES )
081            {
082                License license = repository.getLicense( licenseName );
083                License license1 = store.getLicense( licenseName );
084                Assert.assertNotNull( license );
085                Assert.assertNotNull( license1 );
086                Assert.assertEquals( license, license1 );
087            }
088    
089            for ( String licenseName : store.getLicenseNames() )
090            {
091                Assert.assertTrue( DEFAULT_LICENSES.contains( licenseName ) );
092            }
093        }
094    
095        @Test
096        public void testOtherJarRepository()
097            throws IOException
098        {
099    
100            URL baseURL = getClass().getResource( "/newRepository" );
101            LicenseRepository jarRepository = new LicenseRepository();
102            jarRepository.setBaseURL( baseURL );
103    
104            store = new LicenseStore();
105            store.addRepository( jarRepository );
106            store.init();
107            List<LicenseRepository> repositories = store.getRepositories();
108            Assert.assertNotNull( repositories );
109            Assert.assertEquals( 1, repositories.size() );
110            LicenseRepository repository = repositories.get( 0 );
111    
112            License[] licenses1 = repository.getLicenses();
113            License[] licenses = store.getLicenses();
114            Assert.assertNotNull( licenses );
115            Assert.assertNotNull( licenses1 );
116            Assert.assertEquals( licenses1.length, 2 );
117            Assert.assertEquals( licenses1.length, licenses.length );
118    
119            for ( String licenseName : NEW_LICENSES )
120            {
121                License license = repository.getLicense( licenseName );
122                License license1 = store.getLicense( licenseName );
123                Assert.assertNotNull( license );
124                Assert.assertNotNull( license1 );
125                Assert.assertEquals( license, license1 );
126            }
127    
128            for ( String licenseName : store.getLicenseNames() )
129            {
130                Assert.assertTrue( NEW_LICENSES.contains( licenseName ) );
131            }
132        }
133    }