package com.redhat.ceylon.tools; import org.junit.Assert; import org.junit.Test; import com.redhat.ceylon.common.tools.ModuleSpec.Option; import static com.redhat.ceylon.common.tools.ModuleSpec.DEFAULT_MODULE; import static com.redhat.ceylon.common.tools.ModuleSpec.parse; public class ModuleSpecTest { @Test public void nameOnly() { parse("org.example"); parse("org.example", Option.VERSION_PROHIBITED); try { parse("org.example", Option.VERSION_REQUIRED); Assert.fail(); } catch (IllegalArgumentException e) {} parse("org.example/"); try { parse("org.example/", Option.VERSION_PROHIBITED); Assert.fail(); } catch (IllegalArgumentException e) {} try { parse("org.example/", Option.VERSION_REQUIRED); Assert.fail(); } catch (IllegalArgumentException e) {} } @Test public void nameAndVersion() { parse("org.example/1.0"); parse("org.example/1.0", Option.VERSION_REQUIRED); try { parse("org.example/1.0", Option.VERSION_PROHIBITED); Assert.fail(); } catch (IllegalArgumentException e) {} } @Test public void missingName() { try { parse("/org.example"); Assert.fail(); } catch (IllegalArgumentException e) {} try { parse("/org.example", Option.VERSION_PROHIBITED); Assert.fail(); } catch (IllegalArgumentException e) {} try { parse("/org.example", Option.VERSION_REQUIRED); Assert.fail(); } catch (IllegalArgumentException e) {} } @Test public void defaultModule() { DEFAULT_MODULE.equals(parse("DEFAULT")); DEFAULT_MODULE.equals(parse("DEFAULT", Option.VERSION_PROHIBITED)); DEFAULT_MODULE.equals(parse("DEFAULT", Option.VERSION_REQUIRED)); try { parse("DEFAULT", Option.DEFAULT_MODULE_PROHIBITED); Assert.fail(); } catch (IllegalArgumentException e) {} } }