/* * Copyright (C) 2006-2011 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.commons.scripting; import java.util.UUID; import javax.script.ScriptEngineManager; import junit.framework.Assert; import org.junit.Assume; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; /** * Test for {@link ScriptLanguage}. * * @author Christian Weiss * */ public class ScriptLanguageTest { private static ScriptLanguage[] languages; /** BeforeClass. */ @BeforeClass public static void setupBeforeClass() { languages = ScriptLanguage.values(); } /** Test. */ @Test public void testValues() { Assume.assumeNotNull((Object) languages); for (final ScriptLanguage language : languages) { Assert.assertNotNull(language.getName()); Assert.assertFalse(language.getName().isEmpty()); Assert.assertNotNull(language.getExtension()); Assert.assertFalse(language.getExtension().isEmpty()); } } /** Test. */ @Test public void testGetLanguageByName() { Assume.assumeNotNull((Object) languages); for (final ScriptLanguage language : languages) { final String name = language.getName(); final ScriptLanguage language2 = ScriptLanguage.getByName(new String(name)); Assert.assertNotNull(language2); Assert.assertEquals(name, language2.getName()); } } /** Test. */ @Test(expected = IllegalArgumentException.class) public void testGetLanguageByNameForFailureNull() { try { ScriptLanguage.getByName(null); } catch (final AssertionError e) { throw new IllegalArgumentException(e); } } /** Test. */ @Test(expected = IllegalArgumentException.class) public void testGetLanguageByNameForFailureEmpty() { try { ScriptLanguage.getByName(""); } catch (final AssertionError e) { throw new IllegalArgumentException(e); } } /** Test. */ @Test(expected = IllegalArgumentException.class) public void testGetLanguageByNameForFailureRandom() { try { ScriptLanguage.getByName("FooBarLang"); } catch (final AssertionError e) { throw new IllegalArgumentException(e); } } /** Test. */ @Test public void testGetLanguageByExtension() { Assume.assumeNotNull((Object) languages); for (final ScriptLanguage language : languages) { final String extension = language.getExtension(); final ScriptLanguage language2 = ScriptLanguage.getByExtension(new String(extension)); Assert.assertNotNull(language2); Assert.assertEquals(extension, language2.getExtension()); } } /** Test. */ @Test(expected = IllegalArgumentException.class) public void testGetLanguageByExtensionForFailure() { Assume.assumeNotNull((Object) languages); ScriptLanguage.getByExtension(UUID.randomUUID().toString()); } /** Test. */ @Test @Ignore("functionality is platform-dependant, thus removed until actually required") public void testGetLanguageByNameAlternateName() { final ScriptEngineManager engineManager = new ScriptEngineManager(); Assume.assumeTrue(engineManager.getEngineByName("JavaScript") != null && engineManager.getEngineByName("ECMAScript") != null); final ScriptLanguage language = ScriptLanguage.getByName("ECMAScript"); Assert.assertNotNull(language); } /** Test. */ @Test(expected = IllegalArgumentException.class) public void testGetLanguageByExtensionForFailureNull() { try { ScriptLanguage.getByExtension(null); } catch (final AssertionError e) { throw new IllegalArgumentException(e); } } /** Test. */ @Test(expected = IllegalArgumentException.class) public void testGetLanguageByExtensionForFailureEmpty() { try { ScriptLanguage.getByExtension(""); } catch (final AssertionError e) { throw new IllegalArgumentException(e); } } /** Test. */ @Test(expected = IllegalArgumentException.class) public void testGetLanguageByExtensionForFailureRandom() { try { ScriptLanguage.getByExtension(".fbl"); } catch (final AssertionError e) { throw new IllegalArgumentException(e); } } }