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 }