From 160b1a86ed9645dd525896bbdbfa0d1e46e2ffab Mon Sep 17 00:00:00 2001 From: Giorgos Kylafas Date: Fri, 11 Mar 2016 17:23:38 +0200 Subject: [PATCH 1/2] Added assertions for preference-v7 support lib. Basically a copy of preference assertions from module assertj-android/, - minus some classes/methods not included in preference-v7 + plus SwitchPreferenceCompat. --- .../assertj-android-preference-v7.iml | 111 +++++++++ assertj-android-preference-v7/build.gradle | 27 ++ .../gradle.properties | 3 + .../src/main/AndroidManifest.xml | 4 + .../android/preference/v7/api/Assertions.java | 51 ++++ .../AbstractDialogPreferenceAssert.java | 91 +++++++ .../preference/AbstractPreferenceAssert.java | 230 ++++++++++++++++++ .../AbstractPreferenceGroupAssert.java | 38 +++ .../AbstractTwoStatePreference.java | 58 +++++ .../preference/CheckBoxPreferenceAssert.java | 14 ++ .../preference/DialogPreferenceAssert.java | 16 ++ .../preference/EditTextPreferenceAssert.java | 22 ++ .../api/preference/ListPreferenceAssert.java | 54 ++++ .../v7/api/preference/PreferenceAssert.java | 15 ++ .../api/preference/PreferenceGroupAssert.java | 16 ++ .../SwitchPreferenceCompatAssert.java | 44 ++++ .../preference/TwoStatePreferenceAssert.java | 17 ++ .../AbstractDialogPreferenceAssert.java | 1 - build.gradle | 1 + settings.gradle | 1 + 20 files changed, 813 insertions(+), 1 deletion(-) create mode 100644 assertj-android-preference-v7/assertj-android-preference-v7.iml create mode 100644 assertj-android-preference-v7/build.gradle create mode 100644 assertj-android-preference-v7/gradle.properties create mode 100644 assertj-android-preference-v7/src/main/AndroidManifest.xml create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/Assertions.java create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractDialogPreferenceAssert.java create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractPreferenceAssert.java create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractPreferenceGroupAssert.java create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractTwoStatePreference.java create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/CheckBoxPreferenceAssert.java create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/DialogPreferenceAssert.java create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/EditTextPreferenceAssert.java create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/ListPreferenceAssert.java create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/PreferenceAssert.java create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/PreferenceGroupAssert.java create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/SwitchPreferenceCompatAssert.java create mode 100644 assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/TwoStatePreferenceAssert.java diff --git a/assertj-android-preference-v7/assertj-android-preference-v7.iml b/assertj-android-preference-v7/assertj-android-preference-v7.iml new file mode 100644 index 0000000..ae64bd0 --- /dev/null +++ b/assertj-android-preference-v7/assertj-android-preference-v7.iml @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assertj-android-preference-v7/build.gradle b/assertj-android-preference-v7/build.gradle new file mode 100644 index 0000000..3a3d088 --- /dev/null +++ b/assertj-android-preference-v7/build.gradle @@ -0,0 +1,27 @@ +apply plugin: 'com.android.library' + +dependencies { + compile project(':assertj-android') + compile rootProject.ext.supportPreference +} + +android { + compileSdkVersion rootProject.ext.compileSdkVersion + buildToolsVersion rootProject.ext.buildToolsVersion + + defaultConfig { + minSdkVersion rootProject.ext.minSdkVersion + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_7 + targetCompatibility JavaVersion.VERSION_1_7 + } + + lintOptions { + abortOnError false + } +} + +apply from: rootProject.file('gradle/checkstyle.gradle') +apply from: rootProject.file('gradle/gradle-mvn-push.gradle') diff --git a/assertj-android-preference-v7/gradle.properties b/assertj-android-preference-v7/gradle.properties new file mode 100644 index 0000000..5d0a7bb --- /dev/null +++ b/assertj-android-preference-v7/gradle.properties @@ -0,0 +1,3 @@ +POM_ARTIFACT_ID=assertj-android-preference-v7 +POM_NAME=AssertJ for Android Preference v7 +POM_PACKAGING=aar diff --git a/assertj-android-preference-v7/src/main/AndroidManifest.xml b/assertj-android-preference-v7/src/main/AndroidManifest.xml new file mode 100644 index 0000000..41a4cc1 --- /dev/null +++ b/assertj-android-preference-v7/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/Assertions.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/Assertions.java new file mode 100644 index 0000000..9594149 --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/Assertions.java @@ -0,0 +1,51 @@ +// Copyright 2016 Square, Inc. +// +// This class is generated. Do not modify directly! +package org.assertj.android.preference.v7.api; + +/** Assertions for testing Android classes. */ +public final class Assertions { + public static org.assertj.android.preference.v7.api.preference.CheckBoxPreferenceAssert assertThat( + android.support.v7.preference.CheckBoxPreference actual) { + return new org.assertj.android.preference.v7.api.preference.CheckBoxPreferenceAssert(actual); + } + + public static org.assertj.android.preference.v7.api.preference.DialogPreferenceAssert assertThat( + android.support.v7.preference.DialogPreference actual) { + return new org.assertj.android.preference.v7.api.preference.DialogPreferenceAssert(actual); + } + + public static org.assertj.android.preference.v7.api.preference.EditTextPreferenceAssert assertThat( + android.support.v7.preference.EditTextPreference actual) { + return new org.assertj.android.preference.v7.api.preference.EditTextPreferenceAssert(actual); + } + + public static org.assertj.android.preference.v7.api.preference.ListPreferenceAssert assertThat( + android.support.v7.preference.ListPreference actual) { + return new org.assertj.android.preference.v7.api.preference.ListPreferenceAssert(actual); + } + + public static org.assertj.android.preference.v7.api.preference.PreferenceAssert assertThat( + android.support.v7.preference.Preference actual) { + return new org.assertj.android.preference.v7.api.preference.PreferenceAssert(actual); + } + + public static org.assertj.android.preference.v7.api.preference.PreferenceGroupAssert assertThat( + android.support.v7.preference.PreferenceGroup actual) { + return new org.assertj.android.preference.v7.api.preference.PreferenceGroupAssert(actual); + } + + public static org.assertj.android.preference.v7.api.preference.SwitchPreferenceCompatAssert assertThat( + android.support.v7.preference.SwitchPreferenceCompat actual) { + return new org.assertj.android.preference.v7.api.preference.SwitchPreferenceCompatAssert(actual); + } + + public static org.assertj.android.preference.v7.api.preference.TwoStatePreferenceAssert assertThat( + android.support.v7.preference.TwoStatePreference actual) { + return new org.assertj.android.preference.v7.api.preference.TwoStatePreferenceAssert(actual); + } + + private Assertions() { + throw new AssertionError("No instances."); + } +} diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractDialogPreferenceAssert.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractDialogPreferenceAssert.java new file mode 100644 index 0000000..a0802f8 --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractDialogPreferenceAssert.java @@ -0,0 +1,91 @@ +// Copyright 2016 Square, Inc. +package org.assertj.android.preference.v7.api.preference; + +import android.graphics.drawable.Drawable; +import android.support.v7.preference.DialogPreference; +import static org.assertj.core.api.Assertions.assertThat; + +public abstract class AbstractDialogPreferenceAssert, A extends DialogPreference> + extends AbstractPreferenceAssert { + protected AbstractDialogPreferenceAssert(A actual, Class selfType) { + super(actual, selfType); + } + + public S hasDialogIcon(Drawable icon) { + isNotNull(); + Drawable actualIcon = actual.getIcon(); + assertThat(actualIcon) // + .overridingErrorMessage("Expected dialog icon <%s> but was <%s>.", icon, actualIcon) // + .isSameAs(icon); + return myself; + } + + public S hasDialogLayoutResource(int resource) { + isNotNull(); + int actualResource = actual.getDialogLayoutResource(); + assertThat(actualResource) // + .overridingErrorMessage("Expected dialog layout resource <%s> but was <%s>.", resource, + actualResource) // + .isEqualTo(resource); + return myself; + } + + public S hasDialogMessage(CharSequence message) { + isNotNull(); + CharSequence actualMessage = actual.getDialogMessage(); + assertThat(actualMessage) // + .overridingErrorMessage("Expected dialog message <%s> but was <%s>.", message, + actualMessage) // + .isEqualTo(message); + return myself; + } + + public S hasDialogMessage(int resId) { + isNotNull(); + return hasDialogMessage(actual.getContext().getString(resId)); + } + + public S hasDialogTitle(CharSequence title) { + isNotNull(); + CharSequence actualTitle = actual.getDialogTitle(); + assertThat(actualTitle) // + .overridingErrorMessage("Expected dialog title <%s> but was <%s>.", title, actualTitle) // + .isEqualTo(title); + return myself; + } + + public S hasDialogTitle(int resId) { + isNotNull(); + return hasDialogTitle(actual.getContext().getString(resId)); + } + + public S hasNegativeButtonText(CharSequence text) { + isNotNull(); + CharSequence actualText = actual.getNegativeButtonText(); + assertThat(actualText) // + .overridingErrorMessage("Expected negative button text <%s> but was <%s>.", text, + actualText) // + .isEqualTo(text); + return myself; + } + + public S hasNegativeButtonText(int resId) { + isNotNull(); + return hasNegativeButtonText(actual.getContext().getString(resId)); + } + + public S hasPositiveButtonText(CharSequence text) { + isNotNull(); + CharSequence actualText = actual.getPositiveButtonText(); + assertThat(actualText) // + .overridingErrorMessage("Expected positive button text <%s> but was <%s>.", text, + actualText) // + .isEqualTo(text); + return myself; + } + + public S hasPositiveButtonText(int resId) { + isNotNull(); + return hasPositiveButtonText(actual.getContext().getString(resId)); + } +} diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractPreferenceAssert.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractPreferenceAssert.java new file mode 100644 index 0000000..81e088a --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractPreferenceAssert.java @@ -0,0 +1,230 @@ +// Copyright 2016 Square, Inc. +package org.assertj.android.preference.v7.api.preference; + +import android.annotation.TargetApi; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.drawable.Drawable; +import android.support.v7.preference.Preference; +import android.support.v7.preference.PreferenceManager; +import org.assertj.core.api.AbstractAssert; +import static android.os.Build.VERSION_CODES.HONEYCOMB; +import static org.assertj.core.api.Assertions.assertThat; + +public abstract class AbstractPreferenceAssert, A extends Preference> + extends AbstractAssert { + protected AbstractPreferenceAssert(A actual, Class selfType) { + super(actual, selfType); + } + + public S hasContext(Context context) { + isNotNull(); + Context actualContext = actual.getContext(); + assertThat(actualContext) // + .overridingErrorMessage("Expected context <%s> but was <%s>.", context, actualContext) // + .isSameAs(context); + return myself; + } + + public S hasDependency(String dependency) { + isNotNull(); + String actualDependency = actual.getDependency(); + assertThat(actualDependency) // + .overridingErrorMessage("Expected dependency <%s> but was <%s>.", dependency, + actualDependency) // + .isEqualTo(dependency); + return myself; + } + + @TargetApi(HONEYCOMB) + public S hasFragment(String fragment) { + isNotNull(); + String actualFragment = actual.getFragment(); + assertThat(actualFragment) // + .overridingErrorMessage("Expected fragment <%s> but was <%s>.", fragment, actualFragment) // + .isEqualTo(fragment); + return myself; + } + + @TargetApi(HONEYCOMB) + public S hasIcon(Drawable icon) { + isNotNull(); + Drawable actualIcon = actual.getIcon(); + assertThat(actualIcon) // + .overridingErrorMessage("Expected icon <%s> but was <%s>.", icon, actualIcon) // + .isSameAs(icon); + return myself; + } + + public S hasIntent(Intent intent) { + isNotNull(); + Intent actualIntent = actual.getIntent(); + assertThat(actualIntent) // + .overridingErrorMessage("Expected intent <%s> but was <%s>.", intent, actualIntent) // + .isEqualTo(intent); + return myself; + } + + public S hasKey(String key) { + isNotNull(); + String actualKey = actual.getKey(); + assertThat(actualKey) // + .overridingErrorMessage("Expected key <%s> but was <%s>.", key, actualKey) // + .isEqualTo(key); + return myself; + } + + public S hasLayoutResource(int resource) { + isNotNull(); + int actualResource = actual.getLayoutResource(); + assertThat(actualResource) // + .overridingErrorMessage("Expected layout resource ID <%s> but was <%s>.", resource, + actualResource) // + .isEqualTo(resource); + return myself; + } + + public S hasPreferenceChangeListener(Preference.OnPreferenceChangeListener listener) { + isNotNull(); + Preference.OnPreferenceChangeListener actualListener = actual.getOnPreferenceChangeListener(); + assertThat(actualListener) // + .overridingErrorMessage("Expected preference change listener <%s> but was <%s>.", listener, + actualListener) // + .isSameAs(listener); + return myself; + } + + public S hasPreferenceClickListener(Preference.OnPreferenceClickListener listener) { + isNotNull(); + Preference.OnPreferenceClickListener actualListener = actual.getOnPreferenceClickListener(); + assertThat(actualListener) // + .overridingErrorMessage("Expected preference click listener <%s> but was <%s>.", listener, + actualListener) // + .isSameAs(listener); + return myself; + } + + public S hasOrder(int order) { + isNotNull(); + int actualOrder = actual.getOrder(); + assertThat(actualOrder) // + .overridingErrorMessage("Expected order <%s> but was <%s>.", order, actualOrder) // + .isEqualTo(order); + return myself; + } + + public S hasPreferenceManager(PreferenceManager manager) { + isNotNull(); + PreferenceManager actualManager = actual.getPreferenceManager(); + assertThat(actualManager) // + .overridingErrorMessage("Expected preference manager <%s> but was <%s>.", manager, + actualManager) // + .isSameAs(manager); + return myself; + } + + public S hasSharedPreferences(SharedPreferences preferences) { + isNotNull(); + SharedPreferences actualPreferences = actual.getSharedPreferences(); + assertThat(actualPreferences) // + .overridingErrorMessage("Expected shared preferences <%s> but was <%s>.", preferences, + actualPreferences) // + .isSameAs(preferences); + return myself; + } + + public S hasSummary(CharSequence summary) { + isNotNull(); + CharSequence actualSummary = actual.getSummary(); + assertThat(actualSummary) // + .overridingErrorMessage("Expected summary <%s> but was <%s>.", summary, actualSummary) // + .isEqualTo(summary); + return myself; + } + + public S hasSummary(int resId) { + isNotNull(); + return hasSummary(actual.getContext().getString(resId)); + } + + public S hasTitle(CharSequence title) { + isNotNull(); + CharSequence actualTitle = actual.getTitle(); + assertThat(actualTitle) // + .overridingErrorMessage("Expected title <%s> but was <%s>.", title, actualTitle) // + .isEqualTo(title); + return myself; + } + + public S hasTitle(int resId) { + isNotNull(); + return hasTitle(actual.getContext().getString(resId)); + } + + public S hasWidgetLayoutResource(int resource) { + isNotNull(); + int actualResource = actual.getWidgetLayoutResource(); + assertThat(actualResource) // + .overridingErrorMessage("Expected widget layout resource <%s> but was <%s>.", resource, + actualResource) // + .isEqualTo(resource); + return myself; + } + + public S hasKey() { + isNotNull(); + assertThat(actual.hasKey()) // + .overridingErrorMessage("Expected to have valid key but was invalid.") // + .isTrue(); + return myself; + } + + public S isEnabled() { + isNotNull(); + assertThat(actual.isEnabled()) // + .overridingErrorMessage("Expected to be enabled but was disabled.") // + .isTrue(); + return myself; + } + + public S isDisabled() { + isNotNull(); + assertThat(actual.isEnabled()) // + .overridingErrorMessage("Expected to be disabled but was enabled.") // + .isFalse(); + return myself; + } + + public S isPersistent() { + isNotNull(); + assertThat(actual.isPersistent()) // + .overridingErrorMessage("Expected to be persistent but was not.") // + .isTrue(); + return myself; + } + + public S isNotPersistent() { + isNotNull(); + assertThat(actual.isPersistent()) // + .overridingErrorMessage("Expected to not be persistent but was.") // + .isFalse(); + return myself; + } + + public S isSelectable() { + isNotNull(); + assertThat(actual.isSelectable()) // + .overridingErrorMessage("Expected to be selectable but was not.") // + .isTrue(); + return myself; + } + + public S isNotSelectable() { + isNotNull(); + assertThat(actual.isSelectable()) // + .overridingErrorMessage("Expected to not be selectable but was.") // + .isFalse(); + return myself; + } +} diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractPreferenceGroupAssert.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractPreferenceGroupAssert.java new file mode 100644 index 0000000..e61979c --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractPreferenceGroupAssert.java @@ -0,0 +1,38 @@ +// Copyright 2016 Square, Inc. +package org.assertj.android.preference.v7.api.preference; + +import android.support.v7.preference.PreferenceGroup; +import static org.assertj.core.api.Assertions.assertThat; + +public abstract class AbstractPreferenceGroupAssert, A extends PreferenceGroup> + extends AbstractPreferenceAssert { + protected AbstractPreferenceGroupAssert(A actual, Class selfType) { + super(actual, selfType); + } + + public S hasPreferenceCount(int count) { + isNotNull(); + int actualCount = actual.getPreferenceCount(); + assertThat(actualCount) // + .overridingErrorMessage("Expected preference count <%s> but was <%s>.", count, + actualCount) // + .isEqualTo(count); + return myself; + } + + public S isOrderingAsAdded() { + isNotNull(); + assertThat(actual.isOrderingAsAdded()) // + .overridingErrorMessage("Expected to be ordering as added but was not.") // + .isTrue(); + return myself; + } + + public S isNotOrderingAsAdded() { + isNotNull(); + assertThat(actual.isOrderingAsAdded()) // + .overridingErrorMessage("Expected to not be ordering as added but was.") // + .isFalse(); + return myself; + } +} diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractTwoStatePreference.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractTwoStatePreference.java new file mode 100644 index 0000000..b9c3684 --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/AbstractTwoStatePreference.java @@ -0,0 +1,58 @@ +// Copyright 2016 Square, Inc. +package org.assertj.android.preference.v7.api.preference; + +import android.support.v7.preference.TwoStatePreference; +import static org.assertj.core.api.Assertions.assertThat; + +public abstract class AbstractTwoStatePreference, A extends TwoStatePreference> + extends AbstractPreferenceAssert { + protected AbstractTwoStatePreference(A actual, Class selfType) { + super(actual, selfType); + } + + public S hasSummaryOff(CharSequence summary) { + isNotNull(); + CharSequence actualSummary = actual.getSummaryOff(); + assertThat(actualSummary) // + .overridingErrorMessage("Expected off summary <%s> but was <%s>.", summary, + actualSummary) // + .isEqualTo(summary); + return myself; + } + + public S hasSummaryOff(int resId) { + isNotNull(); + return hasSummaryOff(actual.getContext().getString(resId)); + } + + public S hasSummaryOn(CharSequence summary) { + isNotNull(); + CharSequence actualSummary = actual.getSummaryOn(); + assertThat(actualSummary) // + .overridingErrorMessage("Expected on summary <%s> but was <%s>.", summary, + actualSummary) // + .isEqualTo(summary); + return myself; + } + + public S hasSummaryOn(int resId) { + isNotNull(); + return hasSummaryOn(actual.getContext().getString(resId)); + } + + public S isChecked() { + isNotNull(); + assertThat(actual.isChecked()) // + .overridingErrorMessage("Expected to be checked but was not.") // + .isTrue(); + return myself; + } + + public S isNotChecked() { + isNotNull(); + assertThat(actual.isChecked()) // + .overridingErrorMessage("Expected to not be checked but was.") // + .isFalse(); + return myself; + } +} diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/CheckBoxPreferenceAssert.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/CheckBoxPreferenceAssert.java new file mode 100644 index 0000000..89a69b7 --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/CheckBoxPreferenceAssert.java @@ -0,0 +1,14 @@ +// Copyright 2016 Square, Inc. +package org.assertj.android.preference.v7.api.preference; + +import android.support.v7.preference.CheckBoxPreference; + +/** Assertions for {@link CheckBoxPreference} instances. */ +public class CheckBoxPreferenceAssert + extends AbstractTwoStatePreference +{ + /* Since TwoStatePreference is ICS+ this class allows CheckBoxPreference asserts on pre-ICS. */ + public CheckBoxPreferenceAssert(CheckBoxPreference actual) { + super(actual, CheckBoxPreferenceAssert.class); + } +} diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/DialogPreferenceAssert.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/DialogPreferenceAssert.java new file mode 100644 index 0000000..d4155a4 --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/DialogPreferenceAssert.java @@ -0,0 +1,16 @@ +// Copyright 2016 Square, Inc. +package org.assertj.android.preference.v7.api.preference; + +import android.support.v7.preference.DialogPreference; + +/** + * Assertions for {@link DialogPreference} instances. + *

+ * This class is final. To extend use {@link AbstractDialogPreferenceAssert}. + */ +public final class DialogPreferenceAssert + extends AbstractDialogPreferenceAssert { + public DialogPreferenceAssert(DialogPreference actual) { + super(actual, DialogPreferenceAssert.class); + } +} diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/EditTextPreferenceAssert.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/EditTextPreferenceAssert.java new file mode 100644 index 0000000..43310b4 --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/EditTextPreferenceAssert.java @@ -0,0 +1,22 @@ +// Copyright 2016 Square, Inc. +package org.assertj.android.preference.v7.api.preference; + +import android.support.v7.preference.EditTextPreference; +import static org.assertj.core.api.Assertions.assertThat; + +/** Assertions for {@link EditTextPreference} instances. */ +public class EditTextPreferenceAssert + extends AbstractDialogPreferenceAssert { + public EditTextPreferenceAssert(EditTextPreference actual) { + super(actual, EditTextPreferenceAssert.class); + } + + public EditTextPreferenceAssert hasText(String text) { + isNotNull(); + String actualText = actual.getText(); + assertThat(actualText) // + .overridingErrorMessage("Expected text <%s> but was <%s>.", text, actualText) // + .isEqualTo(text); + return this; + } +} diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/ListPreferenceAssert.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/ListPreferenceAssert.java new file mode 100644 index 0000000..dd7d7e7 --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/ListPreferenceAssert.java @@ -0,0 +1,54 @@ +// Copyright 2016 Square, Inc. +package org.assertj.android.preference.v7.api.preference; + +import android.support.v7.preference.ListPreference; +import static org.assertj.core.api.Assertions.assertThat; + +/** Assertions for {@link ListPreference} instances. */ +public class ListPreferenceAssert + extends AbstractDialogPreferenceAssert { + public ListPreferenceAssert(ListPreference actual) { + super(actual, ListPreferenceAssert.class); + } + + public ListPreferenceAssert hasEntries(CharSequence... entries) { + isNotNull(); + CharSequence[] actualEntries = actual.getEntries(); + assertThat(actualEntries) // + .overridingErrorMessage("Expected entries <%s> but was <%s>.", entries, actualEntries) // + .isEqualTo(entries); + return this; + } + + public ListPreferenceAssert hasEntry(CharSequence entry) { + isNotNull(); + CharSequence actualEntry = actual.getEntry(); + assertThat(actualEntry) // + .overridingErrorMessage("Expected entry <%s> but was <%s>.", entry, actualEntry) // + .isEqualTo(entry); + return this; + } + + public ListPreferenceAssert hasEntry(int resId) { + isNotNull(); + return hasEntry(actual.getContext().getString(resId)); + } + + public ListPreferenceAssert hasEntryValues(CharSequence... values) { + isNotNull(); + CharSequence[] actualValues = actual.getEntryValues(); + assertThat(actualValues) // + .overridingErrorMessage("Expected entry values <%s> but was <%s>.", values, actualValues) // + .isEqualTo(values); + return this; + } + + public ListPreferenceAssert hasValue(String value) { + isNotNull(); + String actualValue = actual.getValue(); + assertThat(actualValue) // + .overridingErrorMessage("Expected value <%s> but was <%s>.", value, actualValue) // + .isEqualTo(value); + return this; + } +} diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/PreferenceAssert.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/PreferenceAssert.java new file mode 100644 index 0000000..bff5cf7 --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/PreferenceAssert.java @@ -0,0 +1,15 @@ +// Copyright 2016 Square, Inc. +package org.assertj.android.preference.v7.api.preference; + +import android.support.v7.preference.Preference; + +/** + * Assertions for {@link Preference} instances. + *

+ * This class is final. To extend use {@link AbstractPreferenceAssert}. + */ +public final class PreferenceAssert extends AbstractPreferenceAssert { + public PreferenceAssert(Preference actual) { + super(actual, PreferenceAssert.class); + } +} diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/PreferenceGroupAssert.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/PreferenceGroupAssert.java new file mode 100644 index 0000000..90bcc5c --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/PreferenceGroupAssert.java @@ -0,0 +1,16 @@ +// Copyright 2016 Square, Inc. +package org.assertj.android.preference.v7.api.preference; + +import android.support.v7.preference.PreferenceGroup; + +/** + * Assertions for {@link PreferenceGroup} instances. + *

+ * This class is final. To extend use {@link AbstractPreferenceGroupAssert}. + */ +public final class PreferenceGroupAssert + extends AbstractPreferenceGroupAssert { + public PreferenceGroupAssert(PreferenceGroup actual) { + super(actual, PreferenceGroupAssert.class); + } +} diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/SwitchPreferenceCompatAssert.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/SwitchPreferenceCompatAssert.java new file mode 100644 index 0000000..e8d968d --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/SwitchPreferenceCompatAssert.java @@ -0,0 +1,44 @@ +// Copyright 2016 Square, Inc. +package org.assertj.android.preference.v7.api.preference; + +import android.annotation.TargetApi; +import android.support.v7.preference.SwitchPreferenceCompat; +import static android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH; +import static org.assertj.core.api.Assertions.assertThat; + +/** Assertions for {@link SwitchPreferenceCompat} instances. */ +@TargetApi(ICE_CREAM_SANDWICH) +public class SwitchPreferenceCompatAssert + extends AbstractTwoStatePreference { + public SwitchPreferenceCompatAssert(SwitchPreferenceCompat actual) { + super(actual, SwitchPreferenceCompatAssert.class); + } + + public SwitchPreferenceCompatAssert hasSwitchTextOff(CharSequence text) { + isNotNull(); + CharSequence actualText = actual.getSwitchTextOff(); + assertThat(actualText) // + .overridingErrorMessage("Expected switch off text <%s> but was <%s>.", text, actualText) // + .isEqualTo(text); + return this; + } + + public SwitchPreferenceCompatAssert hasSwitchTextOff(int resId) { + isNotNull(); + return hasSwitchTextOff(actual.getContext().getString(resId)); + } + + public SwitchPreferenceCompatAssert hasSwitchTextOn(CharSequence text) { + isNotNull(); + CharSequence actualText = actual.getSwitchTextOn(); + assertThat(actualText) // + .overridingErrorMessage("Expected switch on text <%s> but was <%s>.", text, actualText) // + .isEqualTo(text); + return this; + } + + public SwitchPreferenceCompatAssert hasSwitchTextOn(int resId) { + isNotNull(); + return hasSwitchTextOn(actual.getContext().getString(resId)); + } +} diff --git a/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/TwoStatePreferenceAssert.java b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/TwoStatePreferenceAssert.java new file mode 100644 index 0000000..1bba50e --- /dev/null +++ b/assertj-android-preference-v7/src/main/java/org/assertj/android/preference/v7/api/preference/TwoStatePreferenceAssert.java @@ -0,0 +1,17 @@ +// Copyright 2016 Square, Inc. +package org.assertj.android.preference.v7.api.preference; + +import android.support.v7.preference.TwoStatePreference; + +/** + * Assertions for {@link TwoStatePreference} instances. + *

+ * This class is final. To extend use {@link AbstractTwoStatePreference}. + */ +public final class TwoStatePreferenceAssert + extends AbstractTwoStatePreference +{ + public TwoStatePreferenceAssert(TwoStatePreference actual) { + super(actual, TwoStatePreferenceAssert.class); + } +} diff --git a/assertj-android/src/main/java/org/assertj/android/api/preference/AbstractDialogPreferenceAssert.java b/assertj-android/src/main/java/org/assertj/android/api/preference/AbstractDialogPreferenceAssert.java index ca0df39..4f93e00 100644 --- a/assertj-android/src/main/java/org/assertj/android/api/preference/AbstractDialogPreferenceAssert.java +++ b/assertj-android/src/main/java/org/assertj/android/api/preference/AbstractDialogPreferenceAssert.java @@ -5,7 +5,6 @@ import android.app.Dialog; import android.graphics.drawable.Drawable; import android.preference.DialogPreference; - import static android.os.Build.VERSION_CODES.HONEYCOMB; import static org.assertj.core.api.Assertions.assertThat; diff --git a/build.gradle b/build.gradle index 2a37bcf..e4d2a4e 100644 --- a/build.gradle +++ b/build.gradle @@ -31,6 +31,7 @@ ext { supportMediaRouter = 'com.android.support:mediarouter-v7:23.1.1' supportPalette = 'com.android.support:palette-v7:23.1.1' supportRecyclerView = 'com.android.support:recyclerview-v7:23.1.1' + supportPreference = 'com.android.support:preference-v7:23.1.1' playServices = 'com.google.android.gms:play-services:7.5.0' diff --git a/settings.gradle b/settings.gradle index 286de0f..febd69c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -10,3 +10,4 @@ include ':assertj-android-palette-v7' include ':assertj-android-play-services' include ':assertj-android-recyclerview-v7' include ':assertj-android-support-v4' +include ':assertj-android-preference-v7' From f811900f64e6aa5dfa9f2b95d21c8ac6254bfa2f Mon Sep 17 00:00:00 2001 From: Giorgos Kylafas Date: Thu, 24 Mar 2016 11:55:50 +0200 Subject: [PATCH 2/2] readme.rd: added instructions for preference-v7 module. --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index dc17012..b216737 100644 --- a/README.md +++ b/README.md @@ -98,6 +98,7 @@ Modules are also provided for the add-on Android libraries. Add the dependency * cardview-v7: `import static org.assertj.android.cardview.v7.api.Assertions.assertThat;` * recyclerview-v7: `import static org.assertj.android.recyclerview.v7.api.Assertions.assertThat;` * palette-v7: `import static org.assertj.android.palette.v7.api.Assertions.assertThat;` + * preference-v7: `import static org.assertj.android.preference.v7.api.Assertions.assertThat;` @@ -196,6 +197,11 @@ palette-v7 module: androidTestCompile 'com.squareup.assertj:assertj-android-palette-v7:1.1.1' ``` +preference-v7 module: +```groovy +androidTestCompile 'com.squareup.assertj:assertj-android-preference-v7:1.1.1' +``` + Snapshots of the development version are available in [Sonatype's `snapshots` repository][snap].