package org.netbeans.gradle.project.java.query;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import org.junit.ClassRule;
import org.junit.Test;
import org.netbeans.api.java.queries.SourceForBinaryQuery;
import org.netbeans.gradle.project.util.SafeTmpFolder;
import org.netbeans.gradle.project.util.TestBinaryUtils;
import org.netbeans.spi.java.queries.SourceForBinaryQueryImplementation2;
import org.openide.util.Utilities;
import static org.junit.Assert.*;
import static org.netbeans.gradle.project.query.TestSourceQueryUtils.*;
public class AutoJavaSourceForBinaryQueryTest {
@ClassRule
public static final SafeTmpFolder TMP_DIR_ROOT = new SafeTmpFolder();
@Test
public void testFindZipSource() throws IOException {
SourceForBinaryQueryImplementation2 query = new AutoJavaSourceForBinaryQuery();
File rootDir = TMP_DIR_ROOT.newFolder();
File jarPath = new File(rootDir, "myapp.jar");
TestBinaryUtils.createTestJar(jarPath);
File sourcesPath = new File(rootDir, "myapp-sources.zip");
TestBinaryUtils.createTestZip(sourcesPath);
URL binaryUrl = Utilities.toURI(jarPath).toURL();
SourceForBinaryQuery.Result result1 = query.findSourceRoots(binaryUrl);
assertNotNull("result1", result1);
expectSameArchive("sourcesPath", sourcesPath, expectedSingleFile(result1));
SourceForBinaryQueryImplementation2.Result result2 = query.findSourceRoots2(binaryUrl);
assertNotNull("result2", result2);
expectSameArchive("sourcesPath", sourcesPath, expectedSingleFile(result2));
assertFalse("preferSources", result2.preferSources());
}
@Test
public void testNoZipSource() throws IOException {
SourceForBinaryQueryImplementation2 query = new AutoJavaSourceForBinaryQuery();
File rootDir = TMP_DIR_ROOT.newFolder();
File jarPath = new File(rootDir, "myapp.jar");
TestBinaryUtils.createTestJar(jarPath);
URL binaryUrl = Utilities.toURI(jarPath).toURL();
SourceForBinaryQuery.Result result1 = query.findSourceRoots(binaryUrl);
assertNull("result1", result1);
SourceForBinaryQueryImplementation2.Result result2 = query.findSourceRoots2(binaryUrl);
assertNull("result2", result2);
}
}