package org.carlspring.strongbox.storage.validation.version; import org.carlspring.strongbox.artifact.coordinates.ArtifactCoordinates; import org.carlspring.strongbox.artifact.coordinates.MockedMavenArtifactCoordinates; import org.carlspring.strongbox.storage.repository.Repository; import org.carlspring.strongbox.storage.repository.RepositoryPolicyEnum; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.DefaultArtifact; import org.apache.maven.artifact.handler.DefaultArtifactHandler; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.fail; /** * @author stodorov */ public class SnapshotVersionValidatorTest { Repository repository = new Repository(); SnapshotVersionValidator validator = new SnapshotVersionValidator(); @Before public void setUp() throws Exception { repository.setPolicy(RepositoryPolicyEnum.SNAPSHOT.toString()); } @Test public void testSnapshotValidation() throws VersionValidationException { Artifact validArtifact1 = generateArtifact("1.0-SNAPSHOT"); Artifact validArtifact2 = generateArtifact("1.0-20131004"); Artifact validArtifact3 = generateArtifact("1.0-20131004.115330"); Artifact validArtifact4 = generateArtifact("1.0-20131004.115330-1"); Artifact validArtifact5 = generateArtifact("1.0.8-20151025.032208-1"); Artifact validArtifact6 = generateArtifact("1.0.8-alpha-1-20151025.032208-1"); ArtifactCoordinates coordinates1 = new MockedMavenArtifactCoordinates(validArtifact1); ArtifactCoordinates coordinates2 = new MockedMavenArtifactCoordinates(validArtifact2); ArtifactCoordinates coordinates3 = new MockedMavenArtifactCoordinates(validArtifact3); ArtifactCoordinates coordinates4 = new MockedMavenArtifactCoordinates(validArtifact4); ArtifactCoordinates coordinates5 = new MockedMavenArtifactCoordinates(validArtifact5); ArtifactCoordinates coordinates6 = new MockedMavenArtifactCoordinates(validArtifact6); validator.validate(repository, coordinates1); validator.validate(repository, coordinates2); validator.validate(repository, coordinates3); validator.validate(repository, coordinates4); validator.validate(repository, coordinates5); validator.validate(repository, coordinates6); // If we've gotten here without an exception, then things are alright. } @Test public void testInvalidArtifacts() { Artifact invalidArtifact1 = generateArtifact("1"); Artifact invalidArtifact2 = generateArtifact("1.0"); Artifact invalidArtifact3 = generateArtifact("1.0.1"); Artifact invalidArtifact4 = generateArtifact("1.0.1-alpha"); ArtifactCoordinates coordinates1 = new MockedMavenArtifactCoordinates(invalidArtifact1); ArtifactCoordinates coordinates2 = new MockedMavenArtifactCoordinates(invalidArtifact2); ArtifactCoordinates coordinates3 = new MockedMavenArtifactCoordinates(invalidArtifact3); ArtifactCoordinates coordinates4 = new MockedMavenArtifactCoordinates(invalidArtifact4); try { validator.validate(repository, coordinates1); fail("Incorrectly validated artifact with version 1!"); } catch (VersionValidationException e) { } try { validator.validate(repository, coordinates2); fail("Incorrectly validated artifact with version 1.0!"); } catch (VersionValidationException e) { } try { validator.validate(repository, coordinates3); fail("Incorrectly validated artifact with version 1.0.1!"); } catch (VersionValidationException e) { } try { validator.validate(repository, coordinates4); fail("Incorrectly validated artifact with version 1.0.1!"); } catch (VersionValidationException e) { } } private Artifact generateArtifact(String version) { return new DefaultArtifact("org.carlspring.maven", "my-maven-plugin", version, "compile", "jar", null, new DefaultArtifactHandler("jar")); } }