From 65400725553a8b133157d2ddf1a2330de908e9bd Mon Sep 17 00:00:00 2001 From: Jon Brandvein Date: Wed, 12 Oct 2016 20:37:54 +0000 Subject: Refactor getParentWithSkylarkModule() into SkylarkInterfaceUtils -- MOS_MIGRATED_REVID=135956016 --- .../devtools/build/lib/syntax/ValidationTest.java | 39 ++++++++++------------ 1 file changed, 18 insertions(+), 21 deletions(-) (limited to 'src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java') diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java index 661b8636a2..7acaaa7723 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/ValidationTest.java @@ -265,37 +265,33 @@ public class ValidationTest extends EvaluationTestCase { } @Test - public void testParentWithSkylarkModule() throws Exception { + public void testGetSkylarkType() throws Exception { Class emptyTupleClass = Tuple.empty().getClass(); Class tupleClass = Tuple.of(1, "a", "b").getClass(); - Class mutableListClass = new MutableList(Tuple.of(1, 2, 3), env).getClass(); + Class mutableListClass = new MutableList<>(Tuple.of(1, 2, 3), env).getClass(); - assertThat(mutableListClass).isEqualTo(MutableList.class); + assertThat(EvalUtils.getSkylarkType(mutableListClass)).isEqualTo(MutableList.class); assertThat(MutableList.class.isAnnotationPresent(SkylarkModule.class)).isTrue(); - assertThat(EvalUtils.getParentWithSkylarkModule(MutableList.class)) - .isEqualTo(MutableList.class); - assertThat(EvalUtils.getParentWithSkylarkModule(emptyTupleClass)).isEqualTo(Tuple.class); - assertThat(EvalUtils.getParentWithSkylarkModule(tupleClass)).isEqualTo(Tuple.class); - // TODO(bazel-team): make a tuple not a list anymore. - assertThat(EvalUtils.getParentWithSkylarkModule(tupleClass)).isEqualTo(Tuple.class); + assertThat(EvalUtils.getSkylarkType(emptyTupleClass)).isEqualTo(Tuple.class); + assertThat(EvalUtils.getSkylarkType(tupleClass)).isEqualTo(Tuple.class); - // TODO(bazel-team): fix that? - assertThat(ClassObject.class.isAnnotationPresent(SkylarkModule.class)).isFalse(); - assertThat(SkylarkClassObject.class.isAnnotationPresent(SkylarkModule.class)) - .isTrue(); - assertThat( - EvalUtils.getParentWithSkylarkModule(SkylarkClassObject.class) - == SkylarkClassObject.class) - .isTrue(); - assertThat(EvalUtils.getParentWithSkylarkModule(ClassObject.class)).isNull(); + assertThat(EvalUtils.getSkylarkType(SkylarkClassObject.class)) + .isEqualTo(SkylarkClassObject.class); + try { + EvalUtils.getSkylarkType(ClassObject.class); + throw new Exception("Should have raised IllegalArgumentException exception"); + } catch (IllegalArgumentException e) { + assertThat(e.getMessage()).contains( + "interface com.google.devtools.build.lib.syntax.ClassObject is not allowed " + + "as a Skylark value"); + } } @Test public void testSkylarkTypeEquivalence() throws Exception { - // All subclasses of SkylarkList are made equivalent Class emptyTupleClass = Tuple.empty().getClass(); Class tupleClass = Tuple.of(1, "a", "b").getClass(); - Class mutableListClass = new MutableList(Tuple.of(1, 2, 3), env).getClass(); + Class mutableListClass = new MutableList<>(Tuple.of(1, 2, 3), env).getClass(); assertThat(SkylarkType.of(mutableListClass)).isEqualTo(SkylarkType.LIST); assertThat(SkylarkType.of(emptyTupleClass)).isEqualTo(SkylarkType.TUPLE); @@ -315,7 +311,8 @@ public class ValidationTest extends EvaluationTestCase { // TODO(bazel-team): move to some other place to remove dependency of syntax tests on Artifact? assertThat(SkylarkType.of(Artifact.SpecialArtifact.class)) .isEqualTo(SkylarkType.of(Artifact.class)); - assertThat(SkylarkType.of(RuleConfiguredTarget.class)).isNotEqualTo(SkylarkType.of(SkylarkClassObject.class)); + assertThat(SkylarkType.of(RuleConfiguredTarget.class)) + .isNotEqualTo(SkylarkType.of(SkylarkClassObject.class)); } @Test -- cgit v1.2.3