123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- /*
- * Copyright 2016-2018 the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
- package io.spring.gradle.convention;
- import org.gradle.api.Project;
- import org.gradle.api.artifacts.dsl.RepositoryHandler;
- import org.gradle.api.artifacts.repositories.ArtifactRepository;
- import org.gradle.api.artifacts.repositories.MavenArtifactRepository;
- import org.gradle.api.plugins.ExtraPropertiesExtension;
- import org.gradle.testfixtures.ProjectBuilder;
- import org.junit.Before;
- import org.junit.Test;
- import static org.assertj.core.api.Assertions.assertThat;
- /**
- * Tests for {@link RepositoryConventionPlugin}.
- */
- public class RepositoryConventionPluginTests {
- private Project project = ProjectBuilder.builder().build();
- @Before
- public void setUp() {
- this.project.getProperties().clear();
- }
- @Test
- public void applyWhenIsReleaseThenShouldIncludeReleaseRepo() {
- this.project.setVersion("1.0.0.RELEASE");
- this.project.getPluginManager().apply(RepositoryConventionPlugin.class);
- RepositoryHandler repositories = this.project.getRepositories();
- assertReleaseRepository(repositories);
- }
- @Test
- public void applyWhenIsMilestoneThenShouldIncludeMilestoneRepo() {
- this.project.setVersion("1.0.0.M1");
- this.project.getPluginManager().apply(RepositoryConventionPlugin.class);
- RepositoryHandler repositories = this.project.getRepositories();
- assertMilestoneRepository(repositories); // milestone
- }
- @Test
- public void applyWhenIsSnapshotThenShouldIncludeSnapshotRepo() {
- this.project.setVersion("1.0.0.BUILD-SNAPSHOT");
- this.project.getPluginManager().apply(RepositoryConventionPlugin.class);
- RepositoryHandler repositories = this.project.getRepositories();
- assertSnapshotRepository(repositories);
- }
- @Test
- public void applyWhenIsSnapshotWithForceReleaseThenShouldOnlyIncludeReleaseRepo() {
- this.project.getExtensions().getByType(ExtraPropertiesExtension.class)
- .set("forceMavenRepositories", "release");
- this.project.setVersion("1.0.0.RELEASE");
- this.project.getPluginManager().apply(RepositoryConventionPlugin.class);
- RepositoryHandler repositories = this.project.getRepositories();
- assertReleaseRepository(repositories);
- }
- @Test
- public void applyWhenIsReleaseWithForceMilestoneThenShouldIncludeMilestoneRepo() {
- this.project.getExtensions().getByType(ExtraPropertiesExtension.class)
- .set("forceMavenRepositories", "milestone");
- this.project.setVersion("1.0.0.RELEASE");
- this.project.getPluginManager().apply(RepositoryConventionPlugin.class);
- RepositoryHandler repositories = this.project.getRepositories();
- assertMilestoneRepository(repositories);
- }
- @Test
- public void applyWhenIsReleaseWithForceSnapshotThenShouldIncludeSnapshotRepo() {
- this.project.getExtensions().getByType(ExtraPropertiesExtension.class)
- .set("forceMavenRepositories", "snapshot");
- this.project.setVersion("1.0.0.RELEASE");
- this.project.getPluginManager().apply(RepositoryConventionPlugin.class);
- RepositoryHandler repositories = this.project.getRepositories();
- assertSnapshotRepository(repositories);
- }
- @Test
- public void applyWhenIsReleaseWithForceLocalThenShouldIncludeReleaseAndLocalRepos() {
- this.project.getExtensions().getByType(ExtraPropertiesExtension.class)
- .set("forceMavenRepositories", "local");
- this.project.setVersion("1.0.0.RELEASE");
- this.project.getPluginManager().apply(RepositoryConventionPlugin.class);
- RepositoryHandler repositories = this.project.getRepositories();
- assertThat(repositories).hasSize(4);
- assertThat((repositories.get(0)).getName()).isEqualTo("MavenLocal");
- }
- @Test
- public void applyWhenIsReleaseWithForceMilestoneAndLocalThenShouldIncludeMilestoneAndLocalRepos() {
- this.project.getExtensions().getByType(ExtraPropertiesExtension.class)
- .set("forceMavenRepositories", "milestone,local");
- this.project.setVersion("1.0.0.RELEASE");
- this.project.getPluginManager().apply(RepositoryConventionPlugin.class);
- RepositoryHandler repositories = this.project.getRepositories();
- assertThat(repositories).hasSize(5);
- assertThat((repositories.get(0)).getName()).isEqualTo("MavenLocal");
- }
- private void assertSnapshotRepository(RepositoryHandler repositories) {
- assertThat(repositories).extracting(ArtifactRepository::getName).hasSize(5);
- assertThat(((MavenArtifactRepository) repositories.get(0)).getUrl().toString())
- .isEqualTo("https://repo.maven.apache.org/maven2/");
- assertThat(((MavenArtifactRepository) repositories.get(1)).getUrl().toString())
- .isEqualTo("https://jcenter.bintray.com/");
- assertThat(((MavenArtifactRepository) repositories.get(2)).getUrl().toString())
- .isEqualTo("https://repo.spring.io/snapshot/");
- assertThat(((MavenArtifactRepository) repositories.get(3)).getUrl().toString())
- .isEqualTo("https://repo.spring.io/milestone/");
- }
- private void assertMilestoneRepository(RepositoryHandler repositories) {
- assertThat(repositories).extracting(ArtifactRepository::getName).hasSize(4);
- assertThat(((MavenArtifactRepository) repositories.get(0)).getUrl().toString())
- .isEqualTo("https://repo.maven.apache.org/maven2/");
- assertThat(((MavenArtifactRepository) repositories.get(1)).getUrl().toString())
- .isEqualTo("https://jcenter.bintray.com/");
- assertThat(((MavenArtifactRepository) repositories.get(2)).getUrl().toString())
- .isEqualTo("https://repo.spring.io/milestone/");
- }
- private void assertReleaseRepository(RepositoryHandler repositories) {
- assertThat(repositories).extracting(ArtifactRepository::getName).hasSize(3);
- assertThat(((MavenArtifactRepository) repositories.get(0)).getUrl().toString())
- .isEqualTo("https://repo.maven.apache.org/maven2/");
- assertThat(((MavenArtifactRepository) repositories.get(1)).getUrl().toString())
- .isEqualTo("https://jcenter.bintray.com/");
- assertThat(((MavenArtifactRepository) repositories.get(2)).getUrl().toString())
- .isEqualTo("https://repo.spring.io/release/");
- }
- }
|