blob: dc260e1f655171451869eead0002d0b16855fd32 [file] [log] [blame]
/*
* 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");
}
}