/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.tonicsystems.jarjar.transform;
import com.tonicsystems.jarjar.classpath.ClassPath;
import com.tonicsystems.jarjar.transform.jar.DefaultJarProcessor;
import java.io.File;
import java.lang.reflect.Method;
import java.util.jar.JarFile;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author shevek
*/
public class JarTransformerTest extends AbstractJarTransformerTest {
private static final Logger LOG = LoggerFactory.getLogger(JarTransformerTest.class);
private final File outputFile = new File("build/tmp/output.jar");
private final DefaultJarProcessor processor = new DefaultJarProcessor();
private final JarTransformer transformer = new JarTransformer(outputFile, processor);
private final ClassPath classPath = new ClassPath(new File("/"), jars);
/*
@Test
public void testTransformNoop() throws Exception {
processor.setSkipManifest(true);
processor.add(new PathFilterJarProcessor(Collections.singleton("META-INF/jarjar-testdata.properties")));
transformer.transform(classPath);
}
*/
@Test
public void testTransformRename() throws Exception {
processor.setSkipManifest(true);
// processor.add(new PathFilterJarProcessor(Collections.singleton("META-INF/jarjar-testdata.properties")));
transformer.transform(classPath);
Method m = getMethod(outputFile, "org.anarres.jarjar.testdata.pkg0.Main", "main", String[].class);
m.invoke(null, (Object) new String[]{});
JarFile jarFile = new JarFile(outputFile);
assertContains(jarFile, "org/anarres/jarjar/testdata/pkg0/Main.class");
assertContains(jarFile, "org/anarres/jarjar/testdata/pkg1/Cls1.class");
assertContains(jarFile, "org/anarres/jarjar/testdata/pkg2/Cls2.class");
assertContains(jarFile, "org/anarres/jarjar/testdata/pkg3/Cls3.class");
}
}