001 /**
002 * Copyright 2010-2012 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.codehaus.mojo.license.model;
017
018 import org.junit.Assert;
019 import org.junit.Before;
020 import org.junit.Test;
021
022 import java.io.IOException;
023 import java.net.URL;
024 import java.util.Arrays;
025 import java.util.List;
026
027 /**
028 * Tests {@link LicenseStore}.
029 *
030 * @author tchemit <chemit@codelutin.com>
031 * @since 1.0
032 */
033 public class LicenseStoreTest
034 {
035
036 public static final List<String> DEFAULT_LICENSES =
037 Arrays.asList( "agpl_v3", "apache_v2", "cddl_v1", "fdl_v1_3", "gpl_v1", "gpl_v2", "gpl_v3", "lgpl_v2_1",
038 "lgpl_v3", "mit" );
039
040 public static final List<String> NEW_LICENSES = Arrays.asList( "license1", "license2" );
041
042 protected LicenseStore store;
043
044 @Before
045 public void setUp()
046 {
047 store = null;
048 }
049
050 @Test
051 public void testJarRepository()
052 throws IOException
053 {
054
055 store = new LicenseStore();
056 store.init();
057
058 List<LicenseRepository> repositories = store.getRepositories();
059 Assert.assertNotNull( repositories );
060 Assert.assertEquals( 1, repositories.size() );
061 LicenseRepository repository = repositories.get( 0 );
062
063 License[] licenses1 = repository.getLicenses();
064 License[] licenses = store.getLicenses();
065 Assert.assertNotNull( licenses );
066 Assert.assertNotNull( licenses1 );
067 Assert.assertEquals( DEFAULT_LICENSES.size(), licenses.length );
068 Assert.assertEquals( DEFAULT_LICENSES.size(), licenses1.length );
069
070 for ( String licenseName : DEFAULT_LICENSES )
071 {
072 License license = repository.getLicense( licenseName );
073 License license1 = store.getLicense( licenseName );
074 Assert.assertNotNull( license );
075 Assert.assertNotNull( license1 );
076 Assert.assertEquals( license, license1 );
077 }
078
079 for ( String licenseName : store.getLicenseNames() )
080 {
081 Assert.assertTrue( DEFAULT_LICENSES.contains( licenseName ) );
082 }
083 }
084
085 @Test
086 public void testOtherJarRepository()
087 throws IOException
088 {
089
090 URL baseURL = getClass().getResource( "/newRepository" );
091 LicenseRepository jarRepository = new LicenseRepository();
092 jarRepository.setBaseURL( baseURL );
093
094 store = new LicenseStore();
095 store.addRepository( jarRepository );
096 store.init();
097 List<LicenseRepository> repositories = store.getRepositories();
098 Assert.assertNotNull( repositories );
099 Assert.assertEquals( 1, repositories.size() );
100 LicenseRepository repository = repositories.get( 0 );
101
102 License[] licenses1 = repository.getLicenses();
103 License[] licenses = store.getLicenses();
104 Assert.assertNotNull( licenses );
105 Assert.assertNotNull( licenses1 );
106 Assert.assertEquals( licenses1.length, 2 );
107 Assert.assertEquals( licenses1.length, licenses.length );
108
109 for ( String licenseName : NEW_LICENSES )
110 {
111 License license = repository.getLicense( licenseName );
112 License license1 = store.getLicense( licenseName );
113 Assert.assertNotNull( license );
114 Assert.assertNotNull( license1 );
115 Assert.assertEquals( license, license1 );
116 }
117
118 for ( String licenseName : store.getLicenseNames() )
119 {
120 Assert.assertTrue( NEW_LICENSES.contains( licenseName ) );
121 }
122 }
123 }