@Test public void testBuildTargetWithFlavor() { BuildTarget target = BuildTarget.builder(ROOT, "//foo/bar", "baz").addFlavors(ImmutableFlavor.of("dex")).build(); assertEquals("baz#dex", target.getShortNameAndFlavorPostfix()); assertEquals(ImmutableSortedSet.of(ImmutableFlavor.of("dex")), target.getFlavors()); assertTrue(target.isFlavored()); }
@Test public void testGetUnflavoredTarget() { UnflavoredBuildTarget unflavoredTarget = UnflavoredBuildTarget.builder("//foo/bar", "baz").setCellPath(ROOT).build(); BuildTarget flavoredTarget = BuildTarget.builder(ROOT, "//foo/bar", "baz").addFlavors(ImmutableFlavor.of("biz")).build(); assertEquals(unflavoredTarget, flavoredTarget.getUnflavoredBuildTarget()); }
@Test public void testFlavorIsValid() { try { BuildTarget.builder(ROOT, "//foo/bar", "baz").addFlavors(ImmutableFlavor.of("d!x")).build(); fail("Should have thrown IllegalArgumentException."); } catch (IllegalArgumentException e) { assertEquals("Invalid characters in flavor name: d!x", e.getMessage()); } }
@Test public void testShortNameCannotContainHashWhenFlavorSet() { try { BuildTarget.builder(ROOT, "//foo/bar", "baz#dex") .addFlavors(ImmutableFlavor.of("src-jar")) .build(); fail("Should have thrown IllegalArgumentException."); } catch (IllegalArgumentException e) { assertEquals("Build target name cannot contain '#' but was: baz#dex.", e.getMessage()); } }
@Test public void testNumbersAreValidFlavors() { BuildTarget.builder(ROOT, "//foo", "bar").addFlavors(ImmutableFlavor.of("1234")).build(); }