// This product is provided under the terms of EPL (Eclipse Public License) // version 1.0. // // The full license text can be read from: http://www.eclipse.org/org/documents/epl-v10.php package org.dtangler.core.cycleanalysis; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.HashSet; import org.dtangler.core.analysisresult.Violation; import org.dtangler.core.dependencies.Dependable; import org.dtangler.core.dependencies.TestDependable; import org.junit.Test; public class DependencyCycleTest { @Test public void testEqualsAndHashCode() { DependencyCycle same1 = new TestDependencyCycle(Arrays.asList("foo", "bar", "foo")); DependencyCycle same2 = new TestDependencyCycle(Arrays.asList("foo", "bar", "foo")); DependencyCycle different = new TestDependencyCycle(Arrays.asList( "bay", "bar", "bay")); assertEquals(same1, same2); assertEquals(same1.hashCode(), same2.hashCode()); assertFalse(same1.equals(different)); assertFalse(same1.equals(null)); assertFalse(same1.equals(Boolean.TRUE)); } @Test public void testAppliesTo() { Dependable depA = new TestDependable("a"); Dependable depB = new TestDependable("b"); Dependable depC = new TestDependable("c"); Violation v = new DependencyCycle(Arrays.asList(depA, depB)); assertTrue(v.appliesTo(new HashSet(Arrays.asList(depA, depB, depC)))); assertTrue(v.appliesTo(new HashSet(Arrays.asList(depA, depB)))); assertFalse(v.appliesTo(new HashSet(Arrays.asList(depA, depC)))); assertFalse(v.appliesTo(new HashSet(Arrays.asList(depA)))); assertFalse(v.appliesTo(new HashSet(Arrays.asList(depB)))); assertFalse(v.appliesTo(new HashSet(Arrays.asList(depC)))); } }