package org.netbeans.gradle.project.api.entry;
import org.junit.ClassRule;
import org.junit.Test;
import org.netbeans.gradle.model.ProjectId;
import org.netbeans.gradle.project.NbGradleProject;
import org.netbeans.gradle.project.java.JavaExtension;
import org.netbeans.gradle.project.properties.global.CommonGlobalSettings;
import org.netbeans.gradle.project.util.NbConsumer;
import static org.junit.Assert.*;
public final class FakeSubProjectTest {
private static final NbConsumer<CommonGlobalSettings> EXTRA_SETTINGS = new NbConsumer<CommonGlobalSettings>() {
@Override
public void accept(CommonGlobalSettings settings) {
settings.loadRootProjectFirst().setValue(true);
}
};
@ClassRule
public static final SampleProjectRule PROJECT_REF = SampleProjectRule.getStandardRule("without-settings.zip", EXTRA_SETTINGS);
private ProjectId getProjectId(String... projectPath) throws Exception {
NbGradleProject project = PROJECT_REF.loadAndWaitProject(projectPath);
JavaExtension javaExt = project.getLookup().lookup(JavaExtension.class);
assertNotNull("Lookup must contain entry: JavaExtension", javaExt);
return javaExt.getCurrentModel().getMainModule().getProperties().getProjectId();
}
@Test
public void testRealRootProject() throws Exception {
ProjectId id = getProjectId("without-settings");
assertEquals("group of root", "test-root-without-settings", id.getGroup());
}
@Test
public void testFakeSubProject() throws Exception {
ProjectId id = getProjectId("without-settings", "fakeSubproject");
assertEquals("group of root", "fake-subproject", id.getGroup());
}
}