package org.netbeans.gradle.project.properties.ui; import java.util.Arrays; import java.util.List; import org.junit.Test; import org.netbeans.gradle.project.api.config.PropertyReference; import org.netbeans.gradle.project.api.config.ui.ProfileBasedSettingsPage; import org.netbeans.gradle.project.properties.NbGradleCommonProperties; import org.netbeans.gradle.project.properties.PredefinedTask; import org.netbeans.gradle.project.properties.global.CommonGlobalSettings; import org.netbeans.gradle.project.properties.standard.PredefinedTasks; import org.netbeans.gradle.project.util.NbConsumer; import org.netbeans.gradle.project.util.NbSupplier; public class ManageTasksPanelTest { private static NbSupplier<ProfileBasedSettingsPage> settingsPageFactory() { return new NbSupplier<ProfileBasedSettingsPage>() { @Override public ProfileBasedSettingsPage get() { return ManageTasksPanel.createSettingsPage(); } }; } private static PropertyReference<PredefinedTasks> customTasks(CommonGlobalSettings input) { return NbGradleCommonProperties.customTasks(input.getActiveSettingsQuery()); } private void testInitAndReadBack(final PredefinedTasks tasks) throws Exception { GlobalSettingsPanelTestUtils.testGenericInitAndReadBack(settingsPageFactory(), new NbConsumer<CommonGlobalSettings>() { @Override public void accept(CommonGlobalSettings input) { customTasks(input).setValue(tasks); } }); } @Test public void testInitAndReadBack1() throws Exception { List<PredefinedTask.Name> tasks = Arrays.asList( new PredefinedTask.Name("task1", true), new PredefinedTask.Name("task2", false) ); List<String> args = Arrays.asList("arg1", "arg2"); List<String> jvmArgs = Arrays.asList("jvmarg1", "jvmarg2"); testInitAndReadBack(new PredefinedTasks(Arrays.asList( new PredefinedTask("MyTask1", tasks, args, jvmArgs, true)))); } @Test public void testInitAndReadBack2() throws Exception { List<PredefinedTask.Name> tasks = Arrays.asList( new PredefinedTask.Name("task1", true), new PredefinedTask.Name("task2", false) ); List<String> args = Arrays.asList(); List<String> jvmArgs = Arrays.asList(); testInitAndReadBack(new PredefinedTasks(Arrays.asList( new PredefinedTask("MyTask1", tasks, args, jvmArgs, false)))); } }