From cda0bad6a7c611b58033d2ced69083b9041ecf75 Mon Sep 17 00:00:00 2001 From: Jake Wharton Date: Thu, 12 Oct 2017 00:55:54 -0400 Subject: [PATCH] Port some resource binding tests to be functional. --- butterknife/build.gradle | 1 + .../butterknife/functional/BindArrayTest.java | 59 +++++++ .../butterknife/functional/BindBoolTest.java | 29 ++++ .../butterknife/functional/BindColorTest.java | 29 ++++ .../butterknife/functional/BindDimenTest.java | 44 +++++ .../butterknife/functional/BindFloatTest.java | 33 ++++ .../butterknife/functional/BindIntTest.java | 29 ++++ .../functional/BindStringTest.java | 29 ++++ .../src/androidTest/res/values/values.xml | 18 ++ .../test/java/butterknife/BindArrayTest.java | 159 +----------------- .../test/java/butterknife/BindBoolTest.java | 54 +----- .../test/java/butterknife/BindColorTest.java | 53 +----- .../test/java/butterknife/BindDimenTest.java | 106 +----------- .../test/java/butterknife/BindFloatTest.java | 53 +----- .../test/java/butterknife/BindIntTest.java | 54 +----- .../test/java/butterknife/BindStringTest.java | 54 +----- 16 files changed, 278 insertions(+), 526 deletions(-) create mode 100644 butterknife/src/androidTest/java/butterknife/functional/BindArrayTest.java create mode 100644 butterknife/src/androidTest/java/butterknife/functional/BindBoolTest.java create mode 100644 butterknife/src/androidTest/java/butterknife/functional/BindColorTest.java create mode 100644 butterknife/src/androidTest/java/butterknife/functional/BindDimenTest.java create mode 100644 butterknife/src/androidTest/java/butterknife/functional/BindFloatTest.java create mode 100644 butterknife/src/androidTest/java/butterknife/functional/BindIntTest.java create mode 100644 butterknife/src/androidTest/java/butterknife/functional/BindStringTest.java create mode 100644 butterknife/src/androidTest/res/values/values.xml diff --git a/butterknife/build.gradle b/butterknife/build.gradle index 623a32c01..304dee70d 100644 --- a/butterknife/build.gradle +++ b/butterknife/build.gradle @@ -35,6 +35,7 @@ dependencies { androidTestImplementation deps.junit androidTestImplementation deps.truth androidTestImplementation deps.support.test.runner + androidTestAnnotationProcessor project(':butterknife-compiler') testImplementation deps.junit testImplementation deps.truth diff --git a/butterknife/src/androidTest/java/butterknife/functional/BindArrayTest.java b/butterknife/src/androidTest/java/butterknife/functional/BindArrayTest.java new file mode 100644 index 000000000..19992317a --- /dev/null +++ b/butterknife/src/androidTest/java/butterknife/functional/BindArrayTest.java @@ -0,0 +1,59 @@ +package butterknife.functional; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import butterknife.BindArray; +import butterknife.Unbinder; +import butterknife.test.R; +import org.junit.Test; + +import static com.google.common.truth.Truth.assertThat; + +public final class BindArrayTest { + private final Context context = InstrumentationRegistry.getContext(); + + static class StringArrayTarget { + @BindArray(R.array.string_one_two_three) String[] actual; + } + + @Test public void asStringArray() { + StringArrayTarget target = new StringArrayTarget(); + String[] expected = context.getResources().getStringArray(R.array.string_one_two_three); + + Unbinder unbinder = new BindArrayTest$StringArrayTarget_ViewBinding(target, context); + assertThat(target.actual).isEqualTo(expected); + + unbinder.unbind(); + assertThat(target.actual).isEqualTo(expected); + } + + static class IntArrayTarget { + @BindArray(R.array.int_one_two_three) int[] actual; + } + + @Test public void asIntArray() { + IntArrayTarget target = new IntArrayTarget(); + int[] expected = context.getResources().getIntArray(R.array.int_one_two_three); + + Unbinder unbinder = new BindArrayTest$IntArrayTarget_ViewBinding(target, context); + assertThat(target.actual).isEqualTo(expected); + + unbinder.unbind(); + assertThat(target.actual).isEqualTo(expected); + } + + static class CharSequenceArrayTarget { + @BindArray(R.array.int_one_two_three) CharSequence[] actual; + } + + @Test public void asCharSequenceArray() { + CharSequenceArrayTarget target = new CharSequenceArrayTarget(); + CharSequence[] expected = context.getResources().getTextArray(R.array.int_one_two_three); + + Unbinder unbinder = new BindArrayTest$CharSequenceArrayTarget_ViewBinding(target, context); + assertThat(target.actual).isEqualTo(expected); + + unbinder.unbind(); + assertThat(target.actual).isEqualTo(expected); + } +} diff --git a/butterknife/src/androidTest/java/butterknife/functional/BindBoolTest.java b/butterknife/src/androidTest/java/butterknife/functional/BindBoolTest.java new file mode 100644 index 000000000..9156f8dc5 --- /dev/null +++ b/butterknife/src/androidTest/java/butterknife/functional/BindBoolTest.java @@ -0,0 +1,29 @@ +package butterknife.functional; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import butterknife.BindBool; +import butterknife.Unbinder; +import butterknife.test.R; +import org.junit.Test; + +import static com.google.common.truth.Truth.assertThat; + +public final class BindBoolTest { + private final Context context = InstrumentationRegistry.getContext(); + + static class Target { + @BindBool(R.bool.just_true) boolean actual; + } + + @Test public void asBoolean() { + Target target = new Target(); + boolean expected = context.getResources().getBoolean(R.bool.just_true); + + Unbinder unbinder = new BindBoolTest$Target_ViewBinding(target, context); + assertThat(target.actual).isEqualTo(expected); + + unbinder.unbind(); + assertThat(target.actual).isEqualTo(expected); + } +} diff --git a/butterknife/src/androidTest/java/butterknife/functional/BindColorTest.java b/butterknife/src/androidTest/java/butterknife/functional/BindColorTest.java new file mode 100644 index 000000000..786e08e82 --- /dev/null +++ b/butterknife/src/androidTest/java/butterknife/functional/BindColorTest.java @@ -0,0 +1,29 @@ +package butterknife.functional; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import butterknife.BindColor; +import butterknife.Unbinder; +import butterknife.test.R; +import org.junit.Test; + +import static com.google.common.truth.Truth.assertThat; + +public final class BindColorTest { + private final Context context = InstrumentationRegistry.getContext(); + + static class Target { + @BindColor(R.color.red) int actual; + } + + @Test public void asInt() { + Target target = new Target(); + int expected = context.getResources().getColor(R.color.red); + + Unbinder unbinder = new BindColorTest$Target_ViewBinding(target, context); + assertThat(target.actual).isEqualTo(expected); + + unbinder.unbind(); + assertThat(target.actual).isEqualTo(expected); + } +} diff --git a/butterknife/src/androidTest/java/butterknife/functional/BindDimenTest.java b/butterknife/src/androidTest/java/butterknife/functional/BindDimenTest.java new file mode 100644 index 000000000..4c76d5484 --- /dev/null +++ b/butterknife/src/androidTest/java/butterknife/functional/BindDimenTest.java @@ -0,0 +1,44 @@ +package butterknife.functional; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import butterknife.BindDimen; +import butterknife.Unbinder; +import butterknife.test.R; +import org.junit.Test; + +import static com.google.common.truth.Truth.assertThat; + +public final class BindDimenTest { + private final Context context = InstrumentationRegistry.getContext(); + + static class IntTarget { + @BindDimen(R.dimen.twelve_point_two_dp) int actual; + } + + @Test public void asInt() { + IntTarget target = new IntTarget(); + int expected = context.getResources().getDimensionPixelSize(R.dimen.twelve_point_two_dp); + + Unbinder unbinder = new BindDimenTest$IntTarget_ViewBinding(target, context); + assertThat(target.actual).isEqualTo(expected); + + unbinder.unbind(); + assertThat(target.actual).isEqualTo(expected); + } + + static class FloatTarget { + @BindDimen(R.dimen.twelve_point_two_dp) float actual; + } + + @Test public void asFloat() { + FloatTarget target = new FloatTarget(); + float expected = context.getResources().getDimension(R.dimen.twelve_point_two_dp); + + Unbinder unbinder = new BindDimenTest$FloatTarget_ViewBinding(target, context); + assertThat(target.actual).isEqualTo(expected); + + unbinder.unbind(); + assertThat(target.actual).isEqualTo(expected); + } +} diff --git a/butterknife/src/androidTest/java/butterknife/functional/BindFloatTest.java b/butterknife/src/androidTest/java/butterknife/functional/BindFloatTest.java new file mode 100644 index 000000000..5ec976587 --- /dev/null +++ b/butterknife/src/androidTest/java/butterknife/functional/BindFloatTest.java @@ -0,0 +1,33 @@ +package butterknife.functional; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.util.TypedValue; +import butterknife.BindFloat; +import butterknife.BindInt; +import butterknife.Unbinder; +import butterknife.test.R; +import org.junit.Test; + +import static com.google.common.truth.Truth.assertThat; + +public final class BindFloatTest { + private final Context context = InstrumentationRegistry.getContext(); + + static class Target { + @BindFloat(R.dimen.twelve_point_two) float actual; + } + + @Test public void asFloat() { + Target target = new Target(); + TypedValue value = new TypedValue(); + context.getResources().getValue(R.dimen.twelve_point_two, value, true); + float expected = value.getFloat(); + + Unbinder unbinder = new BindFloatTest$Target_ViewBinding(target, context); + assertThat(target.actual).isEqualTo(expected); + + unbinder.unbind(); + assertThat(target.actual).isEqualTo(expected); + } +} diff --git a/butterknife/src/androidTest/java/butterknife/functional/BindIntTest.java b/butterknife/src/androidTest/java/butterknife/functional/BindIntTest.java new file mode 100644 index 000000000..8f0919660 --- /dev/null +++ b/butterknife/src/androidTest/java/butterknife/functional/BindIntTest.java @@ -0,0 +1,29 @@ +package butterknife.functional; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import butterknife.BindInt; +import butterknife.Unbinder; +import butterknife.test.R; +import org.junit.Test; + +import static com.google.common.truth.Truth.assertThat; + +public final class BindIntTest { + private final Context context = InstrumentationRegistry.getContext(); + + static class Target { + @BindInt(R.integer.twelve) int actual; + } + + @Test public void asInt() { + Target target = new Target(); + int expected = context.getResources().getInteger(R.integer.twelve); + + Unbinder unbinder = new BindIntTest$Target_ViewBinding(target, context); + assertThat(target.actual).isEqualTo(expected); + + unbinder.unbind(); + assertThat(target.actual).isEqualTo(expected); + } +} diff --git a/butterknife/src/androidTest/java/butterknife/functional/BindStringTest.java b/butterknife/src/androidTest/java/butterknife/functional/BindStringTest.java new file mode 100644 index 000000000..c72e05499 --- /dev/null +++ b/butterknife/src/androidTest/java/butterknife/functional/BindStringTest.java @@ -0,0 +1,29 @@ +package butterknife.functional; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import butterknife.BindString; +import butterknife.Unbinder; +import butterknife.test.R; +import org.junit.Test; + +import static com.google.common.truth.Truth.assertThat; + +public final class BindStringTest { + private final Context context = InstrumentationRegistry.getContext(); + + static class Target { + @BindString(R.string.hey) String actual; + } + + @Test public void simpleInt() { + Target target = new Target(); + String expected = context.getString(R.string.hey); + + Unbinder unbinder = new BindStringTest$Target_ViewBinding(target, context); + assertThat(target.actual).isEqualTo(expected); + + unbinder.unbind(); + assertThat(target.actual).isEqualTo(expected); + } +} diff --git a/butterknife/src/androidTest/res/values/values.xml b/butterknife/src/androidTest/res/values/values.xml new file mode 100644 index 000000000..f53d702ef --- /dev/null +++ b/butterknife/src/androidTest/res/values/values.xml @@ -0,0 +1,18 @@ + + true + #ffff0000 + 12 + 12.2dp + 12.2 + Hey + + One + Two + Three + + + 1 + 2 + 3 + + diff --git a/butterknife/src/test/java/butterknife/BindArrayTest.java b/butterknife/src/test/java/butterknife/BindArrayTest.java index 7a1c69d20..fb228829c 100644 --- a/butterknife/src/test/java/butterknife/BindArrayTest.java +++ b/butterknife/src/test/java/butterknife/BindArrayTest.java @@ -8,164 +8,7 @@ import static com.google.common.truth.Truth.assertAbout; import static com.google.testing.compile.JavaSourceSubjectFactory.javaSource; -public class BindArrayTest { - @Test public void stringArray() throws Exception { - JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" - + "package test;\n" - + "import butterknife.BindArray;\n" - + "public class Test {\n" - + " @BindArray(1) String[] one;\n" - + "}" - ); - - JavaFileObject bindingSource = JavaFileObjects.forSourceString("test/Test_ViewBinding", "" - + "// Generated code from Butter Knife. Do not modify!\n" - + "package test;\n" - + "import android.content.Context;\n" - + "import android.content.res.Resources;\n" - + "import android.support.annotation.CallSuper;\n" - + "import android.support.annotation.UiThread;\n" - + "import android.view.View;\n" - + "import butterknife.Unbinder;\n" - + "import java.lang.Deprecated;\n" - + "import java.lang.Override;\n" - + "import java.lang.SuppressWarnings;\n" - + "public class Test_ViewBinding implements Unbinder {\n" - + " /**\n" - + " * @deprecated Use {@link #Test_ViewBinding(Test, Context)} for direct creation.\n" - + " * Only present for runtime invocation through {@code ButterKnife.bind()}.\n" - + " */\n" - + " @Deprecated\n" - + " @UiThread\n" - + " public Test_ViewBinding(Test target, View source) {\n" - + " this(target, source.getContext());\n" - + " }\n" - + " @UiThread\n" - + " @SuppressWarnings(\"ResourceType\")\n" - + " public Test_ViewBinding(Test target, Context context) {\n" - + " Resources res = context.getResources();\n" - + " target.one = res.getStringArray(1);\n" - + " }\n" - + " @Override\n" - + " @CallSuper\n" - + " public void unbind() {\n" - + " }\n" - + "}" - ); - - - assertAbout(javaSource()).that(source) - .withCompilerOptions("-Xlint:-processing") - .processedWith(new ButterKnifeProcessor()) - .compilesWithoutWarnings() - .and() - .generatesSources(bindingSource); - } - - @Test public void intArray() throws Exception { - JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" - + "package test;\n" - + "import butterknife.BindArray;\n" - + "public class Test {\n" - + " @BindArray(1) int[] one;\n" - + "}" - ); - - JavaFileObject bindingSource = JavaFileObjects.forSourceString("test/Test_ViewBinding", "" - + "// Generated code from Butter Knife. Do not modify!\n" - + "package test;\n" - + "import android.content.Context;\n" - + "import android.content.res.Resources;\n" - + "import android.support.annotation.CallSuper;\n" - + "import android.support.annotation.UiThread;\n" - + "import android.view.View;\n" - + "import butterknife.Unbinder;\n" - + "import java.lang.Deprecated;\n" - + "import java.lang.Override;\n" - + "import java.lang.SuppressWarnings;\n" - + "public class Test_ViewBinding implements Unbinder {\n" - + " /**\n" - + " * @deprecated Use {@link #Test_ViewBinding(Test, Context)} for direct creation.\n" - + " * Only present for runtime invocation through {@code ButterKnife.bind()}.\n" - + " */\n" - + " @Deprecated\n" - + " @UiThread\n" - + " public Test_ViewBinding(Test target, View source) {\n" - + " this(target, source.getContext());\n" - + " }\n" - + " @UiThread\n" - + " @SuppressWarnings(\"ResourceType\")\n" - + " public Test_ViewBinding(Test target, Context context) {\n" - + " Resources res = context.getResources();\n" - + " target.one = res.getIntArray(1);\n" - + " }\n" - + " @Override\n" - + " @CallSuper\n" - + " public void unbind() {\n" - + " }\n" - + "}" - ); - - assertAbout(javaSource()).that(source) - .withCompilerOptions("-Xlint:-processing") - .processedWith(new ButterKnifeProcessor()) - .compilesWithoutWarnings() - .and() - .generatesSources(bindingSource); - } - - @Test public void textArray() throws Exception { - JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" - + "package test;\n" - + "import butterknife.BindArray;\n" - + "public class Test {\n" - + " @BindArray(1) CharSequence[] one;\n" - + "}" - ); - - JavaFileObject bindingSource = JavaFileObjects.forSourceString("test/Test_ViewBinding", "" - + "// Generated code from Butter Knife. Do not modify!\n" - + "package test;\n" - + "import android.content.Context;\n" - + "import android.content.res.Resources;\n" - + "import android.support.annotation.CallSuper;\n" - + "import android.support.annotation.UiThread;\n" - + "import android.view.View;\n" - + "import butterknife.Unbinder;\n" - + "import java.lang.Deprecated;\n" - + "import java.lang.Override;\n" - + "import java.lang.SuppressWarnings;\n" - + "public class Test_ViewBinding implements Unbinder {\n" - + " /**\n" - + " * @deprecated Use {@link #Test_ViewBinding(Test, Context)} for direct creation.\n" - + " * Only present for runtime invocation through {@code ButterKnife.bind()}.\n" - + " */\n" - + " @Deprecated\n" - + " @UiThread\n" - + " public Test_ViewBinding(Test target, View source) {\n" - + " this(target, source.getContext());\n" - + " }\n" - + " @UiThread\n" - + " @SuppressWarnings(\"ResourceType\")\n" - + " public Test_ViewBinding(Test target, Context context) {\n" - + " Resources res = context.getResources();\n" - + " target.one = res.getTextArray(1);\n" - + " }\n" - + " @Override\n" - + " @CallSuper\n" - + " public void unbind() {\n" - + " }\n" - + "}" - ); - - assertAbout(javaSource()).that(source) - .withCompilerOptions("-Xlint:-processing") - .processedWith(new ButterKnifeProcessor()) - .compilesWithoutWarnings() - .and() - .generatesSources(bindingSource); - } - +public final class BindArrayTest { @Test public void typedArray() throws Exception { JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" + "package test;\n" diff --git a/butterknife/src/test/java/butterknife/BindBoolTest.java b/butterknife/src/test/java/butterknife/BindBoolTest.java index fc44a763b..e32031cbe 100644 --- a/butterknife/src/test/java/butterknife/BindBoolTest.java +++ b/butterknife/src/test/java/butterknife/BindBoolTest.java @@ -8,59 +8,7 @@ import static com.google.common.truth.Truth.assertAbout; import static com.google.testing.compile.JavaSourceSubjectFactory.javaSource; -public class BindBoolTest { - @Test public void simple() { - JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" - + "package test;" - + "import butterknife.BindBool;" - + "public class Test {" - + " @BindBool(1) boolean one;" - + "}" - ); - - JavaFileObject bindingSource = JavaFileObjects.forSourceString("test/Test_ViewBinding", "" - + "// Generated code from Butter Knife. Do not modify!\n" - + "package test;\n" - + "import android.content.Context;\n" - + "import android.content.res.Resources;\n" - + "import android.support.annotation.CallSuper;\n" - + "import android.support.annotation.UiThread;\n" - + "import android.view.View;\n" - + "import butterknife.Unbinder;\n" - + "import java.lang.Deprecated;\n" - + "import java.lang.Override;\n" - + "import java.lang.SuppressWarnings;\n" - + "public class Test_ViewBinding implements Unbinder {\n" - + " /**\n" - + " * @deprecated Use {@link #Test_ViewBinding(Test, Context)} for direct creation.\n" - + " * Only present for runtime invocation through {@code ButterKnife.bind()}.\n" - + " */\n" - + " @Deprecated\n" - + " @UiThread\n" - + " public Test_ViewBinding(Test target, View source) {\n" - + " this(target, source.getContext());\n" - + " }\n" - + " @UiThread\n" - + " @SuppressWarnings(\"ResourceType\")\n" - + " public Test_ViewBinding(Test target, Context context) {\n" - + " Resources res = context.getResources();\n" - + " target.one = res.getBoolean(1);\n" - + " }\n" - + " @Override\n" - + " @CallSuper\n" - + " public void unbind() {\n" - + " }\n" - + "}" - ); - - assertAbout(javaSource()).that(source) - .withCompilerOptions("-Xlint:-processing") - .processedWith(new ButterKnifeProcessor()) - .compilesWithoutWarnings() - .and() - .generatesSources(bindingSource); - } - +public final class BindBoolTest { @Test public void typeMustBeBoolean() { JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" + "package test;\n" diff --git a/butterknife/src/test/java/butterknife/BindColorTest.java b/butterknife/src/test/java/butterknife/BindColorTest.java index e07b05de7..07d69b118 100644 --- a/butterknife/src/test/java/butterknife/BindColorTest.java +++ b/butterknife/src/test/java/butterknife/BindColorTest.java @@ -8,58 +8,7 @@ import static com.google.common.truth.Truth.assertAbout; import static com.google.testing.compile.JavaSourceSubjectFactory.javaSource; -public class BindColorTest { - @Test public void simpleInt() { - JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" - + "package test;\n" - + "import butterknife.BindColor;\n" - + "public class Test {\n" - + " @BindColor(1) int one;\n" - + "}" - ); - - JavaFileObject bindingSource = JavaFileObjects.forSourceString("test/Test_ViewBinding", "" - + "// Generated code from Butter Knife. Do not modify!\n" - + "package test;\n" - + "import android.content.Context;\n" - + "import android.support.annotation.CallSuper;\n" - + "import android.support.annotation.UiThread;\n" - + "import android.support.v4.content.ContextCompat;\n" - + "import android.view.View;\n" - + "import butterknife.Unbinder;\n" - + "import java.lang.Deprecated;\n" - + "import java.lang.Override;\n" - + "import java.lang.SuppressWarnings;\n" - + "public class Test_ViewBinding implements Unbinder {\n" - + " /**\n" - + " * @deprecated Use {@link #Test_ViewBinding(Test, Context)} for direct creation.\n" - + " * Only present for runtime invocation through {@code ButterKnife.bind()}.\n" - + " */\n" - + " @Deprecated\n" - + " @UiThread\n" - + " public Test_ViewBinding(Test target, View source) {\n" - + " this(target, source.getContext());\n" - + " }\n" - + " @UiThread\n" - + " @SuppressWarnings(\"ResourceType\")\n" - + " public Test_ViewBinding(Test target, Context context) {\n" - + " target.one = ContextCompat.getColor(context, 1);\n" - + " }\n" - + " @Override\n" - + " @CallSuper\n" - + " public void unbind() {\n" - + " }\n" - + "}" - ); - - assertAbout(javaSource()).that(source) - .withCompilerOptions("-Xlint:-processing") - .processedWith(new ButterKnifeProcessor()) - .compilesWithoutWarnings() - .and() - .generatesSources(bindingSource); - } - +public final class BindColorTest { @Test public void simpleIntSdk23() { JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" + "package test;\n" diff --git a/butterknife/src/test/java/butterknife/BindDimenTest.java b/butterknife/src/test/java/butterknife/BindDimenTest.java index c8adfc818..0b0d235aa 100644 --- a/butterknife/src/test/java/butterknife/BindDimenTest.java +++ b/butterknife/src/test/java/butterknife/BindDimenTest.java @@ -8,111 +8,7 @@ import static com.google.common.truth.Truth.assertAbout; import static com.google.testing.compile.JavaSourceSubjectFactory.javaSource; -public class BindDimenTest { - @Test public void simpleFloat() { - JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" - + "package test;\n" - + "import butterknife.BindDimen;\n" - + "public class Test {\n" - + " @BindDimen(1) float one;\n" - + "}" - ); - - JavaFileObject bindingSource = JavaFileObjects.forSourceString("test/Test_ViewBinding", "" - + "// Generated code from Butter Knife. Do not modify!\n" - + "package test;\n" - + "import android.content.Context;\n" - + "import android.content.res.Resources;\n" - + "import android.support.annotation.CallSuper;\n" - + "import android.support.annotation.UiThread;\n" - + "import android.view.View;\n" - + "import butterknife.Unbinder;\n" - + "import java.lang.Deprecated;\n" - + "import java.lang.Override;\n" - + "import java.lang.SuppressWarnings;\n" - + "public class Test_ViewBinding implements Unbinder {\n" - + " /**\n" - + " * @deprecated Use {@link #Test_ViewBinding(Test, Context)} for direct creation.\n" - + " * Only present for runtime invocation through {@code ButterKnife.bind()}.\n" - + " */\n" - + " @Deprecated\n" - + " @UiThread\n" - + " public Test_ViewBinding(Test target, View source) {\n" - + " this(target, source.getContext());\n" - + " }\n" - + " @UiThread\n" - + " @SuppressWarnings(\"ResourceType\")\n" - + " public Test_ViewBinding(Test target, Context context) {\n" - + " Resources res = context.getResources();\n" - + " target.one = res.getDimension(1);\n" - + " }\n" - + " @Override\n" - + " @CallSuper\n" - + " public void unbind() {\n" - + " }\n" - + "}" - ); - - assertAbout(javaSource()).that(source) - .withCompilerOptions("-Xlint:-processing") - .processedWith(new ButterKnifeProcessor()) - .compilesWithoutWarnings() - .and() - .generatesSources(bindingSource); - } - - @Test public void simpleInt() { - JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" - + "package test;\n" - + "import butterknife.BindDimen;\n" - + "public class Test {\n" - + " @BindDimen(1) int one;\n" - + "}" - ); - - JavaFileObject bindingSource = JavaFileObjects.forSourceString("test/Test_ViewBinding", "" - + "// Generated code from Butter Knife. Do not modify!\n" - + "package test;\n" - + "import android.content.Context;\n" - + "import android.content.res.Resources;\n" - + "import android.support.annotation.CallSuper;\n" - + "import android.support.annotation.UiThread;\n" - + "import android.view.View;\n" - + "import butterknife.Unbinder;\n" - + "import java.lang.Deprecated;\n" - + "import java.lang.Override;\n" - + "import java.lang.SuppressWarnings;\n" - + "public class Test_ViewBinding implements Unbinder {\n" - + " /**\n" - + " * @deprecated Use {@link #Test_ViewBinding(Test, Context)} for direct creation.\n" - + " * Only present for runtime invocation through {@code ButterKnife.bind()}.\n" - + " */\n" - + " @Deprecated\n" - + " @UiThread\n" - + " public Test_ViewBinding(Test target, View source) {\n" - + " this(target, source.getContext());\n" - + " }\n" - + " @UiThread\n" - + " @SuppressWarnings(\"ResourceType\")\n" - + " public Test_ViewBinding(Test target, Context context) {\n" - + " Resources res = context.getResources();\n" - + " target.one = res.getDimensionPixelSize(1);\n" - + " }\n" - + " @Override\n" - + " @CallSuper\n" - + " public void unbind() {\n" - + " }\n" - + "}" - ); - - assertAbout(javaSource()).that(source) - .withCompilerOptions("-Xlint:-processing") - .processedWith(new ButterKnifeProcessor()) - .compilesWithoutWarnings() - .and() - .generatesSources(bindingSource); - } - +public final class BindDimenTest { @Test public void typeMustBeIntOrFloat() { JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" + "package test;\n" diff --git a/butterknife/src/test/java/butterknife/BindFloatTest.java b/butterknife/src/test/java/butterknife/BindFloatTest.java index cbbd489b5..569804587 100644 --- a/butterknife/src/test/java/butterknife/BindFloatTest.java +++ b/butterknife/src/test/java/butterknife/BindFloatTest.java @@ -8,58 +8,7 @@ import static com.google.common.truth.Truth.assertAbout; import static com.google.testing.compile.JavaSourceSubjectFactory.javaSource; -public class BindFloatTest { - @Test public void simple() { - JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" - + "package test;" - + "import butterknife.BindFloat;" - + "public class Test {" - + " @BindFloat(1) float one;" - + "}" - ); - - JavaFileObject bindingSource = JavaFileObjects.forSourceString("test/Test_ViewBinding", "" - + "// Generated code from Butter Knife. Do not modify!\n" - + "package test;\n" - + "import android.content.Context;\n" - + "import android.support.annotation.CallSuper;\n" - + "import android.support.annotation.UiThread;\n" - + "import android.view.View;\n" - + "import butterknife.Unbinder;\n" - + "import butterknife.internal.Utils;\n" - + "import java.lang.Deprecated;\n" - + "import java.lang.Override;\n" - + "import java.lang.SuppressWarnings;\n" - + "public class Test_ViewBinding implements Unbinder {\n" - + " /**\n" - + " * @deprecated Use {@link #Test_ViewBinding(Test, Context)} for direct creation.\n" - + " * Only present for runtime invocation through {@code ButterKnife.bind()}.\n" - + " */\n" - + " @Deprecated\n" - + " @UiThread\n" - + " public Test_ViewBinding(Test target, View source) {\n" - + " this(target, source.getContext());\n" - + " }\n" - + " @UiThread\n" - + " @SuppressWarnings(\"ResourceType\")\n" - + " public Test_ViewBinding(Test target, Context context) {\n" - + " target.one = Utils.getFloat(context, 1);\n" - + " }\n" - + " @Override\n" - + " @CallSuper\n" - + " public void unbind() {\n" - + " }\n" - + "}" - ); - - assertAbout(javaSource()).that(source) - .withCompilerOptions("-Xlint:-processing") - .processedWith(new ButterKnifeProcessor()) - .compilesWithoutWarnings() - .and() - .generatesSources(bindingSource); - } - +public final class BindFloatTest { @Test public void typeMustBeFloat() { JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" + "package test;\n" diff --git a/butterknife/src/test/java/butterknife/BindIntTest.java b/butterknife/src/test/java/butterknife/BindIntTest.java index bcb6652dc..0b7ef2ca4 100644 --- a/butterknife/src/test/java/butterknife/BindIntTest.java +++ b/butterknife/src/test/java/butterknife/BindIntTest.java @@ -8,59 +8,7 @@ import static com.google.common.truth.Truth.assertAbout; import static com.google.testing.compile.JavaSourceSubjectFactory.javaSource; -public class BindIntTest { - @Test public void simple() { - JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" - + "package test;\n" - + "import butterknife.BindInt;\n" - + "public class Test {\n" - + " @BindInt(1) int one;\n" - + "}" - ); - - JavaFileObject bindingSource = JavaFileObjects.forSourceString("test/Test_ViewBinding", "" - + "// Generated code from Butter Knife. Do not modify!\n" - + "package test;\n" - + "import android.content.Context;\n" - + "import android.content.res.Resources;\n" - + "import android.support.annotation.CallSuper;\n" - + "import android.support.annotation.UiThread;\n" - + "import android.view.View;\n" - + "import butterknife.Unbinder;\n" - + "import java.lang.Deprecated;\n" - + "import java.lang.Override;\n" - + "import java.lang.SuppressWarnings;\n" - + "public class Test_ViewBinding implements Unbinder {\n" - + " /**\n" - + " * @deprecated Use {@link #Test_ViewBinding(Test, Context)} for direct creation.\n" - + " * Only present for runtime invocation through {@code ButterKnife.bind()}.\n" - + " */\n" - + " @Deprecated\n" - + " @UiThread\n" - + " public Test_ViewBinding(Test target, View source) {\n" - + " this(target, source.getContext());\n" - + " }\n" - + " @UiThread\n" - + " @SuppressWarnings(\"ResourceType\")\n" - + " public Test_ViewBinding(Test target, Context context) {\n" - + " Resources res = context.getResources();\n" - + " target.one = res.getInteger(1);\n" - + " }\n" - + " @Override\n" - + " @CallSuper\n" - + " public void unbind() {\n" - + " }\n" - + "}" - ); - - assertAbout(javaSource()).that(source) - .withCompilerOptions("-Xlint:-processing") - .processedWith(new ButterKnifeProcessor()) - .compilesWithoutWarnings() - .and() - .generatesSources(bindingSource); - } - +public final class BindIntTest { @Test public void typeMustBeInt() { JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" + "package test;\n" diff --git a/butterknife/src/test/java/butterknife/BindStringTest.java b/butterknife/src/test/java/butterknife/BindStringTest.java index 13482c409..27d68879b 100644 --- a/butterknife/src/test/java/butterknife/BindStringTest.java +++ b/butterknife/src/test/java/butterknife/BindStringTest.java @@ -8,59 +8,7 @@ import static com.google.common.truth.Truth.assertAbout; import static com.google.testing.compile.JavaSourceSubjectFactory.javaSource; -public class BindStringTest { - @Test public void simple() { - JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" - + "package test;\n" - + "import butterknife.BindString;\n" - + "public class Test {\n" - + " @BindString(1) String one;\n" - + "}" - ); - - JavaFileObject bindingSource = JavaFileObjects.forSourceString("test/Test_ViewBinding", "" - + "// Generated code from Butter Knife. Do not modify!\n" - + "package test;\n" - + "import android.content.Context;\n" - + "import android.content.res.Resources;\n" - + "import android.support.annotation.CallSuper;\n" - + "import android.support.annotation.UiThread;\n" - + "import android.view.View;\n" - + "import butterknife.Unbinder;\n" - + "import java.lang.Deprecated;\n" - + "import java.lang.Override;\n" - + "import java.lang.SuppressWarnings;\n" - + "public class Test_ViewBinding implements Unbinder {\n" - + " /**\n" - + " * @deprecated Use {@link #Test_ViewBinding(Test, Context)} for direct creation.\n" - + " * Only present for runtime invocation through {@code ButterKnife.bind()}.\n" - + " */\n" - + " @Deprecated\n" - + " @UiThread\n" - + " public Test_ViewBinding(Test target, View source) {\n" - + " this(target, source.getContext());\n" - + " }\n" - + " @UiThread\n" - + " @SuppressWarnings(\"ResourceType\")\n" - + " public Test_ViewBinding(Test target, Context context) {\n" - + " Resources res = context.getResources();\n" - + " target.one = res.getString(1);\n" - + " }\n" - + " @Override\n" - + " @CallSuper\n" - + " public void unbind() {\n" - + " }\n" - + "}" - ); - - assertAbout(javaSource()).that(source) - .withCompilerOptions("-Xlint:-processing") - .processedWith(new ButterKnifeProcessor()) - .compilesWithoutWarnings() - .and() - .generatesSources(bindingSource); - } - +public final class BindStringTest { @Test public void typeMustBeString() { JavaFileObject source = JavaFileObjects.forSourceString("test.Test", "" + "package test;\n"