public static Rule compose()

in buildSrc/src/main/java/com/uber/okbuck/composer/android/AndroidTestRuleComposer.java [26:76]


  public static Rule compose(
      AndroidLibTarget target,
      @Nullable String manifestRule,
      List<String> deps,
      List<String> aidlRuleNames,
      @Nullable String appClass) {

    List<String> testDeps = new ArrayList<>(deps);
    testDeps.add(":" + src(target));
    testDeps.addAll(external(target.getExternalDeps(SourceSetType.TEST)));
    testDeps.addAll(targets(target.getTargetDeps(SourceSetType.TEST)));

    List<String> testAptDeps = new ArrayList<>();
    testAptDeps.addAll(external(target.getExternalAptDeps(SourceSetType.TEST)));
    testAptDeps.addAll(targets(target.getTargetAptDeps(SourceSetType.TEST)));

    Set<String> providedDeps = new LinkedHashSet<>();
    providedDeps.addAll(external(target.getExternalProvidedDeps(SourceSetType.TEST)));
    providedDeps.addAll(targets(target.getTargetProvidedDeps(SourceSetType.TEST)));
    providedDeps.add(D8Manager.RT_STUB_JAR_RULE);

    AndroidTestRule androidTest =
        new AndroidTestRule()
            .srcs(target.getTest().getSources())
            .exts(target.getTestRuleType().getProperties())
            .apPlugins(getApPlugins(target.getTestApPlugins()))
            .aptDeps(testAptDeps)
            .providedDeps(providedDeps)
            .resources(target.getTest().getJavaResources())
            .sourceCompatibility(target.getSourceCompatibility())
            .targetCompatibility(target.getTargetCompatibility())
            .exportedDeps(aidlRuleNames)
            .excludes(appClass != null ? ImmutableSet.of(appClass) : ImmutableSet.of())
            .options(target.getTest().getCustomOptions())
            .jvmArgs(target.getTestOptions().getJvmArgs())
            .env(target.getTestOptions().getEnv())
            .robolectricManifest(manifestRule)
            .runtimeDependency(RobolectricManager.ROBOLECTRIC_CACHE_TARGET);

    if (target.getTestRuleType().equals(RuleType.KOTLIN_ROBOLECTRIC_TEST)) {
      androidTest.language("kotlin");
    }

    return androidTest
        .ruleType(target.getTestRuleType().getBuckName())
        .defaultVisibility()
        .deps(testDeps)
        .name(test(target))
        .labels(ANDROID_TEST_LABELS)
        .extraBuckOpts(target.getExtraOpts(RuleType.ROBOLECTRIC_TEST));
  }