package org.projectusus.ui.dependencygraph.colorProvider;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
import static org.projectusus.ui.colors.UsusColors.getSharedColors;
import org.eclipse.core.resources.IFile;
import org.eclipse.swt.graphics.Color;
import org.junit.Before;
import org.junit.Test;
import org.projectusus.core.filerelations.model.ClassDescriptor;
import org.projectusus.core.filerelations.model.Classname;
import org.projectusus.core.filerelations.model.Packagename;
import org.projectusus.core.statistics.UsusModelProvider;
import org.projectusus.ui.colors.UsusColors;
import org.projectusus.ui.dependencygraph.nodes.PackageRepresenter;
public class PackageEdgeColorProviderTest {
PackageEdgeColorProvider provider = new PackageEdgeColorProvider();
private static Packagename SRC = Packagename.of( "SRC", null ); //$NON-NLS-1$
private static Packagename DEST = Packagename.of( "DEST", null ); //$NON-NLS-1$
private static Packagename OTHER_PACKAGE = Packagename.of( "OTHER_PACKAGE", null ); //$NON-NLS-1$
private ClassDescriptor SRC_A;
private ClassDescriptor DEST_A;
private ClassDescriptor OTHER_PACKAGE_A;
private ClassDescriptor OTHER_PACKAGE_B;
@Before
public void setup() {
UsusModelProvider.clear();
SRC_A = createDescriptor( SRC );
DEST_A = createDescriptor( DEST );
OTHER_PACKAGE_A = createDescriptor( OTHER_PACKAGE );
OTHER_PACKAGE_B = createDescriptor( OTHER_PACKAGE );
}
@Test
public void edgeColorRedWithOneEdge() {
SRC_A.addChild( DEST_A );
Color edgeColor = provider.getEdgeColor( new PackageRepresenter( SRC ), new PackageRepresenter( DEST ), true );
assertThat( edgeColor, is( getSharedColors().adjustSaturation( UsusColors.DARK_RED, 1 ) ) );
}
@Test
public void edgeColorBrightenedRedWithCrossPackageRelations() {
SRC_A.addChild( DEST_A );
DEST_A.addChild( OTHER_PACKAGE_A );
DEST_A.addChild( OTHER_PACKAGE_B );
Color edgeColor = provider.getEdgeColor( new PackageRepresenter( SRC ), new PackageRepresenter( DEST ), true );
assertThat( edgeColor, is( getSharedColors().adjustSaturation( UsusColors.DARK_RED, 0.5f ) ) );
}
@Test
public void edgeColorRedWithoutHighlightingStrongConnections() {
SRC_A.addChild( DEST_A );
DEST_A.addChild( OTHER_PACKAGE_A );
DEST_A.addChild( OTHER_PACKAGE_B );
Color edgeColor = provider.getEdgeColor( new PackageRepresenter( SRC ), new PackageRepresenter( DEST ), false );
assertThat( edgeColor, is( getSharedColors().getColor( UsusColors.DARK_RED ) ) );
}
private static ClassDescriptor createDescriptor( Packagename packagename ) {
return ClassDescriptor.of( mock( IFile.class ), new Classname( "classname1" ), packagename ); //$NON-NLS-1$
}
}