/* * Copyright 2000-2012 JetBrains s.r.o. * * Licensed 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.jetbrains.jps.model.serialization; import com.intellij.util.containers.ContainerUtil; import junit.framework.AssertionFailedError; import org.jetbrains.jps.model.java.runConfiguration.JpsApplicationRunConfigurationProperties; import org.jetbrains.jps.model.java.runConfiguration.JpsApplicationRunConfigurationType; import org.jetbrains.jps.model.runConfiguration.JpsRunConfiguration; import org.jetbrains.jps.model.runConfiguration.JpsRunConfigurationType; import org.jetbrains.jps.model.runConfiguration.JpsTypedRunConfiguration; import org.jetbrains.jps.model.serialization.runConfigurations.JpsUnknownRunConfigurationType; import java.util.List; /** * @author nik */ public class JpsRunConfigurationsSerializationTest extends JpsSerializationTestCase { public void testLoadIpr() { doTest("jps/model-serialization/testData/run-configurations/run-configurations.ipr"); } public void testLoadDirectoryBased() { doTest("jps/model-serialization/testData/run-configurations-dir"); } private void doTest(final String relativePath) { loadProject(relativePath); List<JpsTypedRunConfiguration<JpsApplicationRunConfigurationProperties>> configurations = ContainerUtil.newArrayList(myProject.getRunConfigurations(JpsApplicationRunConfigurationType.INSTANCE)); assertEquals(2, configurations.size()); JpsTypedRunConfiguration<JpsApplicationRunConfigurationProperties> shared = configurations.get(0); assertEquals("shared", shared.getName()); assertEquals("xxx.Main2", shared.getProperties().getMainClass()); JpsTypedRunConfiguration<JpsApplicationRunConfigurationProperties> main = configurations.get(1); assertEquals("Main", main.getName()); assertEquals("xxx.Main", main.getProperties().getMainClass()); List<JpsRunConfiguration> all = myProject.getRunConfigurations(); JpsRunConfiguration junit = findByName(all, "test"); JpsRunConfigurationType type = ((JpsTypedRunConfiguration)junit).getType(); assertEquals("JUnit", assertInstanceOf(type, JpsUnknownRunConfigurationType.class).getTypeId()); } private static JpsRunConfiguration findByName(List<JpsRunConfiguration> configurations, String name) { for (JpsRunConfiguration configuration : configurations) { if (configuration.getName().equals(name)) { return configuration; } } throw new AssertionFailedError("'" + name + "' run configuration not found"); } }