diff --git a/WORKSPACE b/WORKSPACE index 95852e03058..586064ced9c 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -225,7 +225,7 @@ http_archive( # LICENSE: The Apache Software License, Version 2.0 git_repository( name = "io_bazel_rules_scala", - commit = "40151843d9be877048f187fd2f627c1eccfb3b5c", + commit = "8359fc6781cf3102e918c84cb1638a1b1e050ce0", remote = "https://github.com/bazelbuild/rules_scala.git", ) @@ -233,6 +233,8 @@ load("@io_bazel_rules_scala//scala:scala.bzl", "scala_repositories") scala_repositories() load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_register_toolchains") scala_register_toolchains() +load("@io_bazel_rules_scala//twitter_scrooge:twitter_scrooge.bzl", "twitter_scrooge") +twitter_scrooge() # END-EXTERNAL-SCALA # BEGIN-EXTERNAL-KOTLIN diff --git a/aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/BUILD b/aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/BUILD new file mode 100644 index 00000000000..99a6027c6c2 --- /dev/null +++ b/aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/BUILD @@ -0,0 +1,36 @@ +licenses(["notice"]) # Apache 2.0 + +load( + "//aspect/testing/rules:intellij_aspect_test_fixture.bzl", + "intellij_aspect_test_fixture", +) +load( + "@io_bazel_rules_scala//twitter_scrooge:twitter_scrooge.bzl", + "scrooge_scala_library", +) + +scrooge_scala_library( + name = "simple", + visibility = ["//visibility:public"], + deps = ["//aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/thrift:thrift"], +) + +intellij_aspect_test_fixture( + name = "simple_fixture", + deps = [":simple"], +) + +java_test( + name = "ScroogeScalaLibraryTest", + srcs = ["ScroogeScalaLibraryTest.java"], + data = [":simple_fixture"], + deps = [ + "//aspect/testing:BazelIntellijAspectTest", + "//aspect/testing/rules:IntellijAspectTest", + "//aspect/testing/rules:intellij_aspect_test_fixture_java_proto", + "//proto:intellij_ide_info_java_proto", + "@junit//jar", + "@truth//jar", + ":simple", + ], +) diff --git a/aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/ScroogeScalaLibraryTest.java b/aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/ScroogeScalaLibraryTest.java new file mode 100644 index 00000000000..89a87428c39 --- /dev/null +++ b/aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/ScroogeScalaLibraryTest.java @@ -0,0 +1,50 @@ +package com.google.idea.blaze.aspect.scala.scroogescalalibrary; + +import com.google.devtools.intellij.IntellijAspectTestFixtureOuterClass; +import com.google.devtools.intellij.ideinfo.IntellijIdeInfo; +import com.google.idea.blaze.BazelIntellijAspectTest; +import com.google.idea.blaze.aspect.IntellijAspectTest; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +import java.util.stream.Collectors; + +import static com.google.common.truth.Truth.assertThat; + +@RunWith(JUnit4.class) +public class ScroogeScalaLibraryTest extends BazelIntellijAspectTest { + @Test + public void testScroogeScalaLibrary() throws Exception { + IntellijAspectTestFixtureOuterClass.IntellijAspectTestFixture testFixture = loadTestFixture(":simple_fixture"); + IntellijIdeInfo.TargetIdeInfo target = findTarget(testFixture, ":simple"); + assertThat(target.getKindString()).isEqualTo("scrooge_scala_library"); + assertThat(target.hasJavaIdeInfo()).isTrue(); + assertThat(target.hasCIdeInfo()).isFalse(); + assertThat(target.hasAndroidIdeInfo()).isFalse(); + assertThat(target.hasPyIdeInfo()).isFalse(); + + assertThat(relativePathsForArtifacts(target.getJavaIdeInfo().getSourcesList())) + .isEmpty(); + assertThat( + target + .getJavaIdeInfo() + .getJarsList() + .stream() + .map(IntellijAspectTest::libraryArtifactToString) + .collect(Collectors.toList())) + .containsExactly(jarString(testRelative("thrift/thrift_scrooge.jar"), null, null)); + + assertThat(getOutputGroupFiles(testFixture, "intellij-resolve-java")) + .containsExactly(testRelative("thrift/thrift_scrooge.jar")); + + assertThat(getOutputGroupFiles(testFixture, "intellij-info-java")) + .containsExactly(testRelative("simple.intellij-info.txt")); + assertThat(getOutputGroupFiles(testFixture, "intellij-compile-java")) + .containsExactly(testRelative("thrift/thrift_scrooge.jar")); + assertThat(getOutputGroupFiles(testFixture, "intellij-info-generic")) + .containsExactly(testRelative("thrift/thrift.intellij-info.txt")); + + assertThat(target.getJavaIdeInfo().getMainClass()).isEmpty(); + } +} diff --git a/aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/thrift/BUILD b/aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/thrift/BUILD new file mode 100644 index 00000000000..2ec50ac3526 --- /dev/null +++ b/aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/thrift/BUILD @@ -0,0 +1,7 @@ +load("@io_bazel_rules_scala//thrift:thrift.bzl", "thrift_library") + +thrift_library( + name = "thrift", + srcs = ["Thrift.thrift"], + visibility = ["//visibility:public"], +) \ No newline at end of file diff --git a/aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/thrift/Thrift.thrift b/aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/thrift/Thrift.thrift new file mode 100644 index 00000000000..76b361cf39c --- /dev/null +++ b/aspect/testing/tests/src/com/google/idea/blaze/aspect/scala/scroogescalalibrary/thrift/Thrift.thrift @@ -0,0 +1,5 @@ +namespace java scalarules.test.twitter_scrooge.thrift + +struct Struct1 { + 1: i32 integer +} \ No newline at end of file