package rocks.inspectit.shared.all.versioning;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import nl.jqno.equalsverifier.EqualsVerifier;
import nl.jqno.equalsverifier.Warning;
import rocks.inspectit.shared.all.testbase.TestBase;
import rocks.inspectit.shared.all.version.InvalidVersionException;
import rocks.inspectit.shared.all.version.Version;
public class VersionTest extends TestBase {
@DataProvider(name = "correctVersions")
static Object[][] correctVersions() {
return new Object[][] { { "1.5.49", new Version(1, 5, 49) }, { "1.6.1.56", new Version(1, 6, 1, 56) }, { "10.1.1.7666", new Version(10, 1, 1, 7666) } };
}
@DataProvider(name = "incorrectVersions")
static Object[][] incorrectVersions() {
return new Object[][] { { "1" }, { null }, { "dev" }, { "1.1" } };
}
@Test
public void equalsContract() {
EqualsVerifier.forClass(Version.class).suppress(Warning.NONFINAL_FIELDS).verify();
}
@Test(dataProvider = "correctVersions")
public void verifyAndCreateCorrectVersion(String version, Version expected) throws Exception {
Version.verifyAndCreate(version).equals(expected);
}
@Test(dataProvider = "incorrectVersions", expectedExceptions = InvalidVersionException.class)
public void verifyAndCreateIncorrectVersion(String version) throws Exception {
Version.verifyAndCreate(version);
}
}