blob: 7fc28c0813af106537304b00ad6ed77d1ea65c2e [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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
*
* http://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 org.apache.jackrabbit.filevault.maven.packaging.it;
import java.io.IOException;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import org.apache.maven.it.VerificationException;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class ManifestGenerationIT {
private ProjectBuilder verify(String projectName) throws IOException, VerificationException {
return new ProjectBuilder()
.setTestProjectDir("manifest-generation/" + projectName)
.build()
.verifyExpectedManifest();
}
@Test
public void simple_manifest_generation() throws Exception {
verify("simple");
}
@Test
public void bundle_manifest_generation() throws Exception {
verify("with-bundles");
}
@Test
public void code_manifest_generation() throws Exception {
verify("with-code");
}
@Test
public void unused_manifest_generation() throws Exception {
verify("with-unused-dependencies");
}
/**
* Tests if a unused bundle dependency define it a parent pom doesn't show up in the unused bundles report.
* see JCRVLT-214
*/
@Test
public void unused_parent_manifest_generation() throws Exception {
ProjectBuilder builder = verify("with-unused-parent-dependencies");
// also check if unused parent is not listed
List<String> unusedBundles = new LinkedList<String>();
boolean recording = false;
for (String line: builder.getBuildOutput()) {
if (line.contains("------")) {
continue;
}
if (line.contains(" unused bundles")) {
recording = true;
continue;
}
if (recording) {
final String trimmed = line.trim();
if (trimmed.isEmpty()) {
break;
}
unusedBundles.add(trimmed);
}
}
String[] unused = unusedBundles.toArray(new String[unusedBundles.size()]);
Arrays.sort(unused);
// the project should have at 1 unused bundle but not the one from the parent
assertTrue("unused bundles > 0", unused.length > 0);
assertEquals("unused bundle", "[org.jsoup:jsoup:jar:1.10.3]", Arrays.toString(unused));
}
}