package org.projectusus.core.filerelations.model.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import java.util.HashSet; import java.util.Set; import org.junit.Test; import org.projectusus.core.filerelations.model.Cycle; import org.projectusus.core.filerelations.model.Packagename; public class PackageCycleTest { @Test public void nullPackageCycle() { try { new Cycle<Object>( null ); } catch( IllegalArgumentException e ) { // this exception is thrown by the Cycle constructor return; } catch( AssertionError e ) { // this exception is thrown by the Contract if C4J is enabled return; } fail( "Cycle with null argument should throw an exception" ); } @Test( expected = IllegalArgumentException.class ) public void emptyPackageCycle() { new Cycle<Packagename>( new HashSet<Packagename>() ); } @Test( expected = IllegalArgumentException.class ) public void packageCycleWith1Package() { Set<Packagename> packages = new HashSet<Packagename>(); packages.add( Packagename.of( "package1", null ) ); //$NON-NLS-1$ new Cycle<Packagename>( packages ); } @Test public void packageCycleWith2Packages() { Set<Packagename> packages = new HashSet<Packagename>(); packages.add( Packagename.of( "package1", null ) ); //$NON-NLS-1$ packages.add( Packagename.of( "package2", null ) ); //$NON-NLS-1$ Cycle<Packagename> cycle = new Cycle<Packagename>( packages ); assertEquals( 2, cycle.numberOfElements() ); } }