diff options
author | Chris Warrington <cmw@google.com> | 2016-10-18 12:29:21 +0100 |
---|---|---|
committer | Chris Warrington <cmw@google.com> | 2016-10-18 12:34:18 +0100 |
commit | e3780081075c01aa1dff6d1f373cb43192b33e68 (patch) | |
tree | fb734615933a39f3d009210dc0d1457160479b35 /WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCFactoryTest.java | |
parent | 7e05eb7e57827eddc885570bc00aed8a50320dbf (diff) | |
parent | 025b8b226c8d8edba2b309ca878572f40512eca7 (diff) | |
download | gradle-perf-android-medium-e3780081075c01aa1dff6d1f373cb43192b33e68.tar.gz |
Merge remote-tracking branch 'origin/upstream-master' into masterHEADstudio-3.4.0studio-3.2.1studio-3.1.2studio-3.0studio-2.3gradle_3.4.0gradle_3.1.2gradle_3.0.0gradle_2.3.0studio-master-devmirror-goog-studio-master-devmastermain
Change-Id: I63f5e16d09297c48432192761b840310935eb903
Diffstat (limited to 'WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCFactoryTest.java')
-rw-r--r-- | WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCFactoryTest.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCFactoryTest.java b/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCFactoryTest.java new file mode 100644 index 000000000..60852f11c --- /dev/null +++ b/WordPress/src/androidTest/java/org/wordpress/android/mocks/XMLRPCFactoryTest.java @@ -0,0 +1,75 @@ +package org.wordpress.android.mocks; + +import android.content.Context; + +import org.wordpress.android.util.AppLog; +import org.wordpress.android.util.AppLog.T; +import org.xmlrpc.android.XMLRPCClientInterface; +import org.xmlrpc.android.XMLRPCFactoryAbstract; + +import java.net.URI; +import java.util.HashSet; +import java.util.Set; + +public class XMLRPCFactoryTest implements XMLRPCFactoryAbstract { + public static String sPrefix = "default"; + public static Context sContext; + public static Mode sMode = Mode.EMPTY; + public static Set<XMLRPCClientCustomizableMockAbstract> sInstances = + new HashSet<XMLRPCClientCustomizableMockAbstract>(); + + public static void setContextAllInstances(Context context) { + sContext = context; + if (sMode != Mode.CUSTOMIZABLE_JSON && sMode != Mode.CUSTOMIZABLE_XML) { + AppLog.e(T.TESTS, "You tried to change context on a non-customizable XMLRPCClient mock"); + } + for (XMLRPCClientCustomizableMockAbstract client : sInstances) { + client.setContext(context); + } + } + + public static void setPrefixAllInstances(String prefix) { + sPrefix = prefix; + if (sMode != Mode.CUSTOMIZABLE_JSON && sMode != Mode.CUSTOMIZABLE_XML) { + AppLog.e(T.TESTS, "You tried to change prefix on a non-customizable XMLRPCClient mock"); + } + for (XMLRPCClientCustomizableMockAbstract client : sInstances) { + client.setPrefix(prefix); + } + } + + public XMLRPCClientInterface make(URI uri, String httpUser, String httpPassword) { + switch (sMode) { + case CUSTOMIZABLE_JSON: + XMLRPCClientCustomizableJSONMock clientJSONMock = new XMLRPCClientCustomizableJSONMock(uri, httpUser, + httpPassword); + if (sContext != null) { + clientJSONMock.setContextAndPrefix(sContext, sPrefix); + } else { + AppLog.e(T.TESTS, "You have to set XMLRPCFactoryTest.sContext field before running tests"); + throw new IllegalStateException(); + } + AppLog.v(T.TESTS, "make: XMLRPCClientCustomizableJSONMock"); + sInstances.add(clientJSONMock); + return clientJSONMock; + case CUSTOMIZABLE_XML: + XMLRPCClientCustomizableXMLMock clientXMLMock = new XMLRPCClientCustomizableXMLMock(uri, httpUser, + httpPassword); + if (sContext != null) { + clientXMLMock.setContextAndPrefix(sContext, sPrefix); + } else { + AppLog.e(T.TESTS, "You have to set XMLRPCFactoryTest.sContext field before running tests"); + throw new IllegalStateException(); + } + AppLog.v(T.TESTS, "make: XMLRPCClientCustomizableXMLMock"); + sInstances.add(clientXMLMock); + return clientXMLMock; + case EMPTY: + default: + AppLog.v(T.TESTS, "make: XMLRPCClientEmptyMock"); + return new XMLRPCClientEmptyMock(uri, httpUser, httpPassword); + } + } + + public enum Mode {EMPTY, CUSTOMIZABLE_JSON, CUSTOMIZABLE_XML} +} |