aboutsummaryrefslogtreecommitdiff
path: root/factory/src/test
diff options
context:
space:
mode:
authorronshapiro <ronshapiro@google.com>2016-08-05 07:45:51 -0700
committerÉamonn McManus <eamonn@mcmanus.net>2016-08-29 17:19:45 -0700
commitfe75dbf4d6523ddd3e50e6318096875d36c47959 (patch)
treedd7e7a759f449d3a4fe7e221777f59c7a9abfc57 /factory/src/test
parent4a052a8b9cbfbaa3407f46bb22a8b2b38c2c3a6d (diff)
downloadauto-fe75dbf4d6523ddd3e50e6318096875d36c47959.tar.gz
Disambiguate provider field's names in generated factories
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=129441115
Diffstat (limited to 'factory/src/test')
-rw-r--r--factory/src/test/java/com/google/auto/factory/processor/AutoFactoryProcessorTest.java12
-rw-r--r--factory/src/test/resources/expected/MultipleFactoriesConflictingParameterNamesFactory.java61
-rw-r--r--factory/src/test/resources/good/MultipleFactoriesConflictingParameterNames.java38
3 files changed, 111 insertions, 0 deletions
diff --git a/factory/src/test/java/com/google/auto/factory/processor/AutoFactoryProcessorTest.java b/factory/src/test/java/com/google/auto/factory/processor/AutoFactoryProcessorTest.java
index 9cf80b52..67302e97 100644
--- a/factory/src/test/java/com/google/auto/factory/processor/AutoFactoryProcessorTest.java
+++ b/factory/src/test/java/com/google/auto/factory/processor/AutoFactoryProcessorTest.java
@@ -24,6 +24,7 @@ import org.junit.runners.JUnit4;
import static com.google.common.truth.Truth.assertAbout;
import static com.google.testing.compile.JavaSourceSubjectFactory.javaSource;
+import static com.google.testing.compile.JavaSourcesSubject.assertThat;
import static com.google.testing.compile.JavaSourcesSubjectFactory.javaSources;
/**
@@ -375,4 +376,15 @@ public class AutoFactoryProcessorTest {
.and().generatesSources(
JavaFileObjects.forResource("expected/ProviderArgumentToCreateMethodFactory.java"));
}
+
+ @Test public void multipleFactoriesConflictingParameterNames() {
+ assertThat(
+ JavaFileObjects.forResource("good/MultipleFactoriesConflictingParameterNames.java"),
+ JavaFileObjects.forResource("support/AQualifier.java"))
+ .processedWith(new AutoFactoryProcessor())
+ .compilesWithoutError()
+ .and().generatesSources(
+ JavaFileObjects.forResource(
+ "expected/MultipleFactoriesConflictingParameterNamesFactory.java"));
+ }
}
diff --git a/factory/src/test/resources/expected/MultipleFactoriesConflictingParameterNamesFactory.java b/factory/src/test/resources/expected/MultipleFactoriesConflictingParameterNamesFactory.java
new file mode 100644
index 00000000..be436523
--- /dev/null
+++ b/factory/src/test/resources/expected/MultipleFactoriesConflictingParameterNamesFactory.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2016 Google, Inc.
+ *
+ * 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 tests;
+
+import com.google.auto.factory.internal.Preconditions;
+import javax.annotation.Generated;
+import javax.inject.Inject;
+import javax.inject.Provider;
+
+@Generated(
+ value = "com.google.auto.factory.processor.AutoFactoryProcessor",
+ comments = "https://github.com/google/auto/tree/master/factory"
+)
+final class MultipleFactoriesConflictingParameterNamesFactory {
+
+ private final Provider<String> stringProvider;
+ private final Provider<Object> java_lang_ObjectProvider;
+ private final Provider<String> stringProvider2;
+ private final Provider<Object> _tests_AQualifier_java_lang_ObjectProvider;
+
+ @Inject
+ MultipleFactoriesConflictingParameterNamesFactory(
+ Provider<String> stringProvider,
+ Provider<Object> java_lang_ObjectProvider,
+ @AQualifier Provider<String> stringProvider2,
+ @AQualifier Provider<Object> _tests_AQualifier_java_lang_ObjectProvider) {
+ this.stringProvider = Preconditions.checkNotNull(stringProvider, 1);
+ this.java_lang_ObjectProvider = Preconditions.checkNotNull(java_lang_ObjectProvider, 2);
+ this.stringProvider2 = Preconditions.checkNotNull(stringProvider2, 3);
+ this._tests_AQualifier_java_lang_ObjectProvider =
+ Preconditions.checkNotNull(_tests_AQualifier_java_lang_ObjectProvider, 4);
+ }
+
+ MultipleFactoriesConflictingParameterNames create(Object unused) {
+ return new MultipleFactoriesConflictingParameterNames(
+ Preconditions.checkNotNull(stringProvider.get(), 1),
+ Preconditions.checkNotNull(java_lang_ObjectProvider.get(), 2),
+ java_lang_ObjectProvider,
+ Preconditions.checkNotNull(unused, 4));
+ }
+
+ MultipleFactoriesConflictingParameterNames create() {
+ return new MultipleFactoriesConflictingParameterNames(
+ Preconditions.checkNotNull(stringProvider2.get(), 1),
+ Preconditions.checkNotNull(_tests_AQualifier_java_lang_ObjectProvider.get(), 2),
+ _tests_AQualifier_java_lang_ObjectProvider);
+ }
+}
diff --git a/factory/src/test/resources/good/MultipleFactoriesConflictingParameterNames.java b/factory/src/test/resources/good/MultipleFactoriesConflictingParameterNames.java
new file mode 100644
index 00000000..47e6fa54
--- /dev/null
+++ b/factory/src/test/resources/good/MultipleFactoriesConflictingParameterNames.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2016 Google, Inc.
+ *
+ * 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 tests;
+
+import com.google.auto.factory.AutoFactory;
+import com.google.auto.factory.Provided;
+import javax.inject.Provider;
+
+class MultipleFactoriesConflictingParameterNames {
+
+ @AutoFactory
+ MultipleFactoriesConflictingParameterNames(
+ @Provided String string,
+ @Provided Object duplicatedKey_nameDoesntMatter,
+ @Provided Provider<Object> duplicatedKeyProvider_nameDoesntMatter,
+ // used to disambiguate with the second constructor since qualifiers aren't part of the type
+ // system
+ Object unused) {}
+
+ @AutoFactory
+ MultipleFactoriesConflictingParameterNames(
+ @Provided @AQualifier String string,
+ @Provided @AQualifier Object qualifiedDuplicatedKey_nameDoesntMatter,
+ @Provided @AQualifier Provider<Object> qualifiedDuplicatedKeyProvider_nameDoesntMatter) {}
+}