package org.jboss.windup.config.metadata;
import org.jboss.forge.furnace.versions.VersionRange;
import org.jboss.forge.furnace.versions.Versions;
import org.junit.Assert;
import org.junit.Test;
/**
* @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a>
*/
public class TechnologyReferenceTest
{
@Test
public void testVersionRangeIntersectionSimple()
{
VersionRange versionRange1 = Versions.parseVersionRange("(10,20)");
VersionRange versionRange2 = Versions.parseVersionRange("(12,17]");
TechnologyReference technologyReference = new TechnologyReference("tech", versionRange1);
boolean overlap = technologyReference.versionRangesOverlap(versionRange2);
Assert.assertTrue(overlap);
}
@Test
public void testVersionRangeIntersectionSimpleExclusiveBegin()
{
VersionRange versionRange1 = Versions.parseVersionRange("[10,20)");
VersionRange versionRange2 = Versions.parseVersionRange("[10,17]");
TechnologyReference technologyReference = new TechnologyReference("tech", versionRange1);
boolean overlap = technologyReference.versionRangesOverlap(versionRange2);
Assert.assertTrue(overlap);
}
@Test
public void testVersionRangeIntersectionSingleVersionExclusiveBegin()
{
VersionRange versionRange1 = Versions.parseVersionRange("[10]");
VersionRange versionRange2 = Versions.parseVersionRange("(10,17]");
TechnologyReference technologyReference = new TechnologyReference("tech", versionRange1);
boolean overlap = technologyReference.versionRangesOverlap(versionRange2);
Assert.assertFalse(overlap);
}
@Test
public void testVersionRangeIntersectionSingleVersionInclusiveBegin()
{
VersionRange versionRange1 = Versions.parseVersionRange("[10]");
VersionRange versionRange2 = Versions.parseVersionRange("[10,17]");
TechnologyReference technologyReference = new TechnologyReference("tech", versionRange1);
boolean overlap = technologyReference.versionRangesOverlap(versionRange2);
Assert.assertTrue(overlap);
}
@Test
public void testVersionRangeIntersectionSimpleNoOverlap()
{
VersionRange versionRange1 = Versions.parseVersionRange("(10,20)");
VersionRange versionRange2 = Versions.parseVersionRange("(8,9]");
TechnologyReference technologyReference = new TechnologyReference("tech", versionRange1);
boolean overlap = technologyReference.versionRangesOverlap(versionRange2);
Assert.assertFalse(overlap);
}
@Test
public void testVersionPartialOverlapAcrossMax()
{
VersionRange versionRange1 = Versions.parseVersionRange("(10,20)");
VersionRange versionRange2 = Versions.parseVersionRange("(18,22)");
TechnologyReference technologyReference = new TechnologyReference("tech", versionRange1);
boolean overlap = technologyReference.versionRangesOverlap(versionRange2);
Assert.assertTrue(overlap);
}
@Test
public void testVersionPartialOverlapAcrossMaxReverse()
{
VersionRange versionRange1 = Versions.parseVersionRange("(10,20)");
VersionRange versionRange2 = Versions.parseVersionRange("(18,22)");
TechnologyReference technologyReference = new TechnologyReference("tech", versionRange2);
boolean overlap = technologyReference.versionRangesOverlap(versionRange1);
Assert.assertTrue(overlap);
}
@Test
public void testVersionPartialOverlapAcrossMin()
{
VersionRange versionRange1 = Versions.parseVersionRange("(10,20)");
VersionRange versionRange2 = Versions.parseVersionRange("(7,13)");
TechnologyReference technologyReference = new TechnologyReference("tech", versionRange1);
boolean overlap = technologyReference.versionRangesOverlap(versionRange2);
Assert.assertTrue(overlap);
}
@Test
public void testVersionPartialOverlapAcrossMinReverse()
{
VersionRange versionRange1 = Versions.parseVersionRange("(10,20)");
VersionRange versionRange2 = Versions.parseVersionRange("(7,13)");
TechnologyReference technologyReference = new TechnologyReference("tech", versionRange1);
boolean overlap = technologyReference.versionRangesOverlap(versionRange2);
Assert.assertTrue(overlap);
}
}