aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules/objc/XcodeProviderTest.java
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2016-02-11 14:28:51 +0000
committerGravatar David Chen <dzc@google.com>2016-02-11 22:21:07 +0000
commit1aca9bf2b5b50f114b310dad374c82e6e61cef74 (patch)
tree314b70b5924757c5eaadc96ff726c14aaa6cbe1f /src/test/java/com/google/devtools/build/lib/rules/objc/XcodeProviderTest.java
parent96202b17df83f61c5c0ddf39dc42c1db177f9162 (diff)
Add a few extra tests for XcodeProvider.
-- MOS_MIGRATED_REVID=114431043
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/objc/XcodeProviderTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/XcodeProviderTest.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/XcodeProviderTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/XcodeProviderTest.java
index 551e35d4bb..e858598ccf 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/XcodeProviderTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/XcodeProviderTest.java
@@ -16,8 +16,12 @@ package com.google.devtools.build.lib.rules.objc;
import static com.google.common.truth.Truth.assertThat;
import static com.google.devtools.build.lib.rules.objc.XcodeProvider.xcodeTargetName;
+import static org.junit.Assert.fail;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.vfs.PathFragment;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -25,6 +29,9 @@ import org.junit.runners.JUnit4;
/**
* Tests for XcodeProvider.
+ *
+ * <p>We test {@code rootEach} individually. Because it is used as test utility code, any wrong
+ * behavior may go undetected otherwise.
*/
@RunWith(JUnit4.class)
public class XcodeProviderTest {
@@ -39,4 +46,37 @@ public class XcodeProviderTest {
assertThat(xcodeTargetName(Label.parseAbsolute("@repo_name//foo:bar")))
.isEqualTo("bar_external_repo_name_foo");
}
+
+ private static Iterable<PathFragment> fragments(String... paths) {
+ return Iterables.transform(ImmutableList.copyOf(paths), PathFragment.TO_PATH_FRAGMENT);
+ }
+
+ @Test
+ public void testRootEach_nonEmptySequence() {
+ assertThat(XcodeProvider.rootEach("$(prefix)", fragments("a", "b/c")))
+ .containsExactly("$(prefix)/a", "$(prefix)/b/c")
+ .inOrder();
+ }
+
+ @Test
+ public void testRootEach_emptyFragment() {
+ assertThat(XcodeProvider.rootEach("$(foo)", fragments("", "bar", ".")))
+ .containsExactly("$(foo)", "$(foo)/bar", "$(foo)")
+ .inOrder();
+ }
+
+ @Test
+ public void testRootEach_noElements() {
+ assertThat(XcodeProvider.rootEach("$(prefix)", fragments()))
+ .isEmpty();
+ }
+
+ @Test
+ public void testRootEach_errorForTrailingSlash() {
+ try {
+ XcodeProvider.rootEach("$(prefix)/", fragments("a"));
+ fail("should have thrown");
+ } catch (IllegalArgumentException expected) {
+ }
+ }
}