aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcSourceTest.java
diff options
context:
space:
mode:
authorGravatar cpeyser <cpeyser@google.com>2017-07-19 00:19:31 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-07-19 10:22:19 +0200
commit64a0f5664720c2a067483f2ee77caecf17aaca3c (patch)
treea6e01fde6b621994d173d03b53a7fb2efb72a085 /src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcSourceTest.java
parentf9a0147f436d99c088ed81a1c964841f6e03fdaf (diff)
Open source j2objc tests.
PiperOrigin-RevId: 162411695
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcSourceTest.java')
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcSourceTest.java76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcSourceTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcSourceTest.java
new file mode 100644
index 0000000000..3e413f5c6b
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/J2ObjcSourceTest.java
@@ -0,0 +1,76 @@
+// Copyright 2017 The Bazel Authors. All rights reserved.
+//
+// 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 com.google.devtools.build.lib.rules.objc;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.testing.EqualsTester;
+import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.actions.Root;
+import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.testutil.Scratch;
+import com.google.devtools.build.lib.vfs.PathFragment;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/**
+ * Unit test for {@link J2ObjcSource}.
+ */
+@RunWith(JUnit4.class)
+public class J2ObjcSourceTest {
+ private Root rootDir;
+
+ @Before
+ public final void setRootDir() throws Exception {
+ Scratch scratch = new Scratch();
+ rootDir = Root.asDerivedRoot(scratch.dir("/exec/root"));
+ }
+
+ @Test
+ public void testEqualsAndHashCode() throws Exception {
+ new EqualsTester()
+ .addEqualityGroup(
+ getJ2ObjcSource("//a/b:c", "sourceA", J2ObjcSource.SourceType.JAVA),
+ getJ2ObjcSource("//a/b:c", "sourceA", J2ObjcSource.SourceType.JAVA))
+ .addEqualityGroup(
+ getJ2ObjcSource("//a/b:d", "sourceA", J2ObjcSource.SourceType.JAVA),
+ getJ2ObjcSource("//a/b:d", "sourceA", J2ObjcSource.SourceType.JAVA))
+ .addEqualityGroup(
+ getJ2ObjcSource("//a/b:d", "sourceC", J2ObjcSource.SourceType.JAVA),
+ getJ2ObjcSource("//a/b:d", "sourceC", J2ObjcSource.SourceType.JAVA))
+ .addEqualityGroup(
+ getJ2ObjcSource("//a/b:d", "sourceC", J2ObjcSource.SourceType.PROTO),
+ getJ2ObjcSource("//a/b:d", "sourceC", J2ObjcSource.SourceType.PROTO))
+ .testEquals();
+ }
+
+ private J2ObjcSource getJ2ObjcSource(String label, String fileName,
+ J2ObjcSource.SourceType sourceType) throws Exception {
+ Label ruleLabel = Label.parseAbsolute(label);
+ PathFragment path = ruleLabel.toPathFragment();
+ return new J2ObjcSource(
+ ruleLabel,
+ ImmutableList.of(getArtifactForTest(path.getRelative(fileName + ".m").toString())),
+ ImmutableList.of(getArtifactForTest(path.getRelative(fileName + ".h").toString())),
+ path,
+ sourceType,
+ ImmutableList.of(path));
+ }
+
+ private Artifact getArtifactForTest(String path) throws Exception {
+ return new Artifact(PathFragment.create(path), rootDir);
+ }
+}