Randomize repositories in tests

This commit is contained in:
Erik C. Thauvin 2026-05-28 23:38:59 -07:00
parent acef8fd031
commit f1468a24c6
No known key found for this signature in database
GPG key ID: 776702A6A2DA330E
3 changed files with 640 additions and 529 deletions

View file

@ -0,0 +1,50 @@
/*
* Copyright 2026 Erik C. Thauvin (https://erik.thauvin.net/)
* Licensed under the Apache License, Version 2.0 (the "License")
*/
package rife.bld.dependencies;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static rife.bld.dependencies.Repository.*;
public final class RepositoryTestHelper {
public static final List<Repository> MAVEN_CENTRAL_REPOSITORIES = List.of(
MAVEN_CENTRAL,
APACHE,
GOOGLE_MAVEN_CENTRAL,
GOOGLE_MAVEN_CENTRAL_EU,
GOOGLE_MAVEN_CENTRAL_ASIA
);
private static final SecureRandom SECURE_RANDOM = new SecureRandom();
private RepositoryTestHelper() {
}
public static Repository getRandomRepository() {
int index = SECURE_RANDOM.nextInt(MAVEN_CENTRAL_REPOSITORIES.size());
return MAVEN_CENTRAL_REPOSITORIES.get(index);
}
public static List<Repository> getRandomRepositories(int count) {
if (count < 0) {
throw new IllegalArgumentException("count cannot be negative");
}
if (count > MAVEN_CENTRAL_REPOSITORIES.size()) {
throw new IllegalArgumentException("count cannot exceed repository list size: "
+ MAVEN_CENTRAL_REPOSITORIES.size());
}
List<Repository> shuffled = new ArrayList<>(MAVEN_CENTRAL_REPOSITORIES);
Collections.shuffle(shuffled, SECURE_RANDOM);
return Collections.unmodifiableList(shuffled.subList(0, count));
}
public static List<Repository> getRandomRepositories() {
return getRandomRepositories(2);
}
}

File diff suppressed because it is too large Load diff

View file

@ -5,13 +5,13 @@
package rife.bld.dependencies;
import org.junit.jupiter.api.Test;
import rife.ioc.HierarchicalProperties;
import rife.tools.StringUtils;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
import static rife.bld.dependencies.Repository.*;
import static rife.bld.dependencies.RepositoryTestHelper.getRandomRepository;
import static rife.bld.dependencies.Scope.compile;
import static rife.bld.dependencies.Scope.runtime;
@ -92,7 +92,7 @@ public class TestDependencySet {
org.eclipse.jetty:jetty-io:11.0.14
org.slf4j:slf4j-simple:2.0.6
org.slf4j:slf4j-api:2.0.6
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(getRandomRepository()), compile));
}
@Test
@ -118,7 +118,7 @@ public class TestDependencySet {
org.springframework:spring-core:6.0.6
org.springframework:spring-jcl:6.0.6
org.yaml:snakeyaml:1.33
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(getRandomRepository()), compile));
}
@Test
@ -158,7 +158,7 @@ public class TestDependencySet {
org.codehaus.plexus:plexus-component-annotations:2.1.0
org.apache.commons:commons-lang3:3.8.1
org.slf4j:slf4j-api:1.7.36
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(getRandomRepository()), compile));
}
@Test
@ -214,7 +214,7 @@ public class TestDependencySet {
org.scala-lang.modules:scala-java8-compat_2.13:1.0.2
com.typesafe:ssl-config-core_2.13:0.4.3
org.scala-lang.modules:scala-parser-combinators_2.13:1.1.2
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(getRandomRepository()), compile));
}
@Test
@ -310,7 +310,7 @@ public class TestDependencySet {
net.java.dev.jna:jna:5.11.0
net.java.dev.jna:jna-platform:5.11.0
com.auth0:java-jwt:3.19.2
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(getRandomRepository()), compile));
}
@Test
@ -353,7 +353,7 @@ public class TestDependencySet {
com.google.zxing:javase:3.5.1
com.google.zxing:core:3.5.1
com.beust:jcommander:1.82
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(MAVEN_CENTRAL), compile));
"""), dependencies.generateTransitiveDependencyTree(VersionResolution.dummy(), ArtifactRetriever.instance(), List.of(getRandomRepository()), compile));
}
@Test