@Test
public void testShouldServeByPolicies()
throws Exception
{
M2Repository repository = (M2Repository) getResourceStore();
String releasePom =
"/org/codehaus/plexus/plexus-container-default/1.0-alpha-40/plexus-container-default-1.0-alpha-40.pom";
String releaseArtifact =
"/org/codehaus/plexus/plexus-container-default/1.0-alpha-40/plexus-container-default-1.0-alpha-40.jar";
String snapshotPom =
"/org/codehaus/plexus/plexus-container-default/1.0-alpha-41-SNAPSHOT/plexus-container-default-1.0-alpha-41-20071205.190351-1.pom";
String snapshotArtifact =
"/org/codehaus/plexus/plexus-container-default/1.0-alpha-41-SNAPSHOT/plexus-container-default-1.0-alpha-41-20071205.190351-1.jar";
String metadata1 = "/org/codehaus/plexus/plexus-container-default/maven-metadata.xml";
String metadataR = "/org/codehaus/plexus/plexus-container-default/1.0-alpha-40/maven-metadata.xml";
String metadataS = "/org/codehaus/plexus/plexus-container-default/1.0-alpha-41-SNAPSHOT/maven-metadata.xml";
String someDirectory = "/classworlds/";
String anyNonArtifactFile = "/any/file.txt";
ResourceStoreRequest request = new ResourceStoreRequest("");
// it is equiv of repo type: RELEASE
repository.setRepositoryPolicy(RepositoryPolicy.RELEASE);
repository.getCurrentCoreConfiguration().commitChanges();
request.setRequestPath(releasePom);
assertThat(repository.shouldServeByPolicies(request), is(true));
request.setRequestPath(releaseArtifact);
assertThat(repository.shouldServeByPolicies(request), is(true));
request.setRequestPath(snapshotPom);
assertThat(repository.shouldServeByPolicies(request), is(false));
request.setRequestPath(snapshotArtifact);
assertThat(repository.shouldServeByPolicies(request), is(false));
request.setRequestPath(metadata1);
assertThat(repository.shouldServeByPolicies(request), is(true));
request.setRequestPath(metadataR);
assertThat(repository.shouldServeByPolicies(request), is(true));
request.setRequestPath(metadataS);
assertThat(repository.shouldServeByPolicies(request), is(false));
request.setRequestPath(someDirectory);
assertThat(repository.shouldServeByPolicies(request), is(true));
request.setRequestPath(anyNonArtifactFile);
assertThat(repository.shouldServeByPolicies(request), is(true));
// it is equiv of repo type: SNAPSHOT
repository.setRepositoryPolicy(RepositoryPolicy.SNAPSHOT);
repository.getCurrentCoreConfiguration().commitChanges();
request.setRequestPath(releasePom);
assertThat(repository.shouldServeByPolicies(request), is(false));
request.setRequestPath(releaseArtifact);
assertThat(repository.shouldServeByPolicies(request), is(false));
request.setRequestPath(snapshotPom);
assertThat(repository.shouldServeByPolicies(request), is(true));
request.setRequestPath(snapshotArtifact);
assertThat(repository.shouldServeByPolicies(request), is(true));
request.setRequestPath(metadata1);
assertThat(repository.shouldServeByPolicies(request), is(true));
request.setRequestPath(metadataR);
assertThat(repository.shouldServeByPolicies(request), is(true));
request.setRequestPath(metadataS);
assertThat(repository.shouldServeByPolicies(request), is(true));
request.setRequestPath(someDirectory);
assertThat(repository.shouldServeByPolicies(request), is(true));
request.setRequestPath(anyNonArtifactFile);
assertThat(repository.shouldServeByPolicies(request), is(true));
}