You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by da...@apache.org on 2018/09/28 15:32:03 UTC
[sling-slingfeature-maven-plugin] branch master updated: Re-enable
Aggregate Feature Test
This is an automated email from the ASF dual-hosted git repository.
davidb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-slingfeature-maven-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 0b6da6d Re-enable Aggregate Feature Test
0b6da6d is described below
commit 0b6da6d9df3255a426f849537fc5d2d5a8298182
Author: David Bosschaert <bo...@adobe.com>
AuthorDate: Fri Sep 28 16:31:35 2018 +0100
Re-enable Aggregate Feature Test
---
.../feature/maven/mojos/AggregateFeaturesTest.java | 80 +++++++++++++++-------
1 file changed, 56 insertions(+), 24 deletions(-)
diff --git a/src/test/java/org/apache/sling/feature/maven/mojos/AggregateFeaturesTest.java b/src/test/java/org/apache/sling/feature/maven/mojos/AggregateFeaturesTest.java
index e91c89d..f5b20f4 100644
--- a/src/test/java/org/apache/sling/feature/maven/mojos/AggregateFeaturesTest.java
+++ b/src/test/java/org/apache/sling/feature/maven/mojos/AggregateFeaturesTest.java
@@ -16,35 +16,16 @@
*/
package org.apache.sling.feature.maven.mojos;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.File;
-import java.io.FileReader;
-import java.io.Reader;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.Set;
-
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.versioning.VersionRange;
import org.apache.maven.model.Build;
import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.project.DefaultMavenProjectHelper;
import org.apache.maven.project.MavenProject;
import org.apache.maven.repository.RepositorySystem;
import org.apache.sling.feature.ArtifactId;
@@ -58,6 +39,29 @@ import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import java.lang.reflect.Field;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Set;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
public class AggregateFeaturesTest {
private Path tempDir;
private static Map<String, ArtifactId> pluginCallbacks;
@@ -126,30 +130,43 @@ public class AggregateFeaturesTest {
assertTrue(fc.isArtifact());
}
- //@Test
+ @Test
public void testAggregateFeaturesFromDirectory() throws Exception {
File featuresDir = new File(
getClass().getResource("/aggregate-features/dir2").getFile());
+ // read features
+ Map<String, Feature> featureMap = new HashMap<>();
+ for (File f : featuresDir.listFiles((d,f) -> f.endsWith(".json"))) {
+ Feature feat = FeatureJSONReader.read(new FileReader(f), null);
+ featureMap.put(f.getName(), feat);
+ }
FeatureConfig fc = new FeatureConfig();
+ fc.setIncludes("*.json");
Build mockBuild = Mockito.mock(Build.class);
Mockito.when(mockBuild.getDirectory()).thenReturn(tempDir.toString());
+ Artifact parentArtifact = createMockArtifact();
MavenProject mockProj = Mockito.mock(MavenProject.class);
Mockito.when(mockProj.getBuild()).thenReturn(mockBuild);
Mockito.when(mockProj.getGroupId()).thenReturn("org.foo");
Mockito.when(mockProj.getArtifactId()).thenReturn("org.foo.bar");
Mockito.when(mockProj.getVersion()).thenReturn("1.2.3-SNAPSHOT");
+ Mockito.when(mockProj.getArtifact()).thenReturn(parentArtifact);
+ Mockito.when(mockProj.getContextValue(Feature.class.getName() + "/rawmain.json-cache"))
+ .thenReturn(featureMap);
AggregateFeatures af = new AggregateFeatures();
af.aggregateClassifier = "aggregated";
af.aggregates = Collections.singletonList(fc);
af.project = mockProj;
+ af.projectHelper = new DefaultMavenProjectHelper();
+ setPrivateField(af.projectHelper, "artifactHandlerManager", Mockito.mock(ArtifactHandlerManager.class));
af.execute();
- File expectedFile = new File(tempDir.toFile(), FEATURE_PROCESSED_LOCATION + "/aggregated.json");
+ File expectedFile = new File(tempDir.toFile(), "/aggregated.json");
try (Reader fr = new FileReader(expectedFile)) {
Feature genFeat = FeatureJSONReader.read(fr, null);
ArtifactId id = genFeat.getId();
@@ -481,6 +498,15 @@ public class AggregateFeaturesTest {
assertEquals(id, pluginCallbacks.get("TestPlugin2 - extension3"));
}
+ private Artifact createMockArtifact() {
+ Artifact parentArtifact = Mockito.mock(Artifact.class);
+ Mockito.when(parentArtifact.getGroupId()).thenReturn("gid");
+ Mockito.when(parentArtifact.getArtifactId()).thenReturn("aid");
+ Mockito.when(parentArtifact.getVersionRange()).thenReturn(VersionRange.createFromVersion("123"));
+ Mockito.when(parentArtifact.getType()).thenReturn("foo");
+ return parentArtifact;
+ }
+
private RepositorySystem createMockRepo() {
RepositorySystem repo = Mockito.mock(RepositorySystem.class);
Mockito.when(repo.createArtifactWithClassifier(
@@ -501,4 +527,10 @@ public class AggregateFeaturesTest {
});
return repo;
}
+
+ private void setPrivateField(Object obj, String name, Object value) throws Exception {
+ Field f = obj.getClass().getDeclaredField(name);
+ f.setAccessible(true);
+ f.set(obj, value);
+ }
}