From a25a78d975827b98b8e9e2c532cf4ed6e6bfc868 Mon Sep 17 00:00:00 2001 From: Swarna Saraf Date: Thu, 2 Feb 2023 18:36:06 -0800 Subject: [PATCH] [v2.0.0] staging -> main (#52) * Optimize extension project setup (#1) * Optimize extension project setup * fixed config.yml * incorporated feedback * Implement public classes & utils for Optimize extension (#2) * Implement public classes & utils for Optimize extension * Implement public API methods + tests * disable functional tests from running on ci until ready. * Incorporated feedback. * Process Optimize request event for propositions update. (#3) * Process optimize request event for propositions update. * Minor test fixes * Incorporated feedback. * Process Edge response events (#4) * Process Edge response events * Incorporated feedback * Process Optimize get propositions request. (#5) * Process Optimize get propositions request. * minor fix, removing non empty content restriction * Feedback updates. * Process optimize/ generic identity request reset events (#6) * Process Optimize get propositions request. * minor fix, removing non empty content restriction * Process optimize/ generic identity request reset events. * minor fix * Fixed issues to properly read/write DecisionScope from/to event data. (#9) * Setup for functional tests. * Added support for tracking proposition interactions (#7) * Implemented Optimize tracking APIs * Incorporated feedback * Added Optimize functional tests. * Added functional test to test valid proposition in edge response. * Added more functional tests. Fixed an issue in Optimize extension's handleGetProposition() by adding a return statement after error handling. * Added more functional tests. * Using the base AdobeCallback in public APIs (#11) * Using the base AdobeCallback in public APIs * code cleanup and minor fixes * Incorporated feedback * Code review feedback * Corrected the Functional test number. * Fixed code analyzer warnings (#12) * Fixed code analyzer warnings * Fixed a failing test case. * Code review feedback * Removed added return statements that are already pushed to dev through other PR * Added return statements after dispatching error. * Code review feedback * Added test app for Optimize mobile extension (#8) * Added Test app for Optmize Android. * Updated sample app with calls to Optimize API's * Added Assurance connection button and few changes in Offer Screen UI. * Fixed the Target mbox offers fetching issue. * Set softinputmode value adjustpan for the activity. * Added display and click tracking for offers. * Code review feedback * Reverted the package name in Optimize module to com.adobe.marketing.mobile.optimize * Merged DecisionScopeTest with remote * Fix failing unit tests. * Fix failing unit test * Code review update: Use Lambda for click tracking instead of passing ViewModel downstream to Composable. * Code review feedback. Moved the display tracking to OffersScreen. * Updated the logic for Display tracking * Added the keys for LazyColumnItems for handling display tracking. * Changed the Proposition constructor from protected to public. * Changes the access specifier of fromEventData to public. Made the constructor non public again. * Added setProposition function in Offer's Builder. * Reverting the setProposition functions in Offer Builder class. * Added support for Target response tokens (#14) * Added support for Target response tokens * minor javadoc fix * Handle Target experiences with default content & other fixes (#15) * Handle Target experiences with default content & other fixes * code cleanup + more tests * Incorporated feedback * Ignore measurement payload item in Target/Edge personalization response (#16) * Ignore measurement payload item in Target/Edge personalization response * minor test cleanup * Optimize extension should support scopes with Base64 encoded name (#17) * Preparation for beta release (#18) * dev to staging (for Messaging) (#21) * Added support for Offer score (#19) * Fixing Android build - updated gradle version, disabled app (#20) * dev -> staging (v1.0.0) (#26) * Added support for Offer score (#19) * Fixing Android build - updated gradle version, disabled app (#20) * Testapp fixes and dependency updates (#22) * Testapp fixes and dependency updates * Code cleanup and build script updates * More testapp updates * Added codecov.yml * Fixed Jacoco report gradle task for unit tests (#25) * Fixed Jacoco report gradle task for unit tests * Fixed gradle plugin & build tools version * Fixed an issue with DecisionScope encoding (#28) * Release prep v1.0.1 (#29) * Fixed an issue with DecisionScope encoding * Release prep v1.0.1 * Build fixes * dev -> staging (v1.0.1) (#30) * Fixed an issue with DecisionScope encoding (#28) * Release prep v1.0.1 (#29) * Fixed an issue with DecisionScope encoding * Release prep v1.0.1 * Build fixes * Core 2.0 changes * remove static imports * unit test changes * add jitpack dependency * app level gradle changes * fix javadoc error temporarily * disable javadocs creation * disable javadocs creation * fix functional tests * javadoc fix * disable javadoc again * javadoc fix 1 * enable javadoc ci step * update circle ci machine * remove docker version for circleci * javadoc java version * javadoc no fail on error * unit test path fix * code review comments * code review part 2 * datareader list of typed map changes * reset java version for javadoc * replace jitpack with core maven snapshot dependency * refactor configuration awareness in functional tests * update github actions java version * Fix ci for javadoc generation (#46) * Updated build scripts * Updated build scripts (#47) * Release readiness for Optimize 2.0.0 (#48) * Release readiness for Optimize 2.0.0 * fix links in docs * code review comments * add warning message for reset identities * Gradle dependency updates + misc fixes * Added NonNull annotation * Gradle dependency updates + docs fixes (#49) * Updated build scripts * Gradle dependency updates + misc fixes * Added NonNull annotation * Updated license info for maven artifact metadata * Updated license info for Maven artifact metadata (#51) * Updated build scripts * Gradle dependency updates + misc fixes * Added NonNull annotation * Updated license info for maven artifact metadata * [v2.0.0] dev -> staging (#50) * Fix ci for javadoc generation (#46) * Updated build scripts (#47) * Release readiness for Optimize 2.0.0 (#48) * Release readiness for Optimize 2.0.0 * fix links in docs * code review comments * add warning message for reset identities * Gradle dependency updates + docs fixes (#49) * Updated build scripts * Gradle dependency updates + misc fixes * Added NonNull annotation * Updated license info for Maven artifact metadata (#51) * Updated build scripts * Gradle dependency updates + misc fixes * Added NonNull annotation * Updated license info for maven artifact metadata --------- Co-authored-by: Spoorthi Pujari <63024083+spoorthipujariadobe@users.noreply.github.com> * Optimize annotation updates + license header fixes. * removed unused import * removed unnecessary tests * Fixed AdobeError in Optimize reponse event data. * OptimizeUtils.convertToAdobeError unit tests * fix checkstyle unused import * staging -> main (v1.0.1) (#31) (#58) * Optimize extension project setup (#1) * Optimize extension project setup * fixed config.yml * incorporated feedback * Implement public classes & utils for Optimize extension (#2) * Implement public classes & utils for Optimize extension * Implement public API methods + tests * disable functional tests from running on ci until ready. * Incorporated feedback. * Process Optimize request event for propositions update. (#3) * Process optimize request event for propositions update. * Minor test fixes * Incorporated feedback. * Process Edge response events (#4) * Process Edge response events * Incorporated feedback * Process Optimize get propositions request. (#5) * Process Optimize get propositions request. * minor fix, removing non empty content restriction * Feedback updates. * Process optimize/ generic identity request reset events (#6) * Process Optimize get propositions request. * minor fix, removing non empty content restriction * Process optimize/ generic identity request reset events. * minor fix * Fixed issues to properly read/write DecisionScope from/to event data. (#9) * Setup for functional tests. * Added support for tracking proposition interactions (#7) * Implemented Optimize tracking APIs * Incorporated feedback * Added Optimize functional tests. * Added functional test to test valid proposition in edge response. * Added more functional tests. Fixed an issue in Optimize extension's handleGetProposition() by adding a return statement after error handling. * Added more functional tests. * Using the base AdobeCallback in public APIs (#11) * Using the base AdobeCallback in public APIs * code cleanup and minor fixes * Incorporated feedback * Code review feedback * Corrected the Functional test number. * Fixed code analyzer warnings (#12) * Fixed code analyzer warnings * Fixed a failing test case. * Code review feedback * Removed added return statements that are already pushed to dev through other PR * Added return statements after dispatching error. * Code review feedback * Added test app for Optimize mobile extension (#8) * Added Test app for Optmize Android. * Updated sample app with calls to Optimize API's * Added Assurance connection button and few changes in Offer Screen UI. * Fixed the Target mbox offers fetching issue. * Set softinputmode value adjustpan for the activity. * Added display and click tracking for offers. * Code review feedback * Reverted the package name in Optimize module to com.adobe.marketing.mobile.optimize * Merged DecisionScopeTest with remote * Fix failing unit tests. * Fix failing unit test * Code review update: Use Lambda for click tracking instead of passing ViewModel downstream to Composable. * Code review feedback. Moved the display tracking to OffersScreen. * Updated the logic for Display tracking * Added the keys for LazyColumnItems for handling display tracking. * Changed the Proposition constructor from protected to public. * Changes the access specifier of fromEventData to public. Made the constructor non public again. * Added setProposition function in Offer's Builder. * Reverting the setProposition functions in Offer Builder class. * Added support for Target response tokens (#14) * Added support for Target response tokens * minor javadoc fix * Handle Target experiences with default content & other fixes (#15) * Handle Target experiences with default content & other fixes * code cleanup + more tests * Incorporated feedback * Ignore measurement payload item in Target/Edge personalization response (#16) * Ignore measurement payload item in Target/Edge personalization response * minor test cleanup * Optimize extension should support scopes with Base64 encoded name (#17) * Preparation for beta release (#18) * dev to staging (for Messaging) (#21) * Added support for Offer score (#19) * Fixing Android build - updated gradle version, disabled app (#20) * dev -> staging (v1.0.0) (#26) * Added support for Offer score (#19) * Fixing Android build - updated gradle version, disabled app (#20) * Testapp fixes and dependency updates (#22) * Testapp fixes and dependency updates * Code cleanup and build script updates * More testapp updates * Added codecov.yml * Fixed Jacoco report gradle task for unit tests (#25) * Fixed Jacoco report gradle task for unit tests * Fixed gradle plugin & build tools version * dev -> staging (v1.0.1) (#30) * Fixed an issue with DecisionScope encoding (#28) * Release prep v1.0.1 (#29) * Fixed an issue with DecisionScope encoding * Release prep v1.0.1 * Build fixes Co-authored-by: Swarna Saraf Co-authored-by: shtomar-adb Co-authored-by: Shivam Tomar <12368667+shtomar-adb@users.noreply.github.com> --------- Co-authored-by: shtomar-adb Co-authored-by: Shivam Tomar <12368667+shtomar-adb@users.noreply.github.com> Co-authored-by: spoorthipujariadobe Co-authored-by: Spoorthi Pujari <63024083+spoorthipujariadobe@users.noreply.github.com> Co-authored-by: Pravin Prakash Kumar --- .circleci/config.yml | 14 +- .github/workflows/maven-release.yml | 2 +- .github/workflows/maven-snapshot.yml | 2 +- Documentation/README.md | 5 + Documentation/api-reference.md | 534 ++++ ...ecisioning-datastream-configuration-at.png | Bin 0 -> 205143 bytes ...ecisioning-datastream-configuration-od.png | Bin 0 -> 215540 bytes ...jo-decisioning-extension-configuration.png | Bin 0 -> 235682 bytes .../ajo-decisioning-lifecycle-rule-action.png | Bin 0 -> 454569 bytes .../ajo-decisioning-lifecycle-rule-event.png | Bin 0 -> 167476 bytes .../assets/ajo-decisioning-lifecycle-rule.png | Bin 0 -> 215874 bytes .../assets/ajo-decisioning-target-tpid.png | Bin 0 -> 228456 bytes Documentation/getting-started.md | 404 +++ Makefile | 5 +- README.md | 18 +- code/app/build.gradle | 44 +- .../marketing/optimizeapp/MainApplication.kt | 14 +- code/build.gradle | 18 +- code/checkstyle.gradle | 28 + code/checkstyle.xml | 25 + code/gradle.properties | 12 +- code/gradle/wrapper/gradle-wrapper.properties | 2 +- code/optimize/build.gradle | 48 +- .../marketing/mobile/MonitorExtension.java | 126 +- .../adobe/marketing/mobile/TestHelper.java | 59 +- .../optimize/OptimizeFunctionalTests.java | 277 +-- .../optimize/OptimizeTestConstants.java | 4 +- .../mobile/optimize/DecisionScope.java | 34 +- .../ListenerEdgeErrorResponseContent.java | 71 - .../optimize/ListenerEdgeResponseContent.java | 70 - .../ListenerGenericIdentityRequestReset.java | 70 - .../ListenerOptimizeRequestContent.java | 89 - .../ListenerOptimizeRequestReset.java | 70 - .../marketing/mobile/optimize/Offer.java | 56 +- .../marketing/mobile/optimize/Optimize.java | 155 +- .../mobile/optimize/OptimizeConstants.java | 6 +- .../mobile/optimize/OptimizeExtension.java | 641 +++-- .../mobile/optimize/OptimizeUtils.java | 38 +- .../mobile/optimize/Proposition.java | 38 +- .../mobile/optimize/DecisionScopeTests.java | 289 ++- ...ListenerEdgeErrorResponseContentTests.java | 134 - .../ListenerEdgeResponseContentTests.java | 134 - ...tenerGenericIdentityRequestResetTests.java | 127 - .../ListenerOptimizeRequestContentTests.java | 224 -- .../ListenerOptimizeRequestResetTests.java | 127 - .../marketing/mobile/optimize/OfferTests.java | 881 ++++--- .../mobile/optimize/OfferTypeTests.java | 39 +- .../optimize/OptimizeExtensionTests.java | 2193 +++++++++-------- .../mobile/optimize/OptimizeTests.java | 931 +++---- .../mobile/optimize/OptimizeUtilsTest.java | 106 +- .../mobile/optimize/PropositionTests.java | 112 +- 51 files changed, 4142 insertions(+), 4134 deletions(-) create mode 100644 Documentation/README.md create mode 100644 Documentation/api-reference.md create mode 100644 Documentation/assets/ajo-decisioning-datastream-configuration-at.png create mode 100644 Documentation/assets/ajo-decisioning-datastream-configuration-od.png create mode 100644 Documentation/assets/ajo-decisioning-extension-configuration.png create mode 100644 Documentation/assets/ajo-decisioning-lifecycle-rule-action.png create mode 100644 Documentation/assets/ajo-decisioning-lifecycle-rule-event.png create mode 100644 Documentation/assets/ajo-decisioning-lifecycle-rule.png create mode 100644 Documentation/assets/ajo-decisioning-target-tpid.png create mode 100644 Documentation/getting-started.md create mode 100644 code/checkstyle.gradle create mode 100644 code/checkstyle.xml delete mode 100644 code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerEdgeErrorResponseContent.java delete mode 100644 code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerEdgeResponseContent.java delete mode 100644 code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerGenericIdentityRequestReset.java delete mode 100644 code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestContent.java delete mode 100644 code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestReset.java delete mode 100644 code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerEdgeErrorResponseContentTests.java delete mode 100644 code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerEdgeResponseContentTests.java delete mode 100644 code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerGenericIdentityRequestResetTests.java delete mode 100644 code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestContentTests.java delete mode 100644 code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestResetTests.java diff --git a/.circleci/config.yml b/.circleci/config.yml index 6f96ae33..5434924c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,6 +1,6 @@ version: 2.1 orbs: - android: circleci/android@1.0 + android: circleci/android@2.1.2 # Workflows orchestrate a set of jobs to be run; workflows: @@ -12,13 +12,16 @@ workflows: jobs: build-and-unit-test: + executor: + name: android/android-machine + resource-class: large + tag: 2021.10.1 working_directory: ~/code - docker: - - image: circleci/android:api-29-node - environment: - JVM_OPTS: -Xmx3200m steps: - checkout + - run: + name: Checkstyle + command: make checkstyle - run: name: Javadoc command: make ci-javadoc @@ -56,6 +59,7 @@ jobs: executor: name: android/android-machine resource-class: large + tag: 2021.10.1 steps: - checkout - android/start-emulator-and-run-tests: diff --git a/.github/workflows/maven-release.yml b/.github/workflows/maven-release.yml index 56353dea..78a973d3 100644 --- a/.github/workflows/maven-release.yml +++ b/.github/workflows/maven-release.yml @@ -12,7 +12,7 @@ jobs: - name: Set up Java uses: actions/setup-java@v1 with: - java-version: 1.8 + java-version: 11 - name: Cache Gradle packages uses: actions/cache@v2 with: diff --git a/.github/workflows/maven-snapshot.yml b/.github/workflows/maven-snapshot.yml index 92330bb3..84414a19 100644 --- a/.github/workflows/maven-snapshot.yml +++ b/.github/workflows/maven-snapshot.yml @@ -12,7 +12,7 @@ jobs: - name: Set up Java uses: actions/setup-java@v1 with: - java-version: 1.8 + java-version: 11 - name: Cache Gradle packages uses: actions/cache@v2 with: diff --git a/Documentation/README.md b/Documentation/README.md new file mode 100644 index 00000000..eb4aad88 --- /dev/null +++ b/Documentation/README.md @@ -0,0 +1,5 @@ +# Adobe Journey Optimizer - Decisioning extension documentation + +## Contents +- [Getting started](getting-started.md) +- [API reference](api-reference.md) diff --git a/Documentation/api-reference.md b/Documentation/api-reference.md new file mode 100644 index 00000000..b955489e --- /dev/null +++ b/Documentation/api-reference.md @@ -0,0 +1,534 @@ +# Adobe Journey Optimizer - Decisioning API reference + +## Prerequisites + +Refer to the [Getting Started Guide](getting-started.md). + +## API reference + +- [clearPropositions](#clearPropositions) +- [extensionVersion](#extensionVersion) +- [getPropositions](#getPropositions) +- [onPropositionsUpdate](#onPropositionsUpdate) +- [registerExtension](#registerExtension) +- [resetIdentities](#resetIdentities) +- [updatePropositions](#updatePropositions) + +## Public classes + +- [DecisionScope](#DecisionScope) +- [Proposition](#Proposition) +- [Offer](#Offer) +- [OfferType](#OfferType) + +## API reference + +## clearPropositions + +This API clears out the client-side in-memory propositions cache. + +### Java + +#### Syntax + +```java +public static void clearCachedPropositions() +``` + +#### Example + +```java +Optimize.clearCachedPropositions(); +``` + +## extensionVersion + +The `extensionVersion()` method (on Android) or the `extensionVersion` property (on iOS) returns the version information for currently installed AEPOptimize extension. + +### Java + +#### Syntax + +```java +public static String extensionVersion() +``` + +#### Example + +```java +Optimize.extensionVersion(); +``` + +## getPropositions + +This API retrieves the previously fetched propositions, for the provided decision scopes, from the in-memory extension propositions cache. The completion callback is invoked with the decision propositions corresponding to the given decision scopes. If a certain decision scope has not already been fetched prior to this API call, it will not be contained in the returned propositions. + +### Java + +#### Syntax + +```java +public static void getPropositions(final List decisionScopes, final AdobeCallback> callback) +``` + +* _decisionScopes_ is a list of decision scopes for which propositions are requested. +* _callback_ `call` method is invoked with propositions map of type `Map`. If the callback is an instance of [AdobeCallbackWithError](https://developer.adobe.com/client-sdks/documentation/mobile-core/api-reference/#adobecallbackwitherror), and if the operation times out or an error occurs in retrieving propositions, the `fail` method is invoked with the appropriate [AdobeError](https://developer.adobe.com/client-sdks/documentation/mobile-core/api-reference/#adobeerror). + +#### Example + +```java +final DecisionScope decisionScope1 = DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111", 2); +final DecisionScope decisionScope2 = new DecisionScope("myScope"); + +final List decisionScopes = new ArrayList<>(); +decisionScopes.add(decisionScope1); +decisionScopes.add(decisionScope2); + +Optimize.getPropositions(scopes, new AdobeCallbackWithError>() { + @Override + public void fail(final AdobeError adobeError) { + // handle error + } + + @Override + public void call(Map propositionsMap) { + if (propositionsMap != null && !propositionsMap.isEmpty()) { + // get the propositions for the given decision scopes + if (propositionsMap.contains(decisionScope1)) { + final Proposition proposition1 = propsMap.get(decisionScope1) + // read proposition1 offers + } + if (propositionsMap.contains(decisionScope2)) { + final Proposition proposition2 = propsMap.get(decisionScope2) + // read proposition2 offers + } + } + } +}); +``` + +## onPropositionsUpdate + +This API registers a permanent callback which is invoked whenever the Edge extension dispatches a response Event received from the Experience Edge Network upon a personalization query. The personalization query requests can be triggered by the `updatePropositions` API, Edge extension `sendEvent` API or launch consequence rules. + +### Java + +#### Syntax + +```java +public static void onPropositionsUpdate(final AdobeCallback> callback) +``` + +* _callback_ `call` method is invoked with propositions map of type `Map`. If the callback is an instance of `AdobeCallbackWithError`, and if the operation times out or an error occurs in retrieving propositions, the `fail` method is invoked with the appropriate `AdobeError`. + +#### Example + +```java +Optimize.onPropositionsUpdate(new AdobeCallbackWithError>() { + @Override + public void fail(final AdobeError adobeError) { + // handle error + } + + @Override + public void call(final Map propositionsMap) { + if (propositionsMap != null && !propositionsMap.isEmpty()) { + // handle propositions + } + } +}); +``` + +## registerExtension + +> **Warning** +> This API is deprecated from version 2.0.0. Please use Mobile Core's [registerExtensions](https://github.com/adobe/aepsdk-core-android/blob/main/Documentation/MobileCore/api-reference.md) API instead. + +This API can be invoked to register the Optimize extension with the Mobile Core. + +### Java + +#### Syntax + +```java +public static void registerExtension() +``` + +#### Example + +```java +Optimize.registerExtension(); +``` + +## resetIdentities + +This MobileCore API is a request to each extension to reset its identities. Every extension responds to this request in its own unique manner. For example, Optimize extension uses this API call to clear out its client-side in-memory propositions cache. For details, see [Mobile Core - API reference](https://github.com/adobe/aepsdk-core-android/blob/main/Documentation/MobileCore/api-reference.md). + +> **Warning +> This API call can lead to unintended SDK behavior, e.g. resetting of Experience Cloud ID (ECID). So it should be sparingly used and extreme caution should be followed! + +## updatePropositions + +This API dispatches an Event for the Edge network extension to fetch decision propositions, for the provided decision scopes array, from the decisioning services enabled in the Experience Edge. The returned decision propositions are cached in-memory in the Optimize SDK extension and can be retrieved using `getPropositions` API. + +### Java + +#### Syntax + +```java +public static void updatePropositions(final List decisionScopes, final Map xdm, final Map data) +``` + +* _decisionScopes_ is a list of decision scopes for which propositions need updating. +* _xdm_ is a map containing additional xdm formatted data to be attached to the Experience Event. +* _data_ is a map containing additional freeform data to be attached to the Experience Event. + +#### Example + +```java +final DecisionScope decisionScope1 = DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111", 2); +final DecisionScope decisionScope2 = new DecisionScope("myScope"); + +final List decisionScopes = new ArrayList<>(); +decisionScopes.add(decisionScope1); +decisionScopes.add(decisionScope2); + +Optimize.updatePropositions(decisionScopes, + new HashMap() { + { + put("xdmKey", "xdmValue"); + } + }, + new HashMap() { + { + put("dataKey", "dataValue"); + } + }); +``` + +## Public classes + +### DecisionScope + +This class represents the decision scope which is used to fetch the decision propositions from the Edge decisioning services. The encapsulated scope name can also represent the Base64-encoded JSON string created using the provided activityId, placementId, and itemCount. + +#### Java + +```java +/** + * {@code DecisionScope} class represents a scope used to fetch personalized offers from the Experience Edge network. + */ +public class DecisionScope { + + /** + * Constructor creates a {@code DecisionScope} using the provided {@code name}. + * + * @param name {@link String} containing scope name. + */ + public DecisionScope(final String name) {...} + + /** + * Constructor creates a {@code DecisionScope} using the provided {@code activityId} and {@code placementId}. + * + * This constructor assumes the item count for the given scope to be {@value #DEFAULT_ITEM_COUNT}. + * + * @param activityId {@link String} containing activity identifier for the given scope. + * @param placementId {@code String} containing placement identifier for the given scope. + */ + public DecisionScope(final String activityId, final String placementId) {...} + + /** + * Constructor creates a {@code DecisionScope} using the provided {@code activityId} and {@code placementId}. + * + * @param activityId {@link String} containing activity identifier for the given scope. + * @param placementId {@code String} containing placement identifier for the given scope. + * @param itemCount {@code String} containing number of items to be returned for the given scope. + */ + public DecisionScope(final String activityId, final String placementId, final int itemCount) {...} + + /** + * Gets the name for this scope. + * + * @return {@link String} containing the scope name. + */ + public String getName() {...} +} +``` + +### Proposition + +This class represents the decision propositions received from the decisioning services, upon a personalization query request to the Experience Edge network. + +#### Java + +```java +public class Proposition { + + /** + * Constructor creates a {@code Proposition} using the provided propostion {@code id}, {@code offers}, {@code scope} and {@code scopeDetails}. + * + * @param id {@link String} containing proposition identifier. + * @param offers {@code List} containing proposition items. + * @param scope {@code String} containing encoded scope. + * @param scopeDetails {@code Map} containing scope details. + */ + Proposition(final String id, final List offers, final String scope, final Map scopeDetails) {...} + + /** + * Gets the {@code Proposition} identifier. + * + * @return {@link String} containing the {@link Proposition} identifier. + */ + public String getId() {...} + + /** + * Gets the {@code Proposition} items. + * + * @return {@code List} containing the {@link Proposition} items. + */ + public List getOffers() {...} + + /** + * Gets the {@code Proposition} scope. + * + * @return {@link String} containing the encoded {@link Proposition} scope. + */ + public String getScope() {...} + + /** + * Gets the {@code Proposition} scope details. + * + * @return {@code Map} containing the {@link Proposition} scope details. + */ + public Map getScopeDetails() {...} + + /** + * Generates a map containing XDM formatted data for {@code Experience Event - Proposition Reference} field group from this {@code Proposition}. + * + * The returned XDM data does not contain {@code eventType} for the Experience Event. + * + * @return {@code Map} containing the XDM data for the proposition reference. + */ + public Map generateReferenceXdm() {...} +} +``` + +### Offer + +This class represents the proposition option received from the decisioning services, upon a personalization query to the Experience Edge network. + +#### Java + +```java +public class Offer { + + /** + * {@code Offer} Builder. + */ + public static class Builder { + + /** + * Builder constructor with required {@code Offer} attributes as parameters. + * + * It sets default values for remaining {@link Offer} attributes. + * + * @param id required {@link String} containing {@code Offer} identifier. + * @param type required {@link OfferType} indicating the {@code Offer} type. + * @param content required {@code String} containing the {@code Offer} content. + */ + public Builder(final String id, final OfferType type, final String content) {...} + + /** + * Sets the etag for this {@code Offer}. + * + * @param etag {@link String} containing {@link Offer} etag. + * @return this Offer {@link Builder} + * @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}. + */ + public Builder setEtag(final String etag) {...} + + /** + * Sets the score for this {@code Offer}. + * + * @param score {@code int} containing {@link Offer} score. + * @return this Offer {@link Builder} + * @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}. + */ + public Builder setScore(final int score) {...} + + /** + * Sets the schema for this {@code Offer}. + * + * @param schema {@link String} containing {@link Offer} schema. + * @return this Offer {@link Builder} + * @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}. + */ + public Builder setSchema(final String schema) {...} + + /** + * Sets the metadata for this {@code Offer}. + * + * @param meta {@code Map} containing {@link Offer} metadata. + * @return this Offer {@link Builder} + * @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}. + */ + public Builder setMeta(final Map meta) {...} + + /** + * Sets the language for this {@code Offer}. + * + * @param language {@code List} containing supported {@link Offer} language. + * @return this Offer {@link Builder} + * @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}. + */ + public Builder setLanguage(final List language) {...} + + /** + * Sets the characteristics for this {@code Offer}. + * + * @param characteristics {@code Map} containing {@link Offer} characteristics. + * @return this Offer {@link Builder} + * @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}. + */ + public Builder setCharacteristics(final Map characteristics) {...} + + /** + * Builds and returns the {@code Offer} object. + * + * @return {@link Offer} object or null. + * @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}. + */ + public Offer build() {...} + } + + /** + * Gets the {@code Offer} identifier. + * + * @return {@link String} containing the {@link Offer} identifier. + */ + public String getId() {...} + + /** + * Gets the {@code Offer} etag. + * + * @return {@link String} containing the {@link Offer} etag. + */ + public String getEtag() {...} + + /** + * Gets the {@code Offer} score. + * + * @return {@code int} containing the {@link Offer} score. + */ + public int getScore() {...} + + /** + * Gets the {@code Offer} schema. + * + * @return {@link String} containing the {@link Offer} schema. + */ + public String getSchema() {...} + + /** + * Gets the {@code Offer} metadata. + * + * @return {@code Map} containing the {@link Offer} metadata. + */ + public Map getMeta() {...} + + /** + * Gets the {@code Offer} type. + * + * @return {@link OfferType} indicating the {@link Offer} type. + */ + public OfferType getType() {...} + + /** + * Gets the {@code Offer} language. + * + * @return {@code List} containing the supported {@link Offer} language. + */ + public List getLanguage() {...} + + /** + * Gets the {@code Offer} content. + * + * @return {@link String} containing the {@link Offer} content. + */ + public String getContent() {...} + + /** + * Gets the {@code Offer} characteristics. + * + * @return {@code Map} containing the {@link Offer} characteristics. + */ + public Map getCharacteristics() {...} + + /** + * Gets the containing {@code Proposition} for this {@code Offer}. + * + * @return {@link Proposition} instance. + */ + public Proposition getProposition() {...} + + /** + * Dispatches an event for the Edge network extension to send an Experience Event to the Edge network with the display interaction data for the + * given {@code Proposition} offer. + */ + public void displayed() {...} + + /** + * Dispatches an event for the Edge network extension to send an Experience Event to the Edge network with the tap interaction data for the + * given {@code Proposition} offer. + */ + public void tapped() {...} + + /** + * Generates a map containing XDM formatted data for {@code Experience Event - Proposition Interactions} field group from this {@code Proposition} item. + * + * The returned XDM data does contain the {@code eventType} for the Experience Event with value {@code decisioning.propositionDisplay}. + * + * Note: The Edge sendEvent API can be used to dispatch this data in an Experience Event along with any additional XDM, free-form data, and override + * dataset identifier. + * + * @return {@code Map} containing the XDM data for the proposition interaction. + */ + public Map generateDisplayInteractionXdm() {...} + + /** + * Generates a map containing XDM formatted data for {@code Experience Event - Proposition Interactions} field group from this {@code Proposition} offer. + * + * The returned XDM data contains the {@code eventType} for the Experience Event with value {@code decisioning.propositionInteract}. + * + * Note: The Edge sendEvent API can be used to dispatch this data in an Experience Event along with any additional XDM, free-form data, and override + * dataset identifier. + * + * @return {@code Map} containing the XDM data for the proposition interaction. + */ + public Map generateTapInteractionXdm() {...} + +} +``` + +### OfferType + +An enum indicating the type of an offer, derived from the proposition item `format` field in personalization query response. + +#### Java + +```java +public enum OfferType { + UNKNOWN, JSON, TEXT, HTML, IMAGE; + + @Override + public String toString() {...} + + /** + * Returns the {@code OfferType} for the given {@code format}. + * + * @param format {@link String} containing the {@link Offer} format. + * @return {@link OfferType} indicating the {@code Offer} format. + */ + public static OfferType from(final String format) {...} +} +``` diff --git a/Documentation/assets/ajo-decisioning-datastream-configuration-at.png b/Documentation/assets/ajo-decisioning-datastream-configuration-at.png new file mode 100644 index 0000000000000000000000000000000000000000..5ead6daa374af967656d605dc16713dcb4e4cc78 GIT binary patch literal 205143 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%0D`vzuIzj%i-=p_S{De;nvQQ2=zX&i@>?`~ln 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%0AEGsRyq8~&KFe^e89$~xql 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

7xsLOW}qvjgP?%K2M6z=x^ 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 z�HPQakoADr?KEgteaI^7babtQ1X-YB{{jN6&G6YG*o9O8eY@7$aDuoho-`^j(ci zNv?B(2EA%hfn)b)7?y_n3xSg5qE$%HCgs>DlcVY8sE=KDLSyS=?3SxLxHz@Y^|0h{ z)F;QEtbWndvZ*s(_ch!0@)mcwVZCqpzp(>{HU2=gv5Vqk0!cxi5RhjpLR0yxv|nTH#tHK~HQ@8(@6pFxTDDs2rYEtgCgC>w zKWot_z!p3m&D7(6qF)rAKv@y6j)SSXRFEAWQXcLtO_g0QGq7mst>I9WG&_Nxt7mb1 zhkQA*`f5tr$9%sI`&#SvA zow8mJ4w~3qTq#qWbbj{*1ZEj48Lw06aZd&7sMgNAK;d;s0TkBuI;r7XA+flG1o5Q~ z$0Jjt2IkGc{7sa?l<30V;Q?_{q+qS9^ZoQugfxp*+r&3j7L^!2$sMV_)#XbbJJl6Kj;R)(4E2Br?^g`{i#8^g5|1uCNgw zEYEVD*rYy0!!9Td;a?(Z^WwKi*IZO!hC4$a9QdsU0rM}X+6QNwISBvTrAt5cVTI*yCK?OtVv4EJbYLzKpaCi zW$6GC>s!^gniRC{nGw`uaix7e=Ajv`DN$ViDbNq@=Z-{wp>Iy(QLYucZv!w67INEb zNiS>VgqDI_NS>Cvo6>Pg5^qAehd$zqEc(fz=`4#SNyfMJDLXCc z?w4wJj|dhQ5fc+QxPgu4>OV-KS2hie#ZaLIS z!XJO~tJdndZ#{3k+AhwnTEW(JR4kI!fc49I4nepRj_}Pn{6a=-?%6ev3kyR&V3K3@ z-^ql3T-+oP{esUs7x+-y`p+ic-K-#tTcBq78S^hTgU{5IUzQq7H&uu)4g z4!~*0pKgw3#__qIJ;;g}e@Y$B2!g4(^8ga-?C!eo)<2ckr3REdPeH&Yv;Y`D=tIP2 ze?cq&-uMctn1mAodpNbVMM-ERy>KNj?A$uiM>Fp!y>mBpjoVB}V@3#*L!B6 z|9@Al{F7tNkbl9ts^55s8Dq#Mf_XlH@vfA2xxPG0b(oIP)q;jXkZieJ$4h22k5+BK zUh_ErX$??&s==+paBpv~mJs&VLm1oufGQ~VMav~~KvIz9oRQ4>3t#Q{d?EBq*2*XJ zl4EKz!~#*aNB?y(|4-sPfYIXdL$^tKW#hTfMCx99!kp>TDQVF6a&NCo|AcyQaO@ZI z?JJo%yC$$&>%Q;RI^T@@{>19he<+qeX;c8u zs~(YNe*PhKtSwgwAAo#f`;j^C8g&FY7X#`41zRf!4OWC;fa_rgMtk4=*<9J`i}3k$ zd(eI*ro#pYM^;I%%|v}@_5F8}$*l~-NyI}5wcTl)-|QN0T3fwOvS~ysYwHqHo(Mop zeeT!HvG)p_Xp(h}2kTd9f}kmcVY>>y)LMi?qoEic7BkK)bL!O;p)6MB61CdUVlkc- zC!JL0=<-@telei^1xOpZS2AD2%Wi(F0$^tUwA6n~?vM~S_^PXH)ena>X5G#MtQjcy zU7osZUFHv)Cy#xjNdbXLDI+xt$|E^KU-xD@cM) zj3!AE@x9>SX0v+087#el7}tk939!y z($ZSqgcLyiW-q{6-x4!zSGzeMc8pnfhP*X<66PydNui)*1` zhzt-VSP;V)HyJCTC2u&~Z06zb=uD*moi1DQxtK7~(8g0wGlM=y^C^`lwDuF4%F00J z+LyOdpa{6?DMZb&l0~XRNivI(kX%Wy@(P)8J@k(mGw*{$!!Wp>L0z4+04q`5M{{GqPa+cw?wmG!$#?nednj0Mql>881{G zQxW?ejxZP>gAQ^~?Uik8OfPl~R`fn!t)`y#%QAGMRG6&!`eZgUl%U!Hdq-oEW`8de z3L^emEPhQ$5-_zmBINJIwT{e17Jsvj2hjB(V7|IEwf>##KJm4_jBd0x$?hXRED3`> zJ!|VtthKYs(!Nsk_9!f_c1HvN%_;)H5=X_!t<q$uXdmct^I2?)xWOcmS(iZK-Uu#*ifuF<5F{{l?ll3;<&`d*{}SZ10uGizc_5 z)6qk4lL5ptqMV?Tzp-G#Z#DM6DR01IdcZ>ZM(a)UdujWR+>%R(p1n5~MEdP6{=Z@V zAJP7U=l}oAX$nUG0-(Idht&+~cRKbzb`%It3p@}WY&VF@^?xf1kA!?NI3BS)WqbHb zBjJX(Rhf@jAnt%VhyjdYX~qJudB*Wb9{nwCFrI+{MLB*rVnYs3W`G2* zgq$ry^tTJdjRqEXV2-5bFN!KW1><3SWg3S6ojn8Da6eNKKv7m)x}-n4JtTs8M?a&i zdHc8A;0uWOuVxfl$PoIPQfqTg=70@`If6ujoun>FmL9px}JK+WyzNss8^1th3|HS^Q>0rQ{2q^krZ0iRL z@ZNL${2;dU|2AMCY$F&7VXsaUW&(e(4h2uhRxExTGydDHxPtJEfcNenPQ)V#urW|i z5M}>%E2zvMZ0YW5_Q%v#Au_@+J`MMaPQRIK#z!D`)axVpzbY2As32SDXt0I#w+qaM z(9q0``VUv&NED3M(xd!4Ec#!3FX#XQ3OV)R_2cAql_wdi+)rwTL0KuvOSXgUr(i zvY*ot53c@RT|fZ)zoQv@{Gl#fA^YO}-i-KfDe4E=dV_~T4!_8daR*Ts=_Jp8J4wi+ z7}#LIPWFWp5a00?RD`Gtj1C#fza*(*Rp+-FRke|W58p#RnA zNq^z*O<^!(h8yI`rtXM;xVnhoGfIMnsDHN;4`4LFq{P;KK@_S#BZIVGfB=>^ZvB3PdNB+;l|NI|psV`LYOAiY^Ch#qTO+*~xXAK(* zWa|I?`@awHuitGZf|t_j>tmr2sWRFgU@-}@_{xVj=J`T?{$Kwv5kEqXMD7_|mZOF| zb0XIEK+@(!N9|wp|JUdLZNdgrkQs%%o;QXp3br0HS?{-eFaBfUe}2&~9tnrooV$=# z1@f0o8$gI#FW9-3-_0&VFdqSjc&mza{f-7QJx5vt-yChy*Z($`KMw<$c!m^M1!fS+ zFEYWt1JnCri^T`~`{_A@HJRtv%ql^?Xch`ys$ptG{rx*H$-#UEC_#6Fo7c&;)91;_ zHZ7M|-ehlHLcSpcW`V9TSoFVW|Hr1ZQ9{E?%-par367fDa_0L&3oErf_!jwMkFe_Z zq+x_G7IZmfC@%3?^yE} z!bqgKZx`AEH1j|JOyBDFADoq*gu30Sjv|3lB3_f`aM6vCPVll zT@jkx9}b{;Uo~h`#8!+-(RO|kDSakz@#CHCs3fH-MfvAm8biNFSOqV<0dA17V8)RM zrwgQP?jV5CGm~Wsl06LWB%*s)K;_wIHo9R6-_;Hj0c3yOkZxHszXO=P#>Lw=8gJ^? zXl7R~26^|Ja0m-uXx6a;81wEnQRdx)?c(ylhflbO2W5w|8z+-5ElaO0^{=(2J&y;9 zDbRhn!EUsJFY26n{ybPAy65T#NXbi}FF;tgKD%)$9JsSb(7!uMSiuK?wl1!qc&GzF z1LK083~3C~sLS=BjJNScdfG?(Uh0lCkDt#T%5K#=CQlBmJdf8Ph4mS&a!fwEE!Mxa z_~B%%oG}m42J}DA{!+#NOYiaM8Vo;@AoRI8)L?%%c)ahm@8S1k*K`JyU=j`TU+)US zU8!kXV}kpUGE=O5=YsnPRG7ym%tOUyA?Ru&6VFuyCZ2Og@=`o9|AQ#?Cfcuc9 zbX{~)IPPzbyQOe06}Xxa{MqohF1O@;aL=^Bw(0n#UXD(@*;#T|&Mju)V1;*D1eS;A$kI{a~qM3;-|I82aXfbi!Ff)T5Xc zXYT({Cx4u!OjIzix?t_-{%}fUBA-{IrSpQEZ0-S8X6J!KQm{cgs5JXXShLE363Il@ z5AHM3U(x0LF;=I& zulI^+igQd55}vYTqMm)Bsdk2y81>Gxo@(fPfF#5U+QxX4uqatBXbk~fw`I49*G_3! zR&QGR-2zquUJcciM5n49k@o9>gxzx($0xkIpSVzj4@y8rxoTz3gKr5fC%HJLhFqD; zOfP|2?(rN(fhb|9dD&kF^#3$89IM(gz@7~5-ITDQkx~bWYovt`BCm|}P67_vQ#4!w z9EXf-EyVRU1jEhadau^l^=+nh4FKWi!v6-4i-|T5h`8-v@mo&ZiajKU;5&DKJ`w~$ z0-B)tN=Gnd8cqi}XhCvrY!d64dkRgif}JS@8iqsDs;HRf5V);IEkQCMFkfvy_KT)T z_5?XBC?2~N;wBRh=>?DG9EJkO!nsI)5_OMRnWQ)xG(V1fD$@X@$H*l1-4mXIqGg#G z*jk8QtOFffR(2wo5Hb_SM?F3qU-jwVeLiZq00{GGriI9@#*d;AgI#9mAa=ozH*&x_ z3VX0*7&x=Si@(SU(jvaRbg&|P550$V0s0o{sw&!cJ$qeJq%hrc2LM#>5n!5>lP!u0 zrGgS=#+p_C(zfA*e#aoFgardtp!Ys!lBIcTv)oAu_i^Nb`1MLSFGHDW^@Q4v(%L&I zET7vQ{f8Z26eQnf%9k~t%`kN!v-%Hk%$7{93ui+`BQZ8HJ$28x>Uob!X7tft;Tvfv z9hz7eu4?t2J5)4CA*aR%?St&Rp)uT^W?DQCfJ1H;f)o4xlB;wo$LO!07rlVf=TG>ZQU@z(A7}b0wq0j~$ce-fJx`z@+1bYB>j3 zfTwW*@OSs1MNY|!H>*$X_2b`e_75@Tc;?r}At`)|z87!F@I$C00AfGI$Bw-nk-fXp3JJ0{0V-vqj8*umomwr94( z2@ej#M?NK|whV)jz*%1fhjF+e@?8(N)$}Kg$EzSS^a&^#H7{|EE^pNHeFgd&`3-kC zj>%#_guS${{^_8DTq(qRbI{SKqW>+y1C(pF12v7FZj`8Ln)rOd=CyAQPJtmDMUq+8 zr%5eKRcLwued+9}tCahWhJnu-FytBgbc2^>3E35Am5(GxaWv=_g*PX_@D0g*sk)+B_r&#)QKh?1bp%)8Z-b(_;P3 zL5s75TRD1^$o?0{{YxOG8__|{%opH_97#@Zb1iMa1S@d|nAachbpeSIPmAk5$BgE} zuoMz2DihF0-A0tx39UD4OrQl9*1Fk!$N8d{WX&~yr?NYkP)ccvBnja?i3!F<4w zehcTwrr;|xAtCis+=;QHeIkI*Y!?xfR$QCv$5YDqko@5(A21suU<2QhKW*&7wL~6Q zUhzKld$1S=(&o;J*p-(KffDkXaNzS|Qh+A+WJ6QTn7s7eA z3ySU&2J_wYA+FV*R8mH9TgKx^+k#VQQki@jk%~A~YU;tUoV);{WX{uxq3mB_+?|(S{00vpGR18@ajAMrFSMgnVV<1*u5Pfr z0cSK&-#Is42ye^IJ2~)8A~0b)hCuqEr_#XnHLsrnnVqe zq*aK)moT3VjX*;9#=P}*&&If$(J;eZ7}-fvaVdBKR$`M2m}=)n2WDR$Vbhf~Uy%r- z*fDU-m}P$g>Rp`z>mj+!50uJ#pwx{v%>aBeGOPrR&cYU@UnU{3gvwT7 z{5;yL)r48LA{6?HuW0nzF7oP*K(qrx85*b<ca!-&E=9kVr#QP%(Kendc!sMzQOpM28&KWS zKSF6#RCs&wzBE7@E(AU~-th29xAd5qq)4_x!_sqIS}6NG)wgKd@puWiPhmTTJxnyF z-!Xnv#_W@^2^FgJ6|wiD?`JOFtaDL!u;CKduf=P(gA!k3@ooSp(4AGmEXLVdmiI8HgiW9o zb|WG7gCV4~NPZ_x?ffGNNIRQA&|ZTUmY|nLg(+2_pP8*4Vwlw}xC83>9S14n61ep- zwt6-#&I^EcZ9XM$h2RXD^&=r_-L5Y6+3OVMPcjw|)2HnrivQy6PZzs$s^WgG6+Uxt z(j0WF^g52ce5;N)hjAVtz@f|@Aht$Fxd^-DT;kO~uS%$Sxq&fJc-5$D*NN#jB#*0_akNx> z<*_*DUHt%)Ag5pNpI86`n@zdQCkt$2GRl0yNJOaNe7m1IXe@Pr^HxMts7m2!PwAuU zvuCM~1nFkQ?V^>bw2c^L75r^A69$`$!0^C-Rh&{iA5d41dd@ z$9P!x(nD^=f8h-be{73{j}%m76d5f$fWICAjwi&(O!euPhr=PDEz||3=@O_F@yKBF z(R_rE$1GnVC85>Q_~6?&%5;242aM@0H7w+MAUDh9u9xf#s&Zx~$GLlUUBp{&?!L=yP1y?dPs2@{9 zz{_{yi4C;zz$13MTubP92}giYTYGo4(>knH^>UYl10a@knA5W*StY7*C+_ z7;I`VXt&hy5z!7~Lkn{YM!x{POmA>RWFnruu>|c%xGj#E%ZOj+#K_@FH;)}E zl`E=->@ZmaNFdd?kly%g)}YfdO;HU45OgrFGY-Gaeiy1h+EF{Q)v18qDOSMbweVDf z4oL|sK{BFV?)du`CjCr`(s;OE&1=(HsQ^6{QZ}7OAb*Es*~{UO4i%J@BWaQ zVWMWzSCOuBeb|-wL(!%D-RD!bqdCwQ^4Ud%7*$QVFuCV_{Z?KwO`}-;8@>531b<41 ziTKs+g0LEZSB)dr9Ps?8mI+8-cBjEJ??@HXubtmR+(_A>NMDj#~)XF_^_U zXfaI$rVXDA|K)1u_aZ{hYeJLe0lnl=*zW>oVTRAXGY%?$uP0qi4y@k&7Ad+*G!+gx zkl2OYbs7(zAH29d8Ozr#@t93EW-R+iqBYGwRqDPd;HK;FqNyxD`Ax&Jh1Ol&{FL9# z1J}|BfM9-vksiUt2du)ljf;EImOhTLi+ie~8C$C+fs3DmPVDUMcq*L*Q+3YA*-$j3 zhx4f!qqAReIAMIxRm;LGJosp8L9i(u%i}m2hVl%OnAkC!bYdq9GN$s=Jm)+7l@@wj6_iHW_$+>AKov%+Lyh{VE7wuSKBwH^BY`P4n2~;nck1oZT zs2;J_!vd84dEF+iE=a9z)p1HV3qLv+KM!wc*b}}$do!m<7^0SA@}ZU|Q3rhQ_DQW0 zYI;aRMPeMA>d?|wJ>bHgOd2U9>=XJsy7A@Rn(FE4r(~}QAkfDJI9>dVkRvD>V6<{m0=(J78)YYQuZ_V7GTlCncti57X;WPlyKGdR z3^bxCVaj*w6Xvf0-}{>z|q^a=WD*f0L$8Um^?n&O&2^76X}U5whH@R6Wc-y*`a zx~1n%@m&l0MmSXUv-Ew{UG`+@H#)rPIt|!io$_t5*lT&R+Wm$3IF+MX*JYmF8#d>h zW(d8-K%yH&`kJsV!gbHwk{I@V-KYWdQAAs_7at%| zFdl4TVRa9QG?%ZOkOi@Y?cgsy3ke(YT$oC!z2Qq565pgR$N%=4;=a7&^xeG+BL|HR zbINO%dmkO0!S4T-*ET^k93?2UA6sl$RRUoL5|ynqp-5-T=`RG^EiQyPd>mI%G~A3` zad;S%GTxfs_$3JVqB0RTDHe}hwhX^uTn_D=ViUb0&iyVAktFC_1DceQS1S%uKh&32!1(TEfqv5%HE2DJ~vBM zYT~-Iz!GIn1hNxbI3n4`y@vgn?JQI-=JUCD^8*AQ6+Ymtu3Wz2gOyPDbQ%N#&hism zn|BlC-m2V>bY3G^54*PJk#sGiv)^et46qv)dQb=)ent1we>G+4ILf4g9X6DuEXSR@ zuzTnbK2&8yX`+XjF^LGT%+e1ZN7`WNFH}c}E&(DMJk^`Z zc9*vXlor{9r`~49M0DL9@R6Xc=UzQn3?5ZrsgA$> zChx6Oi6&lZg6ozRF3OKRR&na|-rrg=k+K@}Q>s7ebJRm`;xJQ*Uuurx4|OYlivNxF zV~*2m?XJL5lemYywG>{KaKaD#{X{Kmh@Fk|Qk-uo&D|Qb zJqcTsJ>F)6so5-P0hbZQSOX8q{h14vm2SM#8Qbn3GF55lVdipn4>BL?$%gIsP|roD z_1PeNIv^xRRw*B;SnP4Rb>AuAECt746{BbRbCGD=mr!M*m!DL1kX-j2Zc8REbjUrO zfliu8%H6*F`~V>{eg&4rRBbDXb;rvx>$p zkJLyt3%WjAZnqUUG#KHduAL9V_?bOTit~}fRuzZ$(uG>j$1ad5FnTwLzvMR^-gn)! z$}Mo|!<6;5GhKQje@iS1`O$N~k+b8-uYbr-qHvc!^B4E0j#+JyNRcP!lB9w{&qJ1p z(l#HE%6wr|-eRMo#T%$Qq-*_(Chd4BtmCb7Gr|+_YO_azfVjVd=q19F*wS~s=rDl$ z30jHECxBfWKfTmZK8CQwb|r3d_g-!TzBPQ1*X8?@?p6?hQuP*1t&z>}6ZrXAw#Xqz zOcbhj{ur+J#jBXSaUR&B$2$hBWS2(16_LhUX3f ze6;P~pP#?vdtu_Jmr9WybnWPADBcaT78@ESus&)Cxe!xJMXDLPTy2^xf{&aW__*z_ z9}+fYw*4tD29%V}cdmJr2-3nFS@tWG3P$5!uK8?#T}_g#{xGhT&#?4DYSLjo3mO#@ zL22cx-}A;Im1PeSYfp()f0P+RugiL|#@jlRXU8WYY&Z-R!(*!x z^}+39%d}Bwr`!u@A02_hv`A=j(Dch__hO|fp9%UpwLL%uE^{n=D0EqY!klQ7KJ^|3 z$*i*tN-nl?!yztG{O8wl(5}2JjgWVC;33=#xiGJlYpAJntycRDoQicP`EJt%I}POL zOkbfhhsVV};GhPP5F4~zW^O|-wYMNfewuf7AtZ9>XSRFKUL*T4L{40f6?s2?ff5o- zUQzJt7hYlI-G8-lI_Lt=&&sXdgr%IFow#&$G}L|LdB!F<+P}lGCta#7qzjXxw9?#u z9l!70RO4p7mRi*L03rRb>As%g6EeXF3?|p$$(`~4$KF>*Wx0Oa0-}VJv^0WJN=S#K z0VpBx0Rj>t(%ncZp&%h8(jeU_hzJS-BGM&N(kTtn-1V~0+5Pj3d;hy*oPYM%djsG1 zzE7-Yt-0o$&#)Ty_<^+f^p(&1kXCB?U&nHGv$o;P+Iaqml!jz427@`ipYMw-E=MWB zMU{zIImx`YD>Q@WBr|9g#_< zmNnNmfHqqZiivLeXD(&7oAvFZ)Y>e(cU9fz7Z~wS@1XP@+3-S=ovMc zpsKgY&7K++?XqvshW?!#PSH#~_U&OdFNtEBBl`N988S(gj#tmoaF!qD*ztF*;W9UL z+l zPFF3O90a^8#KZX@GAqgSUa}?Endr&aqlouftM=g`q9PC0+Rl0ge<4ES6Tw<9*;#E? zI%Iq=7sF$%cJn*s9IIkNnlJ0Nquu4?iwEqvc`7g4)+QQ*bMb`h3?Bvg+L&Cq;uL)z zTRz~SnZxDo?C1buxF7p9XRW&NELxlDuGo1}`5U^raEFdg7tdO*MTpOJhI`-&ax3mx zg}Xp!=k<0gt+sjwF(sQ9%ZY3{jrMqBk^ZAh?os~V z?`fG;U+-GEJ15*H1$P)E)Y4^6^r6 zj2|PslrqP0qcqkUT_-m`|Lo`q^f@n0*sz{3ZP{xnT6jXOmVqytD#<{{&{T(aU7t4T zy!!|lb(=4K5LvuUs+~fWm5L7!y<#>cL&`U`D)BT+8_uuv7@F=9wE*Sij#K~=i7j2y zTGHs0Mf#EdQthe9bvs?`8`B0?#kuaV94T!AG%&UdDA~K#gT#`o9yeDCU*MTU4Kj4ADP5dj52Lfws96g z9vSk~%hu8&JLZ9NY6tA@hiwY7kTdR{O?9H3f}@&rrj@>5 z#A!MO<2?>bJdtsx8+yXH5jufqR6>rPauf&3v$;Yw&tK9HL!{nhN4y7jXmVk`W$(wL z*aKGoo|Ky|fyz?z4qW~OvqK6f>dzQwnwjY_0%o?;-Euz5^ak}v4Rzx(2iI72A4U$} zyG6-N%OP`TvfeSxs0vzuJD;txu_e#*Qxy)}YkJ7E+*z_Y-QHUzaORtQ)aX|M)U(ey zJyQ$go=oWB_g0<+%BVfMX^>Z@_{b7(RmO0zdUQ?ydTb~o8?Yj#w~K^^lwva%U-uPf zx~`+)pk!2fGx-t*-G!KSU%@5M8ZRao#IAdD`kktLZ4*4V&{wd4*1s;c{h{1u#C0Y( z;D+~e_N%T;?@@S~q%y2ulr+5q>D5@|gFkz?n(zQbXUSTFg(E|h{OQDF-$KLnN+{G_ny=8_M2d&hFh5)0za6$ta&5ML5OFAHhrslXYB~@6q8EGP?7cnrVln|C(=>`NLBFTo`oXggH*acLu0W-F1}Pp z?b<-{h+1tv6~YRmMR=X|7rljQo=fEjRY=+IqP4G9R(!ai?pqyum5Fan&IJDwPdZEy z&WL;CUkFxfwcVZoyJ(2iea0YgkX3O@P_z>1o70ge!|l?V#cU4n|Gx78P!)EhIEVfc zPO-fR{^^Lm_DeF4EuinY$|mw;cGeBLsT`#prZ=$&nz%Q6R5cRYm-)Jc6R>3GQTLle zLnpYLa7*rPMWpnyK2>T7WkisYRyxs^sf1o=5xAnIUEB}bVk``=E37$7?$fx#NuVU% z#8{7ARI`L3YI=}g^%esgIQyHQ z7T#%IWBg&Rd;YxFmCQL0$HD%7^ty9u*7Cs}SBr5!0Xj$6&A6w9s&$qPeSv5=3zHr#Hrfb3V`@`lh};J^Ba@xos8=SiCGtwfc=NrW zOXMtMCz#c6@4YLhLfNe?5cF!gTv1sK2vqhJQDw@CB5dio>z!7~<+>SO);50W=qM3O zCa`XECx_ z)Y{xpaR#0E5h*5nAby+{78H>__2FD7h%}SM`)~) z2MDq{9U9)mVr%LNQD5Y{P%Zt5kB!ZL0cNb68e5et=;0$e zaYBW)M+eLG;4jl@o$>vk2#F)*0XYkUpd8Jm^5@;cSc9Nsmfb6 zx50`|=6jVEjY`16He}WuZ#B6jRbG#X&8pmy8*5V#99GNrR*C8PA%ju1Vx>O;b6&}goqyL_f&|B z+Oq8S{*-gCPsNIqs7P>&(+j=bOm;!vE3@%m29Yw$=9_6|L*~3=S*Fn%nwCBHwuK6M7e$<?jNSvaTEC zz~gT#s?h{KVe}2G?@qJK&@T9ahtqp&;$e67dYd*5qd;li`oEB<4lcnA*S32P9<#qq z5VEyWfQG?rIEAhYT{T-Yfwb#o?@#ZFQ_<9nTDJzCr9 ztf*?&+E7<>iw#Cu37TB|O0xvL`-)U0m=hVs_!94Dlf5u~je+A6T21Py#Z}=t6)olx z(XP7SX&w4*7(Lv91``W=VI^pe6ixq|+d{s^*+7QY!5p~%f~x;pKLCb>hcnPU&bbqW zp10&*Bn$)%cE83|;>5f4}&bL^_xWtR-^YcF3(4dRq1oUl>y#l?x?w$K^b)-8tC^|X@X z!&-`eb9S6S1Za+t+ENa!Yk5U6)Cx**T{Ac7icbAHO86 z{R_XH+XT2yc(JN;KF4%9W=P{039h^+!pxpZc&h-e?>TxyD9QA^eGZDCy zu9+rUiGwu+VI7ROgq~dIPX>^XX@u)gl>_8#LN+usO2wNOB)bC5Rc*ao+`&TXq(6h4 zB{231)fi2Y?RLS28_JckW-DuL+r>CWm0(+57f*nL!@nMFtf2bP1rf%jdAl|Ws1uX~TyV-#eTe&Xrn2NxP zIpSQ%`gv6eSSwg}psSp#4h8g}`bqCfe+n5bSWkI*LKZ~mcl_7mfOwtzI!fYwk>(p; z?wiH93N_Du{*##Oqeu?XwAr}b<9M5~lF8B@!5yyi**9nA%2?J@@Mp_d57~ui2@^*4 zFGsh{_8?60BEY%SJ#D=J*FNPreADnNfkzI{diu_s_eFEp z@81z3@*>`)xaG=;kki>1_23>#P7YkVl7XB=Ll-7p`!Y8aZw|THIJ!&%!XUSeIY-X) zqzGe!|mj@kpV%?ZHiqxWHF&hD)W>A?-F1{*{l0}+$WN8GO7 z_o3ZEpyQ>ouyo}cEQxRGs{#_EYILdLr!UnK0N2pM01TSgIH}ft-hYS794fwRA_PrR zjuzDcZ-a|erpRVJ9agq3@;*#W=V%SNR=Z(raBZf`W2BUJoT8Q{*1RxwzNrm zL>1}jpo{{6=g=nH|G1iGpRBN#Z~t_6AbKcpl*Ozh^a>Wm>x*yq-hXKnjWfD8^7G#L z?CLJcmTCa2ee|zawXM=LJ@>a@6ICpD>}yTARPa?3+=zFa+=v+r-s#+E3Z~W=x;kY$ zu(QA^X$MuJA3|D*aA^>_Pl^XWcL=3iTfL2l5 z!k6@SjucQnM5I6`!4iM|=WT>TmCWXo0_Us7kOL73UUPtJ%BvT+Oi6n~Gwl8iii#qS z18Zx306~!}QxDo@m5L%+*F)*<-jQ%#Lp#NYE%GQ(=I$hI#f}Z%B7FjvLpYge7W5Sh zzP@Y}2u%12v`y2>gRQ}rq@kI4r4q|ej@Dk((s%{aP_XW+=Dn5-prn<(#zI~nXyBxx zpA0bl?poV?4PMv~*v|S8*h^n+Xyhtcu01;3=1VY>*dHSdD&3gpNr=j>FOjHYT6Cvl zWzChW6AP6%bP<9ZWh$wu3%l_Jz9!E*?f?N9Q(DHi!owWn(QSlzOw)E@c`=`iA%%C>SYq#vQ7a;@m{TTq z^-dG=Rd8PJgp_W!a(Y*?vVf9iQY(rOzs`nfF80X*kS*>AbJmF?yvr#bXJmrw!iN4t)!u`gKK2e?AAPGlw@WqhC(kO0p+=p2M7?e=_%cHo%Zaix)l!0 z)9VvA*KfPBp@y;?;}@xA9Bt#PYh4ZyV?3U)N4Iyy?k8Nq57PnoB8uVWw+e@rh2q8X zLExG%P`6BvMs$hT8nN<$hkGg3NJ4RmonI zd0PKlpgRMBj?MV}BJMMfG$#Q>AwUAu; zRAu*zOu!n4jj<0IWpL*PB?wRpfPxLSQ4t<%1clCj!-K(V1;`O23 z-od8xPNVWg2lB4f!CN=P3~2gZ3W|*Q6VlU(#>_scGleR3_3PJDFrRH}uEvf)nVVHM z(&laDQ_Yi?4xniISeTdea7ozdynqPt&dG-yfCao48NBPtOnZZlAsgl6>$=`A5<2HF z<9O``53Tu85R@$JLIXCdZ!Hff(f0zu*9#Z|YVZo^QH?a3r0WG;xjH$Ig@pgWpXG6&+&4gU@$Op9&t5Bl34kEZTHLgY#+^^7_BY1 z*pBSmisLCCR{!f6ic};x#?2nTEiHLuX;sxH+sAU(e|pZuk&xD4G;5Kr%8C+WRcxp4 z9&_uE!kSV-;qQeh>BmrbzPt5mJ=lyUxJ(Q$9D{i?nkh_rh7UccXO>26{0UQ6ea@g7 zPRh#=7m=SkWa36^Z_RxTRlI#&AG$4GjB{46V3Mp8Fy|L}S26G)E~o9I*1FTTb%-JA zCy7Iz;-b~=4KLr*%o^cY`^JLF585B+m%)Jom^>=m*)4c}EZ7ewQF^hi!{q9{QwFxI zah$xQiQ7BvUb@+p()vFTvUe0OZfTVGeId%6p|rkF56d$9GoV-fTEj^j@3gHVB9x#^ zWN%Xb)jq0V5Q!HM$OfD#oGX(0OgnpjBIZ zG!EzJ%qh{WuZ9TEyx%CH)z?UijKP4#MS-_kV+8w{ZWpznBAyR@m~|4BsfP;A(`=G; zmoe=KgeSwgaxUF!k3$dFso(oYae0g=iTrr>ruO(p!?<{jXwC4<)Q~CEbQxyKMCi4y zb2$4mrMO8QE{t{giMxgq|3Db)i!_%OX458Kw5j&pU`_uTh$4$=6Yn?^O+_X%J1bv5 zoHo;asW$BawS!K&0aMoZ50_oZp7BXkEVhH>j)qb_<=odwy%a^}(pKOql%^YM7L0i^6Pq7bPF52H26qsp#DKW1L7ux|?(x_v z&@ITi%I_gG1(3Zdwbq}zS{HT`@BD`%CfE8vvvW|_D8{(2HLuH|erCU}S7xiOS#Mmh z2aX+~9teBbXA;;2VLN*my-uvQ;yC?ch_ORD^WyT0l77CXt7L@!4&SfD3W}tI>SuiA z`(r}&9Jk5tH|j*X6a07bJU_Y*zq|1=lcoQH$Rn=ml{!t!w8a?iyO!m>^6k9KggO4C zq7j17p?9%b|H<5>A>eRoFF}w!ZsjmlCQhEZp|L!C9#%& zdpv*?jkArI{#ZQ`vS;+-uE4jbwy)?)c2?_*dX#kj?Y`H)b>5(--QHISUa12u>&yoC z$UXV=bJ92s{mQY=+bC$Mzb zw(|G)3<-*R;dGu6kc)B+To~i&m(=aXn+eyjms=-}O~yD||IQX)&N7(4FN>-XOO-u= zud8zFN6p?6sKOQ*$;RiQm(vI%ux)M(^WmmZyPKbP>;;aQi@^TSsW z7nZZ;<`{`qlItUguo43IH41sfECT{DFE)Ad+`p=OhPk!=QuoWyvHP=;DZBxeJ%i36 z&o{db+KUA7%Imz;=(GE0^U_J4hKPxHYG&wWYQA%v>i(L9sAdkEcx>`8#i|CA5@{aR z4A<1OF9fdFnR|1eFklvuqsC#}+^oU>xM}b4A!uFxymv`Rv)i763zOe-t)1PxidMI7 z$_tPB`Ijj~Uc2hq-3pHPf-*SX1-}^YD9SN}qGI&R!!lSTAx{@h?KO$7#&Vuko!o2S zvAKvTynBticPM0JR$sQw&^I+d^f&y` z)98%Hj+Va6N^?4;)NPbDOS!(oE#AJyeEj_zvq`G2*@{aQ{{SZO@S((&nGkyz3E|{@ z7%^oYdN`va@fFQ~3JU&2m-cy$D6%;!sE;|+CJ1@QiS;f1um9!)D6;Q!Cn$toLo#g! z_=HuzU#f$l=VlM6Y3#b474peG1jreN&eDAM_ze4(T>iK2HKj8A(W#y}8{^~u)|pRoEjNzWh4 zHMtvbDu-`p?Y)l6h$=FewM)-=|MV<>ouS`;pnM+QBC!59@yTN-e4F)!g6JOq`td}O z$5S1&JT{>yL)NZ#%^&^Vz3c-qL>koig5E+vc1uX^>BVYwYYq+s?&tIW_~l{ zK!aUDYZE^7KP*>tc%%E02?WlF<$-cC8BCg1%B;wrCh}i)p?^4xaf-w1E9%ICc!CWJ z;vCDj`d>#C6U4$J`gYYhWdHd1oP+O8j>q}=>!^~ficHhzmv$1z(?o@AF77Dae}R(! zJUB!!;@i^44^HWTEW=^8P48d7(yk`V3;l_=ZpTlzh1hx2zR~{m8_in47$bD=(!#Gf+Qg?J6Wj3;o=#-F`c40zAOD{#?*N(Fqs8G8WYtL0L(rUK z($x4L_L2#*m%gbk_#g{UMgtaW$CaOSZ+^M(B->%UH@;jFgUs6iE(=4Nr(@vpfOq<0 zkz|Zvh;SXWbRJe-r}*vMih?Osm#d;f-v2*_QlAu<>$GNG1)E9u1e}ScP_Db-M9s)u zpC`_z^KPddzf=+o`JDYd!GFH|pNEF~6FeWEt#r0P2~Nb|XbWQ&(TXN*tiXJ+YL_tgd;M$6xFxF5);=vr6&`cpb~U@cII1%O|M zekBN^sN?s#2VMhq#r@z*Oh&ZrgX2Xuf(+BU6!Tw=fp$Y)&- zp*f2b3;&Owb@NiW+GG1eYk?EYN2M!BNbXRCrTnAEN&C+;^w0T2;-uVT<6;(cVs#I| z(giC|8vkD}pAWpl5omH=D2AQwiO_m5^s5JzWB>Qg1MAoPeVR;p;IVP^u)n(Iq0w~ZR>H%jH)F8&O>LHxj0ZuKR1dZsBR!Y%V*pQw zX3;kz6tFm~5Ni{6Pye$IutC0V^THKjbb`qA9cTNVFEZS6NU)f*cvJZ6@jmg}cq3ca z0B$aWFD1$V`KS$mdmjh=Dds26BGpn+^M$yN`4?;V*9^eoVs_$E6%zWAy^#GM`d0g2 z_4&W=@mU?1d4>45SAGuh4uO>j{-qB@m!V;7YBJ)~+H=c$5}MT3`iC02uIFzF4m%it zX4Bk6Fxzfzv9#TvEi?WyA|YOV{q`hcg|dQJ6oAWt&=)9+4N96XELfe%MCQ&BwpGuR zZR#(_*c;<6azrp@A7G+n1%@5E5nXO?;#>q95MOTyL9H8CAZ`cPyPxeuqaT#`qB=0I zjuo8|PeDqJbl`0I?il;QYN{|J@fC@N8-qk+c z8h~e15+u3<_IvEjfXE+mT(OfDq0?#m5JlpS>;OJi2zgShzpeBCyjQ>TBI8&?+6Dt@ z^M$9W=Wd|#N9fXNIVbY1BF-5G_;pNd?mTWAvqd0;Prsw(GzdyO!P*^#?e3&QHTyVF zH<=6VOh(i*N8D0*IRjT#1*3<5CUIQ4STSVhBhQJ6^4xeu-y0t>_9$!o9=_7UALr%My2Q z>8&*-&%LWIbLn7!7eGU-8Qr*#2q|b%A3%!&A1<{vL=1Z-%0N)cFYv?i;09 zW`2xwnAc2ha=mjnZ&Eh_g+7NnxF;DDyqU&TyHbneb%MZ6ikxt+(F-UB z0~d1tL`KXtSkQi8&U7v<#WX}{{0TQ)$>(cp#B?(w~h(_z6+XcuMPF@X*-gdmB6b zD{_3Q<4mH58`S&z!I-cRg_R!Xt^awYBugS~d%G81#%JLIPp^GLJU>!n2G-(*g13#C z5Lkz7pjoWO{wy9uS_W;xGm8RZb#-{?rEsYOg~n)j6HuTLk*5uK3pI^7&iZ=%DDTH; z2Qs)B_9ee-1faHlA0}A#Dnx|+V$pkyRnOf30~17FDwNj>z)nIUL5#BB`Emr{H2~Qt zHuy3qDIH5%H#8Xt!>WO6=6}QO;@qQOEOwY286+=H;8jQ`k|ywF%Mw$`P4B=$-PnTI zL|HAne%TU$Fl$z^%XX8W5bLJ&YucX3PJ|?e0E@;(GLK5d8Vdkhb`H~|7vOrKnSMX@ z>4iWklAOqR#EFII$0P+shxN~4>3PStSO<;AG(!zKa z{cmiEKfeLdBlPfa4RnL&h=mI~w#sE~_rMg*#%E_q0`k}hlp_3J2}9GR9(p`?%*mo= z5LiweUlG7>#xKPHFKXmGBN|7HUFaUbylf94z*v}wk*fD3Bzw<%LXmss=&)pZxoKKq zs3}I^?AxZ18Hopg&;WQP1vDJal!}iw;~o3%pnS;ucaMG{hO!9kW$mvyt_Asds#m?syUcY7(;SD(X+Te)jTEPat{sbWV*b2qvoV-bw z#vtFE7Ja1`Jc24}4=gJ|5Of_{2@2pkF>TtQT!q zFHVPNOCA7$swFYo!x>CLo}!<5bk2zEx+2)1!CF1-3&WE+$SseX+B2eMo&lpj0B!7g zMBM9@?*#$RX}}~O4JYcR6Eq`)ju4nQOGw(rSDqO$go=So^le`5;#1__PzyL0qs*9* z%ZFm_1+sm9unF#V%E<+=^{T`ae_f|2CnJu3&wPup>ihY+wg4F`g3T8Inq9U<2+61* zHh(pEL(c$tDhRk&$qA|)lO_0P; zTu5-}5^9H|{;U9q*buvnCZaYl(0YX~6$wsk?@AKEtVv?zCp|Lqci`l14HT~ZKb7|=+IH+qeHNY$Ig(O%|+!HQroj7o(K6Wa*+;WkGKz#c*CrM-u91UCJ%sD#0}@a-_r}RS!NVSt4&hb zcLlqC6n-v->ehqLu>l{z07OwPUJJr5KXBGdzT6Hyef4aYI&N{J!K^Qfw8-j^f&s^u z7XBAP^Izs52`c#=yi^o=xM^mBKs;C$7GK7x?@VQg~d<@5*~WzxEw}=P|zwPD@EcCXKQ@yy6~|*rytCuI%^fduLereCk3(i zR50EHmTBOJ=dgRT&4R#X;^tSASHU@n3z1m;dR`ugJ>$gE5;!vQ2PEtOakL(cbq-dx z2CW0`oeWnLR!3l1k()3z#tB?M|IPR4kEu#Nf~>M^jwY|D4i{BFP&DwI>4ra09I_Q2 zcI>uxNWI;ej%y<0^~LX%t=a7@RJVM>XhB&J@R@@TgIDu7IjKRCs25cQ+W%?#kH1Wx z8>#KP?_45y&I>eKO1im^Ddu)15Zn2Y7GqTA11OBR!CNmt?!rrEg6?%FDm5}LK{4bb ze_jBYz(RP?jq;*}V-)v4E;dRFD9OG#Twezu5GRzm3W*P(U=c=gUL_^eup-16TkJTb zLdByN$TN#YY+J$S1>S)or{EaA{$p_d_HX*!2nf|Zpnx9U`RYah;xOjmHue16Af$K{ z2xzf_6jMNZ6F+qgp%EYsHANs^_myKwD64!D3V@l9I3hhWE-TRd^=O41kJi(>27Y99 zN?yC&+-5yl0+yZNSN4Ak9JQt&@61z0u>R29?S}Y&y#Ubx>b@_TNbYy3eex5yDXE(2M)DIuH3^Dmv{`9%T^ zp{-06zDcxvIQsbUwBe7+{04%5{Wo~$;CUX;-gjd?9+o7S#MP*O4%c4>^MCt6zmMtv z_Jd%p{BJ+#zc&B>_JfX(2%rD&`$6FPa(p;K&gKgwN@2un_VF6!-bAu4&K}&>-5Je`e zEXq2s8$7>8KDT^#{_77t_?9t%hX{}o4sQYhfyO|Fi&t2C=(b%)QA5-iLOWR8G#&Cc zblL%F67+ujt>rF)oK^uzlFolXS;_L>5m5EJDCg0;qr*M$=YDW(?_Hfv{87?maS(Bg zMTAZ(AZIEab(#Zs4iAgo-DVpKAQHqU4gq{O25UB)>f;wA4(5~qlgKYukAYgk?d|7` zXcnP0#Q&MI6w+S5lN37KzxjJ3M%>GVz|As%a@ET0UE80A0T~c(8|3^QvY$viK7Tiq z;lT;VbZ-5gaOl6s8G>Yg3^Zh?!TC|~g-09!BK1%t4o~eIx{M=;Q6+#h6B$tRB?SQP zwAp0k3*{uwsXN%(h%u-EpnuCR4on)ZpY@*skTodx8xVTy!9r;?uvefuL<{-~Ho(vE z1#?L*1V28Fyxt(#BW^RqACr>*$gGmt;LKF86-H8rWJwmNH|KmyC&mBhCpxgKbjT3; zA?)C&fd^32e>FI2q_$SWIFH!18o7Cmyg{;WKMGySX^_Jpy&2B|GIl3KH~}X}dIC>Tcx=p`okI<7tZpu_wdxUHU&P#U-0UWO?Pi~L zan5O(;>jP63B|EBzkn&Qt($m$-vOXo5@P^&I_qQ%%giWy_#Lf7NmJsj=nqVbtGIo~jg0l?PDc_mbM-G1rV77;aDAkl4NLzO*xwM930vBVBzIk+h#ioB?aY@Sce$tc_47H4FpY!`FUf z`FCzgGr{*dRzeS9+%=S=`H<~&821jKO$5F+pd`4GoHKU+?b6-9RvkVUAfI;kH}Xz< zsu5g@?DZ1}vjj~-YUvMViDU%^9(^76MTbQt5MUXA?_WB)zxy>zaTvi$c{J~plOJ&E z$oQlw5hvQ}cJ3O8#>*22h@&2Wh^N8&jfjC!*$%wl8*mws9_|Z9HEbS4PhtR#H$0?F zuS9Sv0Nkig;QLCeJOpo=I^<@9Fs#d6+=7b~VK zN?Xb4*9pZb^xSQYl3YXNFZjBs7{+C@e_Cy#r?2Nh8Wo!03e|mabqo3n!5_%l&Pq{! zLoOUZdc-agdP*fpaC1bCj;eRsott$mUo#Dj9yd&6kufml`PToprBY?#;otg59dBUI zi;FrppvmbGvUM;0a9q0Ca|J1*V=3T-tA2U&kDY`k<^$fZyvHRuts(Yv!1+=hgiQkG z9!$oJEpG8{v(HB#TPhOSpFBe!0s-BN<3_GF2t11^s$!^{nSQHoiB*Fy2P zQ&P_WxyR}HJocHv!|`J7v%Q!Q!^54K&_T1taBt%J4x&CrW~4(B00QBQBA16cfJaJQ z0W!7lM_g|dbl!XYEeMMs_o^6Y<`4UXI9V4m=_M>77p!#1KvcToYtQrhe(*tOSpneu zl8)1W5emhL+~Xhw#PiS|%0NE`G)n+S@o!!%z8Xtv4Nc*%nnsh5=D5*>UnsPaLh~`g zmY57?)XS1D1_{)uLkc_2Oei}err%nMWB7?dtB>Jh){Vi`O^e5! z6igQtCilpkX3%nRFLnYVMsh4>g9Ib<+TTs*XO)kSR-qHLw7a-Y6$oJR4-QX9F$U5t zLt27$h&?VD^8kQj_j-v47GX+G`!bjySrjUr;1SxzJ;*sfno;|*fSUsC5hhyT54hC; z7lC?T7+8det$kWSPB6ro!F@q{G%zR%q}Hcqz`WZ$Pe}UHIYOh!!K&|%PS*iIPkZ7_ zL&{z35F$GUS-2x4*B6-FQ$gxWB#-pPF^Di3KWpKJA@>#(f4(l>4nhXuCCp{w}aRpw0BpJ5|r@2~^(8;%M7w`(-$ z9eZxCx=OR)Z9)qK4JUY>6mkU1YCTw3vlP-CNKg1H{O*Li(b1$#Nu+{OJ5L^7{r5=z zN9>sDpdEZ&1X9GvR$^$w9Vunz$eXz;pSz;5-~^`CAwI+*!RmQyAMEi4xj&_!}-Gt@MqC+Tbb9a`v$OgJmzm%mgPb8j%1q4g?GQBYTweLD-#Z13Mgt zN^3tVMn`gaTj=dst#_gA&R?DgM;6mz%BwyuvskSGqL`Nw50o=r5SJn{@>)8cJ@9=F z@C8OrehK|PW3WmAe6~p;;AC5FZ~uVFe70~W(fy7+pn*w_t)XLktr9U%1_2t)^&^Rg z&KR6i+efzh+H&khH?^2MGnB&G$UsGpzVvWecMan^_s$5h`j4)_}aqs?pvqLVTaIcP4#>&{>tUH1ktz*LEH)( z?@2JmFV9ej^A~(O1)AAWASGB+y+zE)N1fCeywNbQ|M8uWMa*hnp-W zUwR3B&8DP)c*fH$F-m%>i&_KrSb$yw69#r<7<>cqqv^|kd~5oJu+2q&&2T> zhvcfHnw?*b9kqt6uGGH$ir|P9PJeFK)0{`F7MD#rl4JH7PluTpquQ1IUTpms9Q=Sq zPqXe)ds*jYx^{(C#++W=C7P8^R}fc_R19cf-Ih&%_;YDY#$tD4PQZ2T{?C&yAv5W- zJRSO6n#V0vsx{Oj4^1v7`mly<2+6>Pb`C;qyqR@R5=$)MQwx+qelSe`8D990!DaB4 zjK(Em7~r;0cGQ%vLdNBxzdV-qxQ5r;2M;01|%$s4sTiGiE^u+2<(OhM(=IRO|Yk# z2uHoX*AU1cM7&J%6oZ-RMo1Zy@!y6ca-L_6%T;F-cOD!8^0*wwO#7U{So zQ*qgHB2(qLPhb%^pcM9{a_C;MU(PAgibMuBCsEXTL`*OPapF$IE-E+rbfn3>1}V(aJDT zU}A?&*0I|E{@s!T5q?u8blu_zFej(*;+Z`VX8zN^uztTrH{ z;8nli$w&4~ni3d$xw*_a2dD5TzxT04rgGJ0l>{#R1ZNcokKU5L^JcicCb5GAv?5=D za};T81WUn@&YsLRLY5IUy;+j zy3Y|dOOvfRUjyvBv4TwQFObZcY%cUWw>xrulRL8zr|A}o$Xw>W5t;dh90@iZ-IxJ-@^YccbW5 zb02Qb8wFGGuPF^1LIf9JtxRQ481r0McJ#a6qqZsi!Ed0{co4L`V|_dHV>LIHdzVQ( z-Qk|MMQ9P)F@|~`?D`45F`{RaMC-*^7;c;8P#M%hrk?*#L%`jcsvzBt*~77hFE zUF#U6=H(d`db(++o{s;Hu^iIp7>BrM^+n&Ljw zK$@uYeHG<=r=HSG<*(+bW`+z(^zGCwI4m^;QM?t7+O*_2x~}d*AARN%IXVXOz-5&U zl0W7y(L2Km#ULGZ-QD}ca&GN;QK!Y(4E(2uKQh7|)v%_b$qU6KAMm9kP1gm*SNZ|$ zL0P7sqjONXRa2T08$Xvf`}LLu=DzJp-`EIZ?aojr1#MO{7!s6zZ=pZb**&sHDeM4! z@PPeimbhQ0!fkzN)sb22ZX4AYDKb%a7pCe<)ijBXaQ9mq4!h|#Tt*>tA*ZA>_1fuL zk@i=0mvQT}=4C6{CR0DZ>YOtp>vMrV{oVA)l|xTq8ir1h;Gm2WoB&?v%yXE-mvaw? zN?$M=+rtTcKGJ@BiU^e<3@m`5nojy`t@)dxsu{OzQFrTSRFbca(W1(pOI4a`P5Pat zsQS!(<>3~d^*y**`oGrnZwve8N$fBS%F1!vurw{Xk3X4uCve>kOh*hnsIOXfBugzR zL@o`#eLKVca=zAYLfzMM7XN(I{oWpKiGz&@wkP9pHFvtoOjQN*Z{=|}HPL%nu+Qzn zYMOp{LfZP!M0^^#`)HJ!=y1RD#=8&WwZUoD6IWYWumAkn-V{o|{P}SH%?QmP+*EOp z@%{E_+U+|!?{g{YhpE36r?y`>-fqw$T9B` zSILta^z>x^8ZxrwV2%WH7}A1g1vLY&!fsTW%F`>zOva6{_FQR;<>zRxshX+r*wcdO zv|sSyRilPI9S13i6)yIi0!P$rI%Ak6?D!JPkF#9AAGVU`(EafFhJ$M2Q;K|Q)WU9c zA5kn=56}1JzV$k^?!6y!Da3+*YpyfoKhd(Y}c4U z?obQjGb*g{ekDG8aC$REK8k&nbFR<)*+$LNJbraZrE0b5@x!(wO!S0jJ$xRu{Rn0I zVwe+c-j`>qO3PL@sV7*xSg(3G>v6`z)zAMgc@{(10X($8vlK$BZN^Jx-t|dbz3Ze~ zLZizrp}3)}S5pPWNwYfWkHFn01;`W{oQuiUEDdfa9V3@ zz2^HE|AYUhM&G6l~V}G#0nyQGKOs4!9mpxI@ga-17$K1F7WxisUzHm-kRUA9bnw|}t6#tQLD9Q`rOzB58-nBPtGS9|z98Y+>i5=+= zQK(CKCiYLKc4UpD%Qp&CgGpDK+*4=y8p=$F@}N0Q&5+~K6E+Qn#xv~ z?DuI!hEVx4GH`g_FmS7~{M%!p>!FA4*@>A&O*;#XZao$H?sBS8m8kQ${81M+r_7MM z_00PV?$*?Ey_qCdojT3$ciw5p_J&}?Q}K8d+ptX~GnIg{>m7cNSF-5%dg)hv@J>>= z^W*zz(Lwo!!SQ@nn-}-ywzqE`3p;(TJxeTZ1}i!-3hSkyb>dsXBbkF?;G+yV#tB+4 zLFlP2knhVerJDjgwENOB#7Lk%P_0Tglg`~Nmsrf!HxR>R+b{%iU+;n$*LC_!ct(gE<5PYlK*KC&od-* z8Jf(~ALQq<*#(x?-N+kcTL4!wUDpPM^;c|9HvA}25r02QBJm+OQ#W>E3GNqVQ0=cY z?cDIHQEONII_$e{(YuM==grw1I@CY!CO zX!3gmevmAc<}_q|!^QV0IVb6zmiLVLr_UdoS8^U>x9(#{iVRe>p7y<0`7JHwUY9_y z?-6z5l2KT`RA$zj!)*HI&jSwYUXtfDWd3M0_$Sk-_Me1ANa*Fvur1nlE(9d)Wt))} zxPVJzecUb8Sacj-uo&_c>2rB2}KI)U203b03Ilq z>JD(Y+LI(CVlZxydwxr@NeUI2XB7oidtJbkw)&f|=Wj+=ZbA;5mFq@4A}2+PlIk=J zBEMt-CrUwhkQYfl+z!aOPr~6%B2L(XeLn~`x5Zhu-KT#VqgCwLWxaRCDO~oxxgO;0 zy=#f(7qMj3&{62L3c-1}Tzr2y$IyIA&LjD|%kFo7`VqCq^oK%6v+XbDU2z}A*II4d zj=D%{qO9siL{GW0_YUsj6Y$t|_*te=sLOf(d&OLFGTPIvv%rg2_PhVy8~rux5A*W4 z@oUy!Kjuh|J8l0AkS4(m&r*oxYlij*Q$_q2LO(7**m1f^FO6l$)8cy0w&IoBP%`Oa ze+;-AD`05`iLhf=D3)9&WN@tLL`Q+s|_ z!S~#r*njn3tLd<+vk7cjKGQ){W_CWN9d@84lww~>Td`P4Z#_{om~ieP6~KL-wfSQZ zoPQT*qdi!eZhK$#iFnCtTy=oZ5(mN9ZP<=oLd{i%Ob(%ie&;^P^sT~rIq`*)_ti0c zKNY0GlI&GXUWZP6(gRRn!d#s@zHXtjIgzGoh!60k6V&PnFr0Td490HF75 zOsiMY0{m;0Lwz^NUs3>h@5bA&+W-D;f2|VI*X@Z{JMa$6$tDT@BmEhMH5{7ELSc2Ue49=|HIvX$5Z|P|Km7HIEt*4T___e*{fq^ z6j=w^MP-MSksTRjq^QW2ajaw$N+b`Rw)l^uB!m{r%I0lXK4f zaUZw)?RLFgZ`T`djNdknXhprmQ1}qMsUuJZORnPx#sD(B_O_X|tmw^>uw_dPfW!Aq z^YICa+~+IJ6+ z*D(t~9g`_VuP@x%Zl9or$|2F;e(m9hfs2D+ou3_Ip~z0HSrc@z{$OjC%yXJ$a>S z3ov03YQ^?4s*R;h7k5`}%s)smtfWZe8_MRUA%>CDYvzG?SU3DR?1Rza5V=q6>qovviCYnqB=^ zyCOmyd`)MOTvcv3hVnv9O!X*aFba;Dy(;OW6dT#CB@~fV1nzIo{HM2l9?+Y#A=VCj z4PmP`u3~qHB|Bka<7Wjba{-Ha7bn#Nh?|wOlVprmaPxPEq`0!uI3GPL@fc(M(OLrdkBA7$$o zKK0o~Qnp?_>D+f!w;cLo%`@e4JGr}Xf}|su`t5W^;!fkHh%O&zT}K}N4sM3VN=VMd zPD4!P8oKL*h6U# z?LLQhvtc8MZ^+YA{S|?4Ml1jOkAR9dLH*4kQOHwG0}12s{NVC)rE@pf{H6H2zd+pC zrfn<7C(ftpWFm#c^=#$_U)Z(!kg!gKznyTMA2IcC zIyci>%8yN6Y_>FU$I;qKfK{9Z`mYG_@jd*8fr51 zR$!gqM)BpddM>|+7P7vGxt$(-J7+j8PJ@^l$Jy*8g~Mwf^LW57L9FBcZb7)HV6s{-X@onV)c^PkA%fEgK=LWNc5u=tKr;?J?BH|e0 zRtH|JU34&qhC%+tkQieH!tJ>2u7J8^1E}XpMEfOFcX<%tv?AyY#ns3!jg7c;VLT|O z_3J>!Sz3GL)C_?)3lpv6y|@l3C?otjC33!o6e>B#=Cf`s$|v4~EBQ$0y-ow0Op_|l ztoK=RY{?MsnlH>XiT&Gs_;*xH;IosK4XgQDrhb7Sh{q^Pzwiw%b1!s_)^v6SER_T& zDOm9iC0RtUN%k*5Q_CEp`_PPPrK~-GNM_)=i)<&W*-@jdEIG3rt=e6xwaL4Kato;X zHHIj05gH1i7JwJWT1MXwqB%6$l@iQ@a9QL$!=3Yq=f-Vj3E|E$$Y%)QT-KE@aYi?5bfg=?Q5h44IzryV!yWBbt z`Epx`)y$vhYmHinv*8kgb|?cQ=JU#9l|xo|Zy@#*cf!R*!!%3JAY?Uim{G)TO7}}3 zR)@^bt7D-%?Kddsf6Nm0JUH}09v|)AFAymAhNhM5H}sJ^w~bhYwyo1DGaDm$mohwk zr5=*!7cime(F)?y?~FOdY-f&nzrk48X1CtrpF?e_rd;U}`i2HPjym_g7r6lN8WOeG=4FDx0+c zK^hY@QM;rmeuFYx@N$3e4oa3sEqPP7;S|s+coQgVEQoGlg#T-t05_zE?ZzSYS;}qU z34|AWN}Qpi@*ttZwYjmN{L&g78aD1@R{VYhM3%7MB2J!G^Z#|g{*A)@HTB^%aOfhK zMqRW%$WwlM5$3XrI{1Qwhfgn6NH)l%Qaf=ctY>rz7%kPSb4q9qM{xUh;E ze9zz4XZU_1NEfH^nN;=)W@n@-8dZ6E++4VA_xlR(Hc5a9*2z1skf~pYw}tGz&SRCx zWr_U9ZSY{Ut-EW0Sp}K%BDfREGIR9us=?1=%_jl)^yw37I8;htpOrOFPyOSoIf+2- zGIjYjhE&Y? zh|vOg7_2Ak!0)PhH?|%vmIyjN#ZHiOSqWKxa2oi42j6mn(eSr;fpEKk5tdF+H(UP` z-f9CBy>iNVO4O@7*H6#7sV#*OC?DH(eXJqY7C@!%4W6(G^Z^0rTY<9XE~v@*I^CMC z!G3+@j^cdwkr29--9@tgm{blu{AD#hfad`mJe~jU0c3W(e4hhB_*_<5K4 z2yhJYhH2xq>nrk3J{%AbEa}DkT$;^w55GYa9fvcyr&r-txVrXGh2!D31F%U?o6Q3~ zt`l(RDKLX76PQBljv~0+&-N7AYKe!&ZhroT30#Rk44(XB%43P#w5Fld$|3f0Z^^MM z@|VVrwpjoBQ1}FTZ}i7XIOiDjB*<*r=nq-Gw*+SWu@sRZD>9C3)3Ehg)ZUQ&djAv6d6@Cb#;TW+&mLWlDb~x-k`^P3xK}Uw7wXuGtndnH z^NC-B@bTTQ-Mj#Lp~CnuT8`Rlzy4#>GW*!j%t66$LhHg^-T4F-oeh17*9cx$Uuq0r#`-tq0fz55s$c$5b_55z?gC{q!NZH|)dE3$_D z51QD2O|4HGyp%Fp+yC3VbU`T1alGypf%3&r@(NirbS_^whzAB8xPE;T_9VEi^?~OS zXnuQlEeDMAf$1$5eIgEp?IZT+>wMlJ6Xa?p8@2^LYoeE;>94c@+tO{OkKZvJfteEH zU%;T5N+5;j4EC-|-1??{`(cReH+|H8vskouk-_lg`)ElPPD>U3a&xx|oB<;=8bT(u z`6!$Iq>?JUWMw=R@@q2xI(J5BMz1`BnHnu=;@uqj0py+&u>@?n=jML!CAatP5Z~Gu zo9|XXjmAk<6qv?|)s)9lC~hvgBwBQlgA1fvi!KB&Ww=6+v-Lpm6ZRS`Tm8E)&}8NR zj~AWGnlR$R+o&$6^*0GPX6#OV9es~vz{B$BGk3q{_W=%K zyH2jLE#wyqqxcM>AfjFSdL~B5I%>7ps+~syO0R9fgXPJayt035Z}+0@_0UWW?PP!B zO;3ha1{R%aPLy_QCD^yW(FaW84zK|vdf@su2%umNo>~KU1fp`I(S|G4WQX*M?fQb< z)zs8o2>n?Ax=`gcseHx^6l9$o!_w;b!vSHEkb<$9?k)r)a-31nLOn<+%doVCzhsa| ztLbeqpy-YKfE@q0r}%4lgxg#AVFypASc>f@j3_wjNWHn&PE*66m6K&mwvGvgUA>zy z0x?w6_iCo8F_*&>kzZkaaqNN=b{-f4U39vJRK1sz{DCmlj5r_i<>sG?0M_q3s2V-8 zl5^CTM{mT6QON3E1yJagAmdwdG>{3>=cbFF+w*}C^1yf-(&ND87>coKI1np+$TeXV zX+v6+J-ww@j7*T#?E!Bt3+Derrf#nLx*735Htqx(GJpL-TmXTxo0QllN`c*hY=gH< z0{PYkSD@yaCQt^}=oCmklg(){5Qu^K!nWNbT}L1oh2rh!GZo*A zb&cfB3SLr3jFk36fI0=KH-||mT(?HWoac8K%rn){{BtP~)UYeC)*eH|QS1GNd(&vB z=)z{1Sh;fb*B|;Mk>9)MEgwm$eTS`=;>4Q0#PIFo)tQ?54UY*>K5&@lbj>zkM~6gE z#MDSA9?UU$=8~6z3Bv0-&Gz@9o|vbnE(R@dGqH(5G8BbHMX-HWA!wNf$s1C9MEddQ zgC|>Sm!oC~luHC|`*IXowa?#o48yE*=_OqQAEX<|XQNTy|6z8p4&YmG+YMF6#uF$H z^@?uVOST*6dYv0=651Mj%666GSVyRg?u6jph#4t63@TAR&p$UdqJ z8>w(_0l;Maf}cXWuXY$+;xj1PS(LYB*u#y8z*DtUpPoxk4t)x#Yxc*Cb9L7ET0lh( z?tGQz^ifoThAn8D)|<>*eAuTD(3r+G!hVaKw{>*gJQ*!}xZu>qd_6l*)Y{uv+Xdcd z8voeIO?P7Rf+F*2!Gw>mKY{|+`i+g%%K%))UVqu-Rgy(nYXG6a!gQ`lRllIrE8t7n zG&~Yp0vN8$4EQ;=%;HXg*W;%Bn6cy%Ls)T^YP}}a=e|-pqSgSy zp(Su=dw|scS!dTiff|VIX!{>scK!4wvdE(OK&D3WP2|ddFQPAy9i9UlQaaG=vT9Yn z!I&~ItXK7;Y?hdOPf1?$-sUYcv~lRDMHAa9-2sxranktl?N>jyw#ZYF;~={(65PXTp3%#wibrqu+f1M%r6qQiNiw{my^3Z0E#9B+PUq`M9%jb7#C#Cjpv%|`$83nFa~j+ym( zctVBD5=1XC{r0=6WU@RnlKfNUn@fj1p63qM!G~W0FeZ`v@K8)OX_+x(?12~H@`9MY zWUdzQ;)`&Z6{0)>qQ=lawE##dCPFdtu)ESYfTww&xjHJQi0{x&mmN;FwmOVhR`l{M z*6)fD-3*2ED@n3hsaC9%QVZb|SDCN2?42}r*Ai7ABroOB9yW;N!DT^GW2TUn_ub$( z@)HMX*d87;yV(c8+RRb^lZbk1diGlXv!U|#!1e(ioG|vTww*I)}|HJF-WJ@2otpZe{-gfP8G12tbSYua(l#;5G+&l}JSj~Uo^mSU>z0FfFA8f(th8`*7%tOU zS<*9-U;I{=s$|(QdgDKaa2agId))zqOU3LMq8u>$uCR>*f6yKdCe|Y(GD9m3^cGx%RC}}3$boPfB5`VJr^vvit=D?`V>3AO_ zQjF@W8ky5qZu#!B!e}tLjVGqE$=v5RnxCSd40?B-Sd8{f2{e@e+n`rx+4t$bi5(Ia zdU7_A8fT#)6bj$dg*13fV<^M@c+YbA6#%P(c$IcE8nbI$RH*ONGl$?EGHVJT@3rk) zbn_&yj@EO9TnQn61M^&axo3zxCIR@=N85&c>4yZ$%Zt|`mNsbIC6nz!r$qZv{c4Q7 zs!Tkz?P!`#B4_{=0%m7te`(sz;EsjzoVnYtjK0xqNJzNd_EZEnCsfjFIKZUbtzxC4 zG;|k<675ON)>#8lf>9m2<;0^QzG^E{w>oHF1?`CcIQ`b`=P^&n!f;`;2(A`zV(!#n z!p2?Je`IV7REaVYMtp4JTPtm4U`w1=8Y1y!hr8Fukd`Y)g=0vh2(YT?TLrzxf4Li2 zAljYumS-(+p8W8>KI7>P*=<(%0|{1iRx9dNkTJ6pTa!zq!uigz&hr*Hz^&B{Y@xTe!+$-D@1Rk-o# z2|S$9p$aktKVB42pZ~>de6~ z2QWDXUI7Xou@>#?xlp+P3L)a)Hm5VuuPgx&EPyMh7gsy?;wGply+Yly2cLb}6G0X} zUYH%sXf@<;gbSPW{2hSZpYZJ#OapF{eDo_Vt_!QlJe(^A1~Nx08m=;{iY2FZl;(a& z>bNIs(tUYps>`nYmFBtKIQ?d8xiB{mD;^%9^|<=eaVyNNleHvHNx2%t>I>0?wlu){Q)0@+)Yt)GAExzNs_tk zKVACQGCnTQ3}}CZ_7We33ixx0`U_W5`LIbRTyP$Ke=%sVJVbceBoUvMuC(cre-LvXZicoNHLe_@xLeski-nwdzi{S6Ozk{L(*^FcX&_yd=U+56Ihx`VY| z%L7$jULwrFMUyOo{(;dAtm_wJb8C{O@tRZ=hb)W={DE$_dh$i6i|SYoSo9}iOtcyV zSS|n84J47qb zn#d#s*~(6=>bl0D%>JA9x9Hipr-X8!&8w^;dMjtO$CnQ6LPirZ1s_V)$4RLeJ_cu2 zN%5&CFAXgY_7B7kbtK4=GR)3t3!PY-yMgk)u@X9wdyDtaCqv%cS4BLHa{e}pR5!7X zQ?$HU=F!k<>E_e{MpfJ7Yf$1+di37Fp*4LSJ@&Qh86MTcdpxoOUYbR-C|1dxQ}h=R z^tdf+U^VpSIGl{*(3?Q@+f}HO92GMrq*Y~1`H(0_LN7}mf5Na8i!A;3xs@np$&4aO)+m+mFNr=U?YuS1iUVJ$e@BUFIgX3vx!W`;=FWspYMf_qV`dr=f3+i7r2 z8}hx9!hNo_6|h(Op6)!Y^<>$K8k|#m^>a1xh9y1au`VO$zE3)<1IMJus#x4M3^oi~7vv3G;w@YhRzFvX zty~V%e>SJ@f@fLJ>A>UOPB&8iJaTLu#MH#{=E=`57u4c4srwGaHp1Plb=+f2#lTzs z@v%tXzcUfx!QPcpk>fqC8IRu1p7O3aHTTO?U<=PC;$&v~4i2hOprln?^V0InoAY!Rz3x^r+FhxjFp+lW{#39)$iB{|k2J6$AS3Y~3#c68X zx|x9i!gyx}{??2MoeS+;V0%GdKuaHMhN@_6gGv?0l!7oTY)yeC4eiUq7wT zP=;f5{xVaV3R z^ZVmW@1YJ`Xg|yUAlXwfrYa4BsE0&EdHSNF37@I()eaC&zv>nmEt?}*^4}GH*r=@F zb;oUbHjOk1xS3a2D8hF#i?`vvH|-!crS(&8qm})l^@O9l@$xPDgfBgddnv;GI#w_A z-St&ws2d-6`Q??)5NzxWU*)7d9_#)lBze_GzQ{5Sy*V+2Ig*#tm#KS%{zD!MhDBc4y8{#0@&*cVzbPgWVAJ(?}qT8ZxkL7 zvetSd*7y?`_8O}^_`VLaXIQOeL$~}j!1%94DkA;Cxm44$bnUV!g{Qi_cO6+ z;Ako+7WFkBDE!b4Nd_9+G0HIT1Dl322{MjETParEK*{<@r8RB!2@D)nnFCnrE9rW_ zvPkA3*reUcmi~%c-ubJDf%_ZxL#Z?OR`~nsh6*pP0fFLSPNKb!KH#C#koQ?Ar(f3VBv2O5d1wVN zlntC1G3PT-bDTF_^<#rm`3_|l-@S}42_wvTqWsQKS=+qSI>v4Dm`Acb zQv53BFfqiLvdPq@Y8%OfV5XVRj zCuRQ&fD>N5{$u@{5hZP##xiH`TEOQoJmG#P9?Swa(!R>`4VynF6lz+|pH8I{28&0( z7#-xxoW~P>8h{4ki%!!ngiN+yRdJRJE84Bry17G1MF4t%eySNLB~BU^FGzF(VNKHL za410#e^dUYGp)1n-QdD!fvtf^WEklpR4WasaDoR_t%BiGFmPcd;?Q7@`<3#TpkD^0 zW*Vwq><>wU@U7WR_g1g=VZ_jVsKPcJ#sd46oZhenUnno7ltht3#L$83X2on z05}}(sc1<2AH1x1pmAY;k@P#AuQ*~S8^Bu)pUX{x^rmcU0rL>h6R6{g6gqSt-?mSe zSqG%0$2UWQc5hQ*8wL|DxjL1<35$6MEe84?pySnXYHU~Zmu?db3C(>sq(l2rQG)(4H1xR@H6tdZDVF+f%|ca-d|iW6}F zT9OA;v09@!(4laovsxGd2Zo9bh)a$L56RBGyCpAo7i3Ic zUSC=4D+AcB6TpUZ5Y;{b9F)8BNWZKoHmMR47~=iFq~-}2kFTb{1dkgh<786RVn6$` zi(?}-0cDyQe0d!Tjl6Jq@~T=?st*M?NtZ2RbIX!02;uH%;DR90TsDT8w1}q0eNKmj zIszYY!|J9lbe}baDnPDnF*;+1QriFmfwkLfMZPnG)_3ZJJFQ!IeZC3JK2 z7G0Gj+^+(bAXWn#xFk&ae&N5$sokkGjz>wK>hVf@a ziDipJC#_oRwY=P(yp`1FH+Zgbc_&bo(9NmiC~=rl@Gy5BVjOF9$6pt}tm4(q`vmkbN?|%qY|>rYPtj%c{!Hf!^|U&d*Q>RTf4@3Z2OwiK z5sek5flH~-ygp)%|9cc}^RE5=K~a~M6HA>Fn*4PIt0byUTVcFh>MMZpSQa*WwG-(@ zuD1?0pV5s32q2b@wiNV5e0M9``!@L!iDQCnK=$E9_na%qE`|{ztrxF$kq>z!4bfHQ zdS&yDq*%!}@7a+0;K8#jx0wvzT!q&ZC^;&o_J3Z}aPp1@@(7G?8-z&gQ1kICT1m)A zPiJ!TLG@7apr|S?+0y>JzYL;Ypp4)&DD1u#Q3&K=9=|bIfA>)N#xf0$WP+v9%F?v8 zxODHrxhlN*_)9MnjhB~o?Ngv=ntv)H{k&iQ6KyUmVfeV1xg&7bdVu6LbB6Jo29B)( zBKne^WJcPfO##zoM+#k7Lnm1pK~W>&G8EV&z@G%DP#W(Rj^ zpBn)aRVa34bcB3II*-5azLmj#k&t{@HY=!uUC8_@dGo|;Rw!@)J|S1*Qnm4Mz~~BA z{HvaNtv{wO_K2fpGA-V`!cb*iVdnjGHVKjN(AIxc795uP)l ztZ7-6!^1Z&87&~Mbsv$wBDL;~S61@eNHy0eBvW-r;&zM32&I}%m*v4cANLeeTS?3C z4$hBU5L$F=liC3Ln~J@Ys?*}}%Gzz+1GI1W*%CWsQNboL$4BOv(8ZMsjdW$gT@`W3 z`?>nUiZb28X5>5$j|=5yq?jkz2O0A=KUWl3*XcZ6b*L<7+tj zAEiPGl)tPvZW3C+;RHIEPYwUpts=%5K1~?$h#^a}YlB1hzEzoRK#BEBRX=qzoxnWg_kX=l$4-mp2--fB6_t?{pIW+Py&{{f@&-yBsF zK=Gpdh<4ZqwEtsaW#G?c1L}CJI1ll^uxyoJPnU&lWPWApezJAy`-Q+oecVa;%h1A~ z2;kr@z8JcbFoO0Kr-n;SeCpBt5#We)LS?lL-a^3iIe`}s3j&EBp)nnodmpmJ%isX6 zKZkNUQ{Q_MC4ioE`%k@T?jR`s2gd_jgr4yo6$dtAq=bWppf$l5v5c$aVGAz@@$^f0oA za!TGDK@Q5Ck{{3Lst3x`DS}+Q*)94bO93T{L>#W7E^yn3L2(d=;*RJZ`Cqf6qz@C& zqCK_cMQ=vWTeD4jlpje##bNdnPsLrjlBO1$1;(og==jmnOtGNo5R-ZlG7sN<**Bhp zx4Kzcn+?}@^hWmC{8v0WSr$kY158Py)C`3Ch_W!?UvMJFpt#}9{Uh;9UsD~cPmjy- ztY0wM?ub}2IU%CoZv9Niu&E>M1z*3;&|k0oHNN+oyJ3Meyk;LgZbvDIgBcC7H}LcC zO|r$@Ov!vKfpvsN2|ds^{;cUY{bD;?;CemBM^(UAwM^D`Z6zn40_9D4DQv&<7Sgc!({A*-drV8O ztT#teZpMYwGx0MU3c_cBEk6x;??Rv!93c%`_P7Wfu|`5WsjM!|hlK72?u+8hdkRTCR=o!gMF z1D!JCCN>Z|vpVkPFi@BtAim`BqiLI*pug@uao9{}Ma-S{{__C9^AW@A+@_I(Iop*E zbOOIOEbAD(I|!BskcZMP>`&vle;WwCwDQV@+zF@i>*~wppYfSfAc(kdhI~DJE>M=kYCattrp;jjfntIuK@g^W{M5O|S_iNb?nK1v z#X{}8fI>FD*uQd_ch}a?fPx3x+LryK*H4(@@Bh<82QgTue)^O*$9ZOo@F_?VgxkkeZj*Ew{?C9lbFDO*vIUqdm;=mdLG7w zR*`)A1+P(CgB00g_~oZC7Txa(-*hrGAG_QSDcyiOs0dt7@mcW6YkC!PkK-ye9!Hut zRJnh5>_|h7tnh&Q*9T+ffNg;RO5rH{N8uh;7%^dPY9#%VeE9p^{PTLK(QTJ=XX9A$ zNtNB-ol~c$s@3xdqG26~=}f;u>C;G5A)i~NY1(;1B?wdb)8}7L=2p$PC9kTt(+z+s z%SCV`3ichpxQv_8@FAXd2Hb*p5@G|>%az|#xd(>~M3;|3Py|G)BJ!kk*?M4`j7P0k zy4gVX*$DDU{3%q%xfd3{Kp5~=WL*vAkRTcDuo1v~?Ljt_=wDVH;>h_(LbFE%`SST_sb;^cwX%R6uXXwOKZr8_FLmE`YE?HGe_B6^IaAnqnsnJi_s zDomS=JLAr<_}0x;3*^R>5_7SwO7G1T!5%~l<)`s_fCLeW=d(3P=L&#>@dCJL2CazoD)^$vdsq#K|jn%+tA+lW`tjmSiQ#6y7q zargt*?JwX(-Ygn5YID81ff!22m3+o1*GMa_VXC-)*8sR-yRY!DR2jXX#<>6{2B-X!VImn9g|7q zt!ZbVpqR6awULSo`Q^2VZ^X9F`qQ(fz?w;|`m`XDgTLCcWqkkoiHnzL<+`o{h?guT4#^Ye^7`!}GrJLbO<+N&Oomg=E&BuUntY%Ocp-se5 zrg-Ahttcp#vCULZ^xZQJxc!yZ()5;-vEo+|wQdQrft_FkW{V~jMfWB>c@LG*)*wWa z*W>vqQg_FgW{Hf}%XiU2Z=nYegL4)BO=5<&pwMmE1JYSZ*i%0?*89Y&6Lnn~^LlT1nW$YmsDsYVt$2YT{nz zv@1w!(ax){>civ;UOvgvOYm`6H}tFkt8?wj+sa(1wMdz+_|~5j@do&8qxcv}s7tbo zN3lUL+mOos<_)d~NfXYr{2C8lT`!|qTQvjTqJV07N-+OQn2k$x90-q6uH3_6jnpT5W5vk5S&d9JJ!T zPP0(h2wF5f$BB^XN}esTPXsEX!%T@@>oW_6hfvqhZ+m|+M5KSOp3@rjn+sq*gvjsG?j{p!l~V4nD;N1+3TC&&Lft zEaR(Ok6UY#h0DKUH-f@<;Hbue0MD6gtsmt1@6Kh&GD7*YMYTsn-vcY}5zsXZgN(c$ai5Z?zao|3D8eL2Vk z`bs;gf#Juqedand4Q}s6E+Bo1k6cj-l#w3jYfKRYMG+c0Af(oKxHzm4=oh)2s zze`j^c;`wd-B=*@@_424mI;i?ojfIHZ+WdDZ~{0ccsMXNNF0%Phsc4x(A72)>ZJiM zFI^+{nNUXI^yol*aC(ND5=3OeHpdL06rv~fy8cu1pcwI!?MI+#%&y`y3k>x;l;GZy za5jGYZXq$3Cw!a%zmd3!Vp>`jFwMkMTS7TA9-`fINYu=>p#y+U7gkl`E8v-oN^Au4 z=8(>y`{W&cnR?_MByOh7tiY#ldExu~C*YL|Iv**kLJpwng%nG(HZYlEskf{sPX<(G9`!nOJ*p)+bhTE z*uK_wOy3ivA*KOkb&fo_AgOc97}EIl$X@Z-gG?LyhY8=SLj;HrbJ=5M!GSZxmwCfT z6sWFKpl9{;O(buCuEA46YE|as)mug2S4HPMw7CwPy1pDtR4@E4;J>q%EyXI``pw<{{;my{ZYX6f{q`= zxS?Q|SekaDsmeS$HC|({JWjrC;ouoO>+L3X7h3uADsuh#|k}6IJ!K;$(O2G_lUwjxM)j)eVf9>(SWYiIp{>8KH`n28Z z2#2>p1+r)BtfHd+<(Mq$(E-YIe%m@q>q`4x5=Z=!YEXm`{FuH1-PD#2+e zk?MQ;!TJpy@qUo-I#+2GT=g0BGR9IZlsU2U5K`-d2iV6=Yuu!L40C=NSZ=vpK(3#T zJGqU+lNGeN!h>YlrIj2(?_3|ih&6tN94vL^H{_9wsTL%7Lg3mkeIOIjFUSfZN!#Ys zXayN$2m1AI0V{KDT4%a|lexyj2(6haJ1#%DL%cosEW~`rwq5zfJwpL`(?G>aQB?ok zCc(!mJLvxr)ok97KBwu`iQfY+xU8`ihtrA|YZcIi4>7kvRC4;IPT16a0TT-A>iKXT z&$xp};@Ij}6O(k3PR-c!`-ST;c*FLHaaz$kb_dr5yFh_!Tjj^ss4NuE^Aza%sBTU5 z#qL5RuLenouSVrZ2_uk(4l%FOQ{)t*j%1Q!st2(jDfK`Y0!fO@Sc21Glu&c|R1r~7 zDy3$7xCJACgsP83o3mLU1%SfjW}|tjA8^`ytvI6vAcqoKpMT~c5Lp7WgKEMiK#tW6 znZAJSi(J*$V2Vcb^^y3)S;a? z0z^ayoTPS!93SX>--?r~Q!oHv97V=jN6&+=n?tVRZt1pHwHB)B1A($Wai%&_wjgYP zB^xW?GG~ee871C>-r1c?ESYl!q8K}_=Tvr(9EO73;?* zD}OsZb2+LhfOPg~Sx2F@t}Yd4uWl3-7dKo&oSg5k{^z6r4KJJG{qQr+sdE9OIBCB{bY}VGG{co7wFdeaM~idZ#Ww5i5E+Pv zhKO99b(dR{iNr9Y>8|wOI2K;UCxc7xGSia~nSPzdCn$q4GMYOu@Tw^o?hNAA zL5oF@y~w^iP?;#TQ4C6`l=^Uc8-1c7-ixt{)=39@Xm=V)cOpv4d3(P=tAbMR-~naA zJ;Y~|-Ul3n8Ff=}@xtva1+n~TpwaKjZ77xmKD=o|4m?{QvGx2k?O6xp$(x3mOs{G& z!L7+io6D^ZR*&*|O;6Y&DJ>F9{TT7-*>CsS@4s>!g6-&YSC#`wYWhTMFR$$#0SlVk z@JWulIhZrL<>U)0+>53vCt=)o^~d2BTI%wx6_D&>$AfMSNR& zrP^rS0(Yoax1U<`i9VoMm#!Ko+2t>dqy|Jt!tmXR!ADU#9+#!p3|yuW9xM6G)Nul0 zY=iWwjYyxmy{{L&PL|$KH7kH4o=^1Y&S($Gzb6saemDZa0ohUzzr_j@Zp{VQ)4p#G zc(M}fj$~mD!6iADISp}Jexh7JH+YmRSzpP^(vYJY%mvra*UTFm7AkRs+jeZ9T=#wE zz8Hb3m>8fYU4%Hy^IcD&^(BxuzH5-X+Mx&Jlp~#uM^F>D50H4jOAfmT3XwGR=MCxq zC+hia7lCu2{4p}&dEN4t;c2jG%I7a%ITw!X@N~J$m-DSoA{hnMOf<7=sC*P9KE3om zoKU5qp%AZ;5dN@&G81e8ct;x$NVj9SZ%=UG!!b;}#pgY$F;C$hfAy>=^?P%h5JIDn zY}&e(1&59ntCI)rY6c`uzp5?_<A+sqDe=nloli&U8>`VUqdKeT=bsXzd7B%fuQhf z5P**yOZEA<7Zf-ujRbkE)@4geZ5er1_0Jkw*?wv96a5wCsM5mDAntChYtj{9^=1oS zo9Yz3{)7Rhlj}N!iEsKJI4b_WFaIWA{tarO!qJomb*HqRq(j|PYMMrgJdU+mRfd*W zlU7YbNr6wCSk1)?@tk~~9)v&53gP;;Rk{7Yy7b>5BQ*+eu_mb7$p6V=IfGH11W+A^?1b}d=QzVE% zc7uHL-IimU#sB8{aB6K>q*i`I!GC)K^*!L&(thP?h(9r~@@@9=si?!spH%=S4%x*d z+5{4Ebty}i4#6`d90u@-n>_io)W7HRw{ekfelImc#YAgb59H2OeIi`HjuPXPwQW-% zuH!%20-};2m$a^uu4uRe*6lTlxE>zgv#|Y-XM#-xu^mQBu5`c`Vo$>Ps81hCIR5*$ z|9fm=Twsw%NMa38?n3}23Q|Kz*SB2wt*dnFr`M?PwN&_HF9P4fePA^N?A6Dqe+A!v zZ=-*GF;)$YCu3;zBHA|ZkWRv{>ezoB?0-I@qauuF=C+VCDwa0Sg4Mds%pm^fa}v%D z<8d@kC{=|OVY`dA*!*~t$e*{EAu16kPktwbob7$6r1K?7;LL9U+`lJ|^q#8^&?OOR z2Sh-O9+C|2*mTHRc-1T2T{ATwtLUFu0o56jG0MPH7wCFDF@^tH z;Qw9p8X6^QZ+UtRI%*vI-x`A9N?4qtwnvI616-HtpC0}B6E2)(nEo@HtN&eox`>3>o?mHVKrEtrKlNg{J2JIT)XJ zD6=AFCUa)Y1m|JP%2T?Cs^yYt<|=GUkg!@;hPxuWpru}$rPvGolr&ThWxJj_CnPc_dU-$S^a z8vab#`{hCOXFgNN(8La(%>DDssUT^AiLNUbHs5p}xge*XJo>XJ4D2DW_W5#eLy(;) z<%PL-u8aHYu>IEzY`(_z2#i>DsRJry@W$>yY3#uliPrGT|DK;;ukAw#arOXzwM~Qc z|3R{5(s2QIhfE0PC2Tb!N$8lqA;jIQ9WqwMB1w7~3ZcC$ZU{PWyBMVCfV z$li4YbOyN8;Wr=osXsjr8W9U@hrhDtkg!A->^*;t5tcuk2>5UnP55kOt1En)!=r{{ zrFr0;;r2fsq=cPt?{LfAsL$S<&NWzQvfS z_n?*N_|DCx6^BPkk-Kx{*CPJs5|2c{XB#ru&d|YVUL%@@m_SqS!M`m3f4&2zt{Z)H zNCeI1ZZJpmhSU4VR<>w6zYT2j*Kj@<-O~#xWoNBl(k zU0yzw;b2i^`io5a27#( z!|ju2v23xhEG-%JrT?`FwqA3Tf%ErBgP#}Z+b%!AL#-`+`@_Tt+#SYa=lvkEnfRf5 zvAG4n^=y!vQvS9K%(h)T=Cn>twe%)7ke=tV5Ge}S{*hP-m>RaIgu3S|^zth}?a!QO zZ;_@TE4*@8jONetXNT^A;|W${=F|ql#rBwwkOv}hQQ1d zq)Q8mXj3a!5qb*}RCj00M6m*(XP6RZRyTr{D?%c=VmDVAd|DEtVAnvqwY^n0SOZs z^~}>rWydCY@&jKWwi0k2kT0v%yRQPJoAI7@0)az6wE&(%ko}OShW3)yCrXcm9L0xr z(9V+EBqyQrja(~PHi(&lUg~kAoKk-B?^D2Sa)yLsRi8B89kN5CtNH-T%Z8jVI^nGd0=3;qigo-_ouNZP>j~- zYS#9jC;8WUuA-yBv^q|pe3CcFd{J_j83B?YYH2ehEv}xfzTer&a^Lj8`aC)DjEW-MB1dS<3K%P;fCahAbY!{jS*wR05l_Ah z*Y!Z5o@&p~=m~nyczio5_TJ#jRpx6t79Y}+?v%>?NJ8FhukKoF4RbQe8e4p=y*&}tBBP)`LYc>*IG3bddyle- z=Iruk2Yn5uDMm5J6gY23TyoVLp>5>s+M1)n(CQB6WMQXSdo~VtwP$%N8%WU)Iu^Zy z(?)l-{dF-|CJ%(>-~HK+&1buDRENjG=tv06>3!PKXYncFIGEy2naUUBE^%!C|RX@fo-v; zLgLiyaYiObXdZ1GgwRTxkez8S! zHD=FY3#9N?0W{W}D%k@7w>}ZL@TTP3iog$)1D{D$_lv85bnVPDU@jaHMOwgjVP!Y0 z@I*<2A*=yJjEEBI5hgaeR{{X#8(+`cnggYtqG3E5^l^QJ?0P#vU}=`8Zd}ZR5#)`8 zY&x5&cF79A2(4h$FB=8O>Dqn_$UclK5Hj#}eT96Pe|b0b@TAii8iqcQPIQv)Y2Uw& zktE*b&3)DavaWka{AkpUdc^VS=1h%V0wSePOjLu0(A~Lt3F+M@H zWr{d^r$wbL;eV22I@M&OelS2T2Ls7x)#(?uoi?@UJhm-@&sG{6zuwm zXS@bIz)`=&wS9N))#+{_y`{(CW!Qb+=PxDLkfd;HN1E+GWgik4_ub}p(qFj^_<4Mc z$1mRQ38fIRNaM*y-6Lm8qWCpfg>Yic^y^kb>vnbhteErez}uh6j`GoH#|%_|)2`h^ z%qh?f1r`PPNG=ba7IyzPA@0hSKFCNUfI5;7>x=mexUSTvXFMw-x4` z%OR<9lPHC^&+hRV2#YE*;s6YqZq3)^&PD$w7_pRU%9pc-E?8)DpKPRI)~r|Y=HQJdez=;K=@#RrnN=`_H*(Q)jqeTwAq>;3=5SSg20m<8Hv)al$T?b?buogM{jo6Sh+@pKqG74qOdoGCYH*Fh$UYa&bb_j8 zCB=_NR|LE+nlK^vt%S%cbU4Ye|FdAiDd1LD)XU$l_7zgGm8i2oqniS3&^YnJJX`SC zPJI3~?o$=`*@XjD+nVLD3HDdDo5co*@Fn;0f7;elWNVx`FAr*)UPOlmK8ZVZw9Ud5 z^wNRNKnG9hHvhBBIv34g9ky_qiCDUMKWb47k*I5`Hp22-BeaG%puYIZ&jm&M!U(tP>jq}JDw4})HgUedB#4u-Tob}FH|5Kk?q zlXf&$1kAs|8e_QwpN2Q2fPPlbzRj9@+x*k%zrKuNb^z;fV*Aw@ZXS^Rw6l(#x%bqQ zA3?Wz)@0n^aH|!5dyes64>yqpXbJfbK7rDN{~ReTsbcPK%$owpX^?fG<`-A_c(FPi9jmG|^ckx-LHjLcpT8KlE&-#bIP;{QidaLm~ z1mt47N>!O7h{)Lr7-}IRzvonqFTCt?z~`chN4$s!Ub;K~{1Io@L>O2ZGGBOL@leLa z;@HdWVZbRz!hwC~E9>S9Xx%q!>bCiZe+Uf~<252;fpp_N46}>NrFHGbVtu>eVU{#1 z35pW%hFyfjwMBuIWJ|a9ANvt?u%kb31BUG99Y?Tmujo>M`AV!~AaIcV)_pAiObX%Ygi4r5{#0Sx+ZjS5fivt zFuvSQ+V=(J^eE0&(jvt!+&pk6qL`t9%}1EOBYpQy_}JmIUtg@xp#fy$=Ja} zw73)#E)-2D>BnST%UG|<>3B{&VSL%ZlEoS5m{(o5V# zhXW6DRpylVZYl}7oGVGw@m*mH38StjpvVTwsOl0wm?3&HYmn`4R^k~*bX6CURKV~- znKTrxLb&Lk8x;lnwkF1i3UW-X7uTwLla^OOA+9egPz5q;avwbyr4BSSN48~X3xDob zcaoB8N``^=iOzOsVUk%f$}fZ00GTie$6gjh5y-2M1ME$hhc$Q+Zd79S6dq;hvCt)ON;q%2d#N!gljt}VDe-&*x3zhqws z98?Dpl96v0=C)$y-SBR7qntM!w-8eQlxldqM_mcsaIM=z0K2x=Rzm49MsVg)Gerkv zYPJ~ZwQPDXdph(J};nFWRp@4bJ}Mh zQ)!PFRqfB^DDu!^B2QV0PLRUum6bt*>_27Qa#^-p=&O~!Ur1SdcO7nY-3=Y{LU;%ayA zog*B**P}PHs}7y)GAz&dX!td6BI~@f7_F7z%TFKOpB)m8x!sn0xwFCK^82%V?4fe@ zpR@m~6%g_WMMs0xZT?t)BszNG5r-*)4nh)EczPb+NnK8tg^3Gbo&2hNi~7Z7G946O zipU&^MA&sm`|)Mhp|Fi^#_IgCeLsD_VS z-x~JxYW@_D2CbA}deIj)inZPLN;TtPrn_f4pfD|K+@+tJyZyYg`%y;_ZzzuO6XyJA z+<7z~qz6FPWp&~;wb#N|_bNE^%q239r)|*G^}|(vTU_JXTG23JO>F48!Rem$+U;8I ziOC>Gn;aR&mp8xP?TVs!P#-U7Mg3o4q6XQMS*p0+)&nD+if`O2-+EMyE;~ptdOI+N zjlE;q;Kg2!dq=ZUsU?>L&9?K%T}{=$da<@v74xhUGL<_VDa<-KWby^|U$-s>NsMRAeCv6ktfF?29{~H&ejILgX*O zNB_0IMy}LO zTov-Ab4nh!#$r$F*KPE3E_0v0!j6d-xt!xO6>D_7C@($f0)r9I+Or`iX)rypb}-%I zep{m_Hf7J@Q?E3Y7emX#yWlMKV%I9+PYxJ7JFz~CiW?&4jq@3`tot|Kf8AX8j~Xbh zy)U!NW0RxbkVK(hub*SX*s)E*IWbInFf8vGIYf@8#Ro8PXgOPy1Djar$wCdTw z?3n$Ijo>HqzQWk_Cp`)eC6UM#XaHPI>1O#0(aFGr8uU*_=izx?v_?QzGTw18Tdn@a zE5sjXjiIb0pdgc&W%PIGs1IHxKZe|T)8wCUBcp@XY~I2wZ$GFtE{jZpTinYVufL5@ zVAP4Ew3WWr8M3P?7g!8|_qLnqZfJu`%CgVHSzb*bkGD2&uE@RbgS zopu>GbJh*u`{`eji{?SZl>4BA>|i#{Uwx_?0u&_V!@$$Rxcxl>NQReR9z%UX%Z4T6 z{P5b#`1>%&W*JG@z2Z63K*i!FGyq=$Axkj1GbVruf#Y| z9X+5rEB?ZFHhJ^>!q*PYo5FU-f}u_rdLs91Yuxrqejrpd<3&Fw+2*;tgeWIHu2lP` z?N?GJKIR%Ngcabxi-{gIF9y45L)c$@dk&l+ z?g>3OK1~=hM0lF-FXTy0B77|WZ6OiTQH!U=Rg9$liWqJ(8vlJU^I)ldgOa2_8f-yi zv~{Ze4v4b$6COOK1}$CPX9;XfE2*qJY$4T57mA|b>6l$`WcV2>81(UTOcWN6w+}fE zAHbI`%4gBVyjv%y^5@%rqJ1(u>0|%?(=yzjO0o;fBJW|XlG*g7x?yQWAD4SoO+~yt zOpR^guQ{sB85DDFG6{lbvl3$%h<7xDJlWt>6C~Vz!zMY(Uu%MZ?MXWd3>7`CPtZHf zMWDE-WM&hPpy5Dhk!l}AkSqoj3R5^>%r;SP6}w&1=CeWz8i*CK4tx9@Ie0uE9}}=k zb1im|ekQb8KUvp>e_TIZ=}TR-X?AF9yJX-?y=FY#!Mt||R;^aodB=$n#klvom*0Bp`_OTxAOn z<;w&LysVuF_wuzTKf_SLpdZ;6!EwsRel7mp(UnF%pCYy5E@P%e=xhu<(|-1g+$2Np zkz$?KS(DE@GCp_{DAfdqPe`=HUFRyE^UN-j3o2g$uX%QUfT`1zyIs@_*(Q5Y){6G$ zQ~Obydi0{iPg+&3{v2dR3osaYJ07|)g=PTZNr-p<6*Rr})5-P(#qZXW(t#yE<(`U= zyuGdS<pj!G3=m}dfvza@eR(spv2lg z_l+uo*IlluwB{qZg%H)@tE}Aok9SZDP%<>rv!1+~T}?#6VS=@~3O(#I(gmP`g{B+h zxj@ajl4H@dc+{Y@Cir4lXIVTjldR{DbV0-l^1IsjC{MXaT#g{4LFc~JeDL@r8?|jasnG7NH(S=!nX06< z8(hkDTsdq$pL!GXPXC@+-+$uH1t>Nds)f}LqL2XG=8w3Mz((N z0Q5nMS3-ih`-o(K8jt`cUc77wI2`YJ2xzTm)(4s)kRA=91(>v5Jx_;P)t$XZ7rrV0 z&B6`H8bm8BW0nXj&4mEg6>g?_Od{C;;&g^SpXorQPohqMIr651Y_Hy?Tus3h`0`(# zNp1!OwZVE-x=#N`6%|r~5(xt{7&2Vnv1`w6wy>dQ)55**Hz8s0f0V4c9Swf2Du$Gu zbWgHskF7gfKRd5{QH6fit90~XDMn^wU7I|tsO@fNCms3P0F7%s&_o$SE=HX#v}9q) zh8atNu2NG1e4z@uDY(RUn$oA{N5Rq^(8q-qQpg~vDOh!! zyz=5PBER|Yttmhs7It3$myV3-eTH3+p~~q%0OR5!X5%1enJ)^Z5iuc_F-kMOE0Z6@ zC>wrA4h5!L1#tJxtViBkzRjTt7Go+)@k|oqC{ve(pshe|jlq|!TXcbEKJv()S>$t@ z0}fL13rL_O4wrBA{`4iJ6PNG+PKF0h&FFribYw1gEF8Vk-CgheZKBKS#xj*~=a{|; z(Vf62+CZ0Xhnd)?0+J9G2TK4r7k%;(P9|c8MpHgyRz;eS zmS*@o3hyd)&L=;q)?`nj1q`ssaIfYd$e_=EehQ8M`f}g9eEJN_+rrel5dm$K<7Ag03B1k%qCESnH2dx4Nq$3=51y_ z_Y5iPBflui^HGa1ZkRrJhf#!-z1I2Xm%{~a23s_;ZqS%ZfQ2ja4q>#Oq>PCEgcf<= zYN@Q0@1pzJsi8`{UvNC7aG;yWnS&@s{UP1(j?>X-iP?O04Io1Z9XJdWA7CE+jsQ>rO$(sCWpP+!NTyF@>&d z{d!Kv!F^NfvDjlUz|2KlVofkiwDY)+^uRHK%?&UW`iK;p?9Z)vfxeiR>7SRCi!Q6( zWe(?Jbpc(Lzu^eu)@2>iA&dxA$RP1Fa6H7`8rD402)ez?AnoM!jtN{f!!s0ZLtw^s zrv92fvj{ho_YtSAdlpYYr`Gh=Gsl~~+iGE#>OpBPYrSW{3mOy8G;NwC%_dL}+7}KO zeF9pW%LNfV$3(J82nByzF#vvhfPjbG%Jp6-q@*BlpzX-h#=JTWRkP1 ze*laHKRmjpXy6Dn&gjaDzE#{Mkj!JR{C{0K4tj5nMa)mvJ1)3P2D2O5Yg`tRp0aPO zGdAg7W3R~la)tATuCvPSkE26UTDxR&JP3!NtnnGmns z_vgaUM+@V<%3KUu?_bcuh$lyKy!9Aj4G{pZ9_9-;@$`V)uk6!Nfp& z0$e|>SF1!r;hzxKZFB)#(c0*o#u!grj=4>Lp|=BKS|d{Rw=aP~DvU47T~|mMx_rH9 zw~~OrH>bx3w1&=F*WdqjEY+U;PoAXdxZo$C=)+XBA`@Eb_#k-KmD=1}&?c7UXRty7 z!#o`t2WK?~2A`xLD-d-G(yOH_8T#%juM?n;G1Uz^+CUMT1XKClQ;tv-KwMoP`6x|K zd{)xbq_3zA!FGCbzh*Q(6k`D<(!DXs+f1HbKP4pA?+zd7gnKBDK*OX7=c51%`it#uuv7BJPUE@Tg8yXnPok~)j?c>mHi zSqKPeaHJb*6+x&IRjZ6f#G~#{6<&)1(-7E67JO6hY1p=50RHCGpTjC;fS90u=goViwHV>q*c zoXjy7=3hWd)n*a6fig`X^H*ecj)2}JvnRQ$2WJ4Dz$JIv)w9ERG(Mm z8$hn`>*^A08}m$ix?us**${%MLX;vk%G40JBj6A_70ogv3X@@S9E2Z@#T#R8DMI4$ zRN?Wd3e&f%%_WZ3UjdzB;n4W(JWhGhLN@bsgB0w}7ZBhrgR-~O`+giEU9hQ`dIGIJfi*_?R;!~PqfK)cTlbm6;G-W|uX#SNRRwVWxlhWAN>rnwzVZB{fZQp2%N_$}j5 z=3XIG9?NzdQ4@0wTaob7nEl+Aciazf=MdxrVJ@DI=O6?zkmDzVkk8A8)4!f??TMKR z_q?tc)eUuC=8Wj<^(^Me4@d8Ig%Z%}5QHzEkk2-%;<%P+&3A zywB&H3LKrvQH!MM4NPSE!p^9NCpyf2HVhISWyy?veuHePDVqzLvodouv;g^gj+`jj zA1Q+=ZN9g{yeu@m^IqSjfbrkg7XY;~lYcIkBuqecKfTm)Q0fFAe*`aWC;dyDLF5bC z(xn2U{%A|Xct#{_UitlwUt5~>c+CFVsEqW+xeH8JJudpp$XwCjC-@^-g4ao)*NvU7 zUc#M-+z7zesu#I6i3%avnG;zr-pbdNf7hOA$UyE8yAEG2=l!pB?My>ervc8em3yI| z!bBkTB$YoBjC+gy2$0?4WxuuRYMD`>abCX54h5tp;jE72Lb{3d%13>(U79u7#|gO@ z_u&2g9Zw>2z#}w2MA4bjA)T#`qL$iXw}e>ZSyN19HoA9RCk~&;=~tc3vAwo1R7=W- zPyCo1*GE?CY)ICA&ta;5WRx!8#8w;nKRB{iZZHtf?jI}ULgj*p8Qj@g_N(bzGGJRb zWb3Dp7icxv-gHD>3JgAgS4)@~nj71?)_?lxDk`U$c`xF6R5E&ytool54E(E~hugzj z|6w=)@6Gi2#i<`qeG~NU4$&X~wQT?Cb9N`hzpA2a6!QB4_jA4c_scwJP}Cnx(AbaOMaLa>eOLeKS3ouWzhAR`=eG#7 zgm`rWag1XIP59h#(&qoQmv+OS9iS<}wX0=z!7sI^?w;F$!t7sHzxAt#77F-src*y| z-f{G3y`Mz<%PZiuOrh}Yn4Zeh;YeMdIN_6ANdNoNf8I9SmDV8M#(T$RT=v9358JPn z;C}V~f4>c+$l_T{fxruQNi~GUigdsrT4P>l4b zV#ICPHIz}fH&Dmph$R2#dhK+F_g;uTZ;$)48fLh6g*)r?|NY5^U4e(xa*>?`r4|V& z&-f7K{OoVf<3CoA2!kQg(qVuv0P=-*ailhg#WlY`wN>aHOR^I>Ht-Md+3+2xZU3uWQoH<8>wax5I}RTB)L;4}lApmjAPzA}R2u0nUm6tIMOuB&#+ z4%@*$Gy*X8ung6|B z6qHVpfdzB>nu%~&WmP?h~Cv6FHMr4HuDxK^ugV;tsv+Z zURyybolUXgnk+ZK!Fxb_;Y(^pH>i7hx(=+euyBD2sl5p_m=|F3uxq`gr(n8l6&aaX z^g;P>3(Xm!|9WQ15ZURuZ_Gt=1z!UB?~kAy^GR)~yP~0#n#hr*;Byp6s_OvF!>Qoz z%do5JrcE)TS7OERJ0u4p0G9T4GF_w*HON5NQmt2r2G&V6I#c+qD`fsXTz&HuX#ul^ z6y49&{&}`vuM`i3$xXnMZ}=e3axV4)JrM?>Eif@PAMm+5uVRFdI9W$AIK0{+u_Qn? zm>|H{D%mbHBX0va>(a)Hpy8cLr&?`RQ>$nbbVs_A|ELcq@eGA2LZ{8-? zjq2U1vP0mmmC#+9N}TvQAYOD6MjE5dfoL&juBm??9+99!#$F#&J%r+d?n?cU zpk+R)Vr`BZu=aaF35r80V*V#pBqb}tVc8YyG{88MUWI+OV*uLBq=;+sxt{Rozo$Sl zCLRd@E)4Ll+*ZaaVFmVHEBS_HXim*>?z148+aRB?<$QsKA|N~!L-Vii`%_-iFO^5# zSRXp@)n2@<2L^Hr?@nYC=HX-zcxP68ss-s+I`Aa286d^yQt^;@C{u}~s*xmZ_d``JL!h(-3X+uu-m9c} zs*CY!=23Y)OuxD0s|hMz19JG}GFC@K;)uZqq#MMDj~n;or6F3`XD!G;JgT9}3v;lp z^!xYKPkN1E9FHl>li{gnju_Ky!#M28#7D1cYiv$Dh}$m-@7>GINhxq#aC;aCc-Dg$ z>vsDHkdu5YMu#N}Yleop9)y@geKRueX4kdsQ(5VoFgQZ~gcPSEPuq-LZf!Y_7%tn9 z(zjYix@HE#@d^VPupk)?Ap00>u5^^k zlPmqdJ{yVZSvNw3k`3(U<|4U&BI(EQmt@IwGqgGvhhTCkw1UI;=S;< zDPWbFDfp3;7qG2Ju&E1-;691*sXMWp9*Fp~%LH=pXDB~ZHZ$950sPZR8?qBm76#8H zdQ6AILWKm*zXe&tRGfyd`dc7Kal0%}fH4)IQ&(yb*`ig6+lVL(6kGMLwqU8k;2{DQ z88z#Xj<6;G)Tg><-Mmv{YZ!aMQ{n3yUY8|{YvpdG*UY4KKXCKH`m|eBA*|+njXSxJ z)(%jz^1xo1)g>hcPqwfVL3N5q~Ok$`8a z#PS*Z#j?=wkv%@%wHYIn!`TZv?mfV^*qP&*^*`{XEkK~_fxn`BiC4RqulLhMSCB8) zj2T7*&$>4VwVSAK1m}+{YD*%6B4kyF69`x0!*W{z#7(-lU6ldY7C}JqIraJRM;fad z#wlTUaMhk&T}#Dd#s-NEAK;^Cx;=+ty&JD@IK0(9N2IVf(*!V;aFc-gp*KA>_F;pawqgi%W7c*X$%KJj&Kd;L%mA81A}gYaJ?YR>~$GH|C&ged@gBf z4w1jRVbf0h43rg?>{sK54OND90S;tV?tT+r8BhnKZ28_*N08J%U~c$t^4tf6YGoOc zc|_ZpgXT0+QFe^b`Gof1pS9{gK0#El5uOYo-A=lkM1G{UZpQD;H+VYT-h>Bp3;{TW zd;<$6bAVnu@W>Y=nVjG2UwsoqYYag(jn;L(8NzOU4hIEIEBDz{)r>qy>pH=@ntX!9 z9D&ib-OcgO! zJTqVEGeIy9FV)1luI^@_pOV zHG624`T?aE5$>XRSBq*Cgp^T8=mK;toucSb8ok;EQr@CbkjuIb%%QeKVvpqPfbb`Z zt#fX`T;p~8rnk5OYKVCVYGJx5-uQep6-d;?F-z-69~}%>mhz__uO$0SF9UrV-!&&x z89-NcoDbtoF$#*`$xy_}LlNg0y%etB_cMkT9*^lih_-(o;H!a2oxaMsI2Eq0+D^|m zz9_*g7oG#sP^atlBbDXuB>mo;@X$LTld{eKm;z%MXm=JYD?3QEon4St)+c5!|18c# zB@Veh($!gj$>`IvH4`v$LKM`B8M4QRfprPskk-jo;VUq1oM!V&7Q54}C{3%cs%iVM zXF+(4`=nEbH3T(db#5t)0s`mA6vKY)vwJ~LnIaN5M}|jv-YJJTaI7@^S@Yc3Rp24F za&oB9GSdV$yJ<%u6D<^sWs5adVOU@a%CBZ9VKsXaQBKkY97+=y@=r}7KXYVfBTTka zCP%z(quS_Jq~#srsj;Nz-&@KeQ$#Mn zZ%q_F)-uhH2)!$=MC@~T5G;r{l4aYxhEv$e5SV2Z6#SN-l`RJ6!b$$~?!!+a+=K}l zx0#xcO#_~Ud%eo-bpW~Osp?>^_HVpIXOqKxH@X>n$!ZKBw;_&_AUH-gaoLuX{op|} zB8M^hR}c>DuLsX$%`AYd^mSlAA)r9Edkr-1pIGMn`c8qN1G0*F^)P720+*Vb3!M?RZd^!uE`8 zeFxNU3fY6cn!zCqxkNb&E8uokhh=OY2F+Z~ExG6BpP~0#@85`v+Jy zEN9ojw3Kh-K%o8N$v~O1Euwwy%Oa6_%K~_uTes<1A2}7jIv#9_@Iu(!V`0&5(b=E@ zpxVask$$k6Y8nn`Lxf6(^{Nh|KwaBfzEwy(^+5k1mwFoMgjY&93M@HnC%rcSQ^#Cj zz7+}QC_UFijYk3b<;0&_09&gq z4Na(YkMLlg(E>J)x&=z&(`Rx(SEG;4d4j8hPf=Ww(kY}|5QhMYo4W2xo7ZSn|D^EZ zmDNO`Y0F4or{%#+fGdO374s^`Keve(bgg8Q$8}EO{#gLEjgOQ4FlR&$_x7ueL%Rvs zrh1EC7^y$Ju(+tE+vg4i?E*9`3Wtq=uK!I<^T@($XD#*y=KBu{@NZ4N&L)#=j$Ls~?a{%_|8qp)=3xeO+?MY^6q6KI?t_JsLs|fdmLdkKehD3$l8eaLd{!`L~*< z43;~&Nt0*dX+bBLnDdNbOEq$uvnR+M<(2 zIqPP@E2hAR7|x?I=eF+%#$_K=iD%lKlZEUoN;je9F#(Bju$t2w0{J4lNh3%kBrGy! zq@<$lfi%GjoI-mnHpHOB2x&u1LZ+4vi~typ_lzun@$uIV`&c4+jsobi=>{n@_JFJa zsCqs!T&BHu3u5}z*%d{s3hSs648C=udC82P@S3VyT$;RJ3-SdMQ)!DvMD`_c#w`GA zaHkzrKjp2+fsGRo8H_Lf@-cM;1yq zP22krpNcZ2k>9JT&t;*t8Sz`mrvl9pqA}OJ-!0ns%Mx@m0nERA!0rFu=lFZ(0KHxdbQk-C#UNIo{XF?iMP+{R?W8`^&s-O-s&YxKl5cCi^=eVsCmg`? zTyd4sIr$_-OSjm-z!~hMOp79sn-5u_;$8ALO)f@SxnzOi-ipePhasD^Zqr_~wK2ul z`;aqnd8yxRWA4$D#@zJyZ6VKI2VYwyLf^flfU zYZaR~tO&v#In^-^K z_EB(=<1Oh|N7sI2QH4D?Fl-4nqRiyyi{;5=F7Fogz~iA`Ya(UF`o%KaeIN_G+$l;f zLPpc%h<&F7W_nmc>TFTjn-{0vKtTOmNyV)K z-k5`}bBjPZ!K7Xm#uzKgh)qI+*RDhH;a+?T=$j0C9xD^`dy~lZ#t8c%c7te?CE;M7 z4awD|M7Nb`z<$~@hRw8y5M{G8#UW^G7tpIlM^qomfoashf;+SddBN;EKkaLzb%Q{K z62IF?q9_ALhTKS^kTLavZ6Tig*rIrW4h`0r`|w2B-m_>tPsFlgZ^s$4?uifJg?6X) zTaY8N(O9qKo!aU4XE37+;l7z@T8Fi;ni=QZo#ikjMyv3j? z(#N%_3+`-YR}W#*X6o*aJq|zFOnUq+jddX4v})~xSE<}S0&9tgXAQN2|8tO1FFrkM zf#~cyvP*JqKHz6?S(!mpZZ)9;X|Fp&Evm`Kt{KPh9zwG@RK8Xo#Q2;yc-S-IUfq4_ zc?LS~E)w~G1*>5vP9Qquw#+Dei->0_fcn63$tXE?r9G1wS-7+>zEtLJUVaPrDRQnnTay=(HtpN`$ z@rM%FEH<2|Sus=O6L4-7Hv3E2xu&MFg$kqfv;G^%bC-qwCz#}ik%u3G9!PT)YvfYZUYuKj& z=2X#ajRt`$YkQ%VV7DGj%{MTl#F!KEnTPd&le-n)#>SIn4dBrVWL{npXAH5Zlet~Z z*^#hG`v$v4T1NL5ox=_FR_Jf~bK!a`dT1z{STObr@6Qktg9pG#Cvt)L-7A}3^w6VS zJVS(G35ogShsR{JQRn7^mlG9gSGAX~VEBp)ewZ4>+>srqL`vSIq;44xSiP@)CcQs!U6h^o*^3=p&H#)$-&qkcnb z!RJSPtMC#%AZ zUuz2B@C>}x{Ck3g57Ge5_m_;0y2glj8?9E*o5 z+Y?~M5CH(TBBP^-xLvVta&bGU>4}0<)+6%vCV*h=)+f5gQXOwZXI}a}+!azvvy+f% zS-!0j)=S#}H&}}{Et~hgXSj>J>j569@i4@p4j+1KFTVPCkz!-w97*`@T?)do#9g4? zaLk#ggW+GLX5YdFQHb7xby{OuMnVhF%};2Txm3UO*37969$_ge1q~52V(W%emqrCI zV5;gb#I!I%`doVXTJ6WQ97)cK%iC> zJigiOp@@|P9=TbK!|StZuxG3_t?PLX$aPLw$Ce6$c-u=I|D#uZ(%OW9kf|}ubS0NW zTk%-Q$$RuK!)pjt-;aYT1ND{pTk3+R=L+`;FX}(iyoqwuj_<<2Q<-Uz-zd;p-{c_M zV+5SMrTu?xxH2?<=1jULii=_iAbrlnP8+n<_ZXr;w+f9X5GBO98m3c??62cqd6ucE z>hJ5%846@OWe|-GMbaGf0n1;?SsLGw@?x!!7s{IwGlyGFjm6M#T0DnD7X{ORIAk`y zzjPKOj#WvyQR=+7PrDsWiBd0_06XT+KH4u0<(~siynyakMQ){s7wq5uW&)NWA-$UY z#H#YO;IBm>^BJ=|v-m9omB*k@QtP9PTDq#DZ|GZ7Np!1;LRco^8hyieo(1(M=rx)R zC@*$xfB~0AE(PswPR1d@l~L8#VMtPIQVVz#_dqkjG#|2-oDUZZhE;AeosRxGWBt`S ze)y@1>Fazr$IkZq-kV=;AC3I8c{pSb6aHn_U6jJOvQ!8v?ghr{TdfEYAu=db%}Qpa zzzeEf*TDY?$Rh0WMN*I5J1#Y)$d^qDOn~dx%HXcU zStWqlTADsYn0tP?J7r3^SYu+}9U`hWaC{2D(&GKzWjU(IlMLa7E5@;FvyiS7Eg}{V zXn7F4MU5>~!W^yK2M204;^ur`MmyUf#Ua#DlPn(J-TYwF~t~*fM;|c#2PEoxXeUYXL2OjZ5HR?}8@s<$v*$yaz3idh@&pw-0Yz`Det$&W^hQ*n$@ZQY+spLNHgwMR#iph(FXIv$_0`w7;@$2dj51 z2tn=rra%XJN7m-?C+{tOZ}tYV}0qkF$9XXB$(yh`3~3j^h*yq!9c_m zm}PE{QZF7AG$%{{kPW>BiU+`+P?Xr5nFA2^mxLHUPp-1slfBxjJ^AM5$D>`czml52 zcO#5|9oWV7mS&KXqU7cXMB)laXeaTwH}I$)J?nBe%h8^rDOG6%{jCX9AGakdRza6> z_|oW~#I2eR*cIQt&vQB8S|Mui+l`dWEhSNga>C>rK4JvpJg)xfoUN{{k5;jMF^M{! zo}>fM1$sTo-C0cHIKNr~`Pc1U9`X7HbCdM#OHgI7N=xyu^ zf7i?pM6FQ2%dh_v1WBUlOj6(Zd9pPtX!k<4;Bf^cEGUASDAux`;?ZFbXTcEEuZqYc z8G8pCu9Bg3ojWlpe24GYu@e)V)8{77_FLYk6(;5fHXF$+}jzW zHWGNc;S|11r71YBpx*tp0*mYW-!)l&7lx_4=J&f6?&T+g`;*vMv3p1}T+xIIid6g3 zG3L8#Vf@&1M7?`c;w^R%ONUrC44t0^zgWjSH?73*szjkl ztE}5^`uK?_1{=^3l{fCnel9o^ecb6iRxd6~3#d_OOyT~-uOrYc-8M{&33yVxl#-44 zo`TqtI4l=-elS9)2YVsT(p#K!ga3El05quGkf4Y5tsqO>Sx}Ai*&f~5@mqJUnyiUp z6e|>Kai=UZI6ZIwT*96Sl^T)F&B8JZ)#nc!21wjlzjsiqIJLPG8M5evK1rO*?G0p; z8M~@N$)t5#N-o)8`S5pE?XoqYe8n+wjO0+P@oTE`H-(U!QdBB_66ugNf6v`qTK9l; zaD&+QV5Qe(7O4R`e1pn5GN08Y)B4!({$}fZ$e4Z9*0SE08I3cX&!3{4F0AU9Z_Kb{ zbBRACWplfFvE!C#G!Olr3ytrhA3f}N@0Pwk8VeIyGp)~0R+-)B9ig%AdeQK=3q##` z1k=59b%+ud5sm;lO~PX450!c)iC3JfahLC~-D5d?zoVXWJJbeY9fP&wtE?wa!`N8W zH35h^?XV>x%kVq?q{uHIl;yfq<2_tPVkHN8ty!&==I>QGz{WB3AncNmVpWTH(via454lS9x4;Ut;9*w`=gz`IGE=zgk8;bIE@7Myc@=S|Alh&dBOxB zf&1HMECk;UpQc1ou*cM1vdkDOAGf`f`9N@G#WeUK7cgolPn!^vFsZ#Hu zkrmu+b40w{#@fO^1i_d>UIALHkMsoUp3f0c*3vL^L1QfCom{M#k9^)=J%~TaETE`Q zf>YGT^?1>LGTnE=xOXzVDMc+S4xli0n|nNq{~EdKApmB0C;tyaf>4C${Wfum_qR*l zitj&v@{m9&kKfD6$GCsVMk&uVm&mOeW2=k4^;3u^L@p(Z7DqjJZ-y@PL92V_T>e-> zzrOj;mkA&MbdqEt9WFmW^0^|N7oM-0BJwgPWoxf0X3k!TKS-C^YYnxQ0vihVH@REwLQo`1ebyMeuybk+9>q zhWFAnkdvp!|JU0Mwkil?Zml){1GGtiKDC00OX6Q&<>8G$+?QJ`bZ`&J3SH7g7Ti4M zj}`s%q2gA#hYEVpg_rd&(K2C0<&)&Gr*HoUdX)?98>w0!+*^@K!Ux5@-#PfJm%qP; z)dQ@jKpE#Nk`P9^YdzrAbW!u^*S{ZMh%p|JfijT*0ARI{2>2D4Giel4P&6PA$ON?& z?pAs1M1UoogOwIr-#(i;6R2y~itSAE(kp8Jeg;gQB5;nU!2#=kitNpParlmV$n1VR zH*>UHoHq`iN6Q7bI9_cMt|0)ZVe7H{c&p)eQyICafwMx)@n1l7e~uWUr;sAsVtAlL zAHQ=A8rNv>M(R4oDj);~?gEqN&cGXo^ukm7Lo}5Ev(sfb6!blcv|lKW@L_H~8~yV> zhbfEHz5GJLj0W{8M`Yg%91{t9JXe{FyXI^()uDEX++uQt?8jSq-VN{9tM=tXN)=Tz zA=in&IYSJ^cq@xjNRpQWEH2qMN+UFzXoRA-$?o&A5K&yabm zzOfqhS?BObTyyN_{)FpN!&~9Y2!9z%BzvR&u9P?+SVp`L{1`|m!(HaxEmuD!ekHT9EA0K?8+-+EI1-$ic^Mp8p57o)LwOp`24& z^ePYe-AJM~5758h@E%Iea+%@at(HGiD1`4k)KqR?zC1#`INb+`j^hhD$|g1tk4!2Z z5xkgz9AT*|PtFDYTmnFObOF_=sqLWP`*_Ih@|Fn6j~m0lj9&&_{KekARA*#rM=yQw zg{PBzx~kyE(?NLWI-AHX#8L}Bn>o0H(-rQR2FgY&b@xsOE?Fd%J#WLLYAw|1i zOn!&g)>Fm(^dA6tM1378L+vq!B;1=bp&>(c#6hVo1;!8o_>?DeaeTkF$dB*2fx^Y( zIUv?@jru75cF-NNTn2vuZE$Nc&_bX_5Gl8|$b}M79W)9(7Xgg}-*O0KO2SHB zj$GV&zd{s(?KKM7{<@kQD1ixd^aH9ym_ev~Ni>gf_;@)Wvrms)g^4k;Rq8TKiW=Ft z+vOjHdpiMih`*IBWcc+?B6Mglplf0F+ZX`dtB@oVwI2vp@f{TjyN)eCYu24pi?iB3 z3b+oEhIAmZW5Af$VH4W4YD-Jd{5OW;K9Nn9p&Bij5M;e()fj$a>n8kP2hJ*Nnc5A@ zOVjCa@Es(g?cnAC*i<%Br6?u3X9N9ZC~a?nL?zMpHDl%NVNXuq>W0$9l;~NqCQy^7 zBGuM6&)$v3U0@elb(*3LTLY&~#8p^W++*SX*V9D0I$;q-SIc>~hwbSGv_+#?;qV~} zIzvE>5ql>*04f)qYYQBn15Z4$2#gnZx&dCFx2n+#iIm)#Q7SY zl!AnlO|^<+0&uI-Rbfb}F?^s@(LzG5mE~L;-0Pc<&XO$2hStBI{fSL0}Qgh1psg3m_M*Dm}O@ROjRjpn#YNPdx0%3icjiu zQOjwZIfBRdiiIuv)xi@F-UH)P=YtVQSk5D;L-ts*8zGm(-*t1sE2c$c}$o=!KLpdt-07KOXk!X{FP7kd& z+`W2`oH2!Y$$`4w1g^-Fv_&9#Wdeo19cbcQgBk8=mwOU>Lz0hNsPM!;`b-y|cOn~S zvE3we^xt&>f1KX3w;aCq235(Ce?%WvQy_I(x6LdlqfRI#_#u=d5gE&VdmRL}1wH-O zn3L@Abt|u2x%YirqtNOL0A-zSkM(nfnMCkv@iV`m<@x#o%Rv+Hv^LxKefQI8QsxVf zM_vLv0x`1H0Y)%4-pXb2`)#S=geOO8oromrDA>7L0XRxQMhVCYDA3=t3tD&SKYHTH zh=%UaG<_o=XtjtuWI>{d&qsz#f)(si^n5j3>=92u$ET8m=%ro`v-<5JK&EB_g{9(4 zTk0+7IGR`M0(rcfqkPROKSQrJjMuOw!EdljfbX*yf_}T8SlBO5zGG|b>~}Qe(e^M{ z!<|UxM9K;omkK}j=Xrs^4V45)+t?TGurbVC0@`>67RE_DpwCvg=Uys+m#@HG-}Ajs zJ8IrJ6(NYPq-z+0aeFp|x;6KOsU5v3Y}%Vk!5pQkte*4fex3ohZ#zk5K~^*Y722u3Isxb^q=|a% zl3fg~r49HJS<7X0^0$X_Ar+SNM2QtNSu`lLT_svu13|IK^!c_sm4rmP$yR>mQ2Gx$ zwe2NTz*r-}+7SQ#5ujdV8@47ECh@-sq#UG3TIZp_V=5ATp5*=k6@wrVa`ICmuu+x< z2yUetk6g1{`0hFbiQ99;n;0*?8TgwGyavPl?WF6|w>D2n!L)J`H2rtezn_j4TKcqO z(ZW~AZmg+d*Pg@sZHrAbl5YokavQ;5%bHwX_ntLmE663KT0M%qE(t`E?jKXI()FiU z@u!&pbt%+eH_O7_J7e^r=KQJW@3^sI@n6!*QjXN36OFBPN&mI$IxvWI0W@sarvdK3 ztdqqBx_9&36{F(6zvlk!9_`-^br|VXD0?)l+yc@vqneq4D)C`8f_*e&ZYsjdL-(&M zHwRMjuo-b;)#JV}8#&z&y>w-)ZF&>BnNJolK6^|fg2IVmu4H9XC8ofa1didMr!bZa z3QG(okTG3F)y`KA!X3Yj8IDDd)+)<8LfXPh7o6uOa|9b+g4tLPha zy5N14NGmW~DE{97})IH=0WD-Fd&2z`uyU-^oFjQQl zL%VDJ435F-jKR!B-Ub0E)jJ0OLFEjHxTu} zp<p8+=}X^hb4jG!{rk1fO*_>Z2|jAu>3Bdc$GXjrAYovj0d%qpf+L55sHYBbddK`L zBE{tT$6QqkU2ztkcn6(AB$dAapl6k^n^&u~aGZu*XlBv&hG_;H?b9Nde5gq++N@1) zKz#OLYcrznyVd+afGWa#xbBfX2E)UiZ4Lm@B0&-#T5w&Ez}cPENLK9P5%_X5Bk{wm z!f5O&7{3hUx27hpw~1e#eQMuit9YB~N^7Aj=-`{#Lia)85~q~$(~D}CSlK=uaJ*D| z&De-WnA|4E@++N^#XAPmc#&35eBxf$qtgSy{cvnFsk~KBL;jkls543%mp3Hg^zE*LA5pp zNiN$cGqrC&x`SzjaTD-)k4Mt(wW;8Jhp2SAk3q3@b4QcPc_SyMW8b7pug$JT1FWnA zVTH{0txs=mm|I{vo%_g|Rm6=#M^mWfB>Ot(6Ie!5lDy%A^&c82@M)^FA#DFR%J{Xk zowhQ5nR1cD9ZYABp4UJC341GS4wh&i5rKRpe>3~tHQ&`wXY)m?>Cdah1;lNL?oR_N zvV5QpT;bUv4^r= zwILB_B;~<~-8LXgW4Ujm$(5e~-`q$J}?vQ{DdmM^5Reh$BTss5mkz zBg%+l)+y`QqNq?tq9MB^O2$nI83zZ)OtugWS|T$M8CfA^W&U2*=`Q8IzxU_g-#u#7dBo~WHu9(J)hkeR6WB?fi_Zo0?>m6tcF>DqC7;;TKI3ea z?9(*pQ_*Rjn&F`GcM3h8p2r=(1f2p!lIiT%j?_~5=`H<5{nJlv$_LYULMR$~kPfd-&*Bmya6R zN44Ioq8Zu?A~pJW4#*-CPYz6j$L&+?Bi9AO9YDmVAnC-IVfixd)wLqQb+uM^Gu2o# zZT#|>@E7rZ{Pkwc6=1_vAf=zY+y!_bZc?4HV|uN!`@NTcF3^6 zA#TQN=!&?D%+oigW&r9_Jiu$0)aHTXtqoZ7+Im|%>>;lsf9Gi2F%MZ90?NW z`wG%eMW*ZnsM&qFJ-3HSyR=YbY_68gSVsSD-?d15 zh6#XY=2=kG9Kql%btXQHc)0FZ|8KewUZJZ(flC#(39R~LFRU#xtA#N3GH^Q&9iu1x zrFs34yZ{-yncAE}`Jx2K_qGzcxyNM{^bs#qi0tCX+GFylhpUz1vB}jT4hx-ZNG*ZI9RPdnN9CCXF(%0fpVhZ6L=Eva$AQ#I~<79`n*;SwU0}1|d(Y z$?+XFvzNB4av6llNXR}unEC<)0tPOjdhu9!PfWrmQHJ_YqpOu_}d9s zm)K48UGsK-GWc+AzoE;E9>lOcGB-6Rz9TDILrbTud|*3xZoZ`2U^gs$7)foa0t*HG zdbb-c(U2%5Ud~pj)bHE&RUI!cauht;OCZU4J9uzpaqaYT2>31Y^X5fV52l+|M(lH4 zrFg~U{*xAv(Y0NkJJ~49jA7L6IWVc_&D_=(T>*JjtNiB~JkGAN&BKXXxzZ0#RYy0= zL>7`_gY3$7T_44*R|)i8juq8d$)^UbY#A*6R`m-5k`o#P|6^GzBEzZ;Bq_aE4FdiBo5 zJy(H8hu)7tiS^y~wyyEA)4C3xw`E}X`AsFiDqP>vyv;}OLvucv2;%u^>!k)8o29oSn3YCY< z#TZOOXkS)Te>vwQUcT%(u*pu~%Q)ZVm>ls-?%(bcZKNe+!}S1g4*#Vt#mcNrU+WQ1Ev4TMDsH5{PuPUy7T<`> zwd9(c6?;kr`N=biHgZ?jtqx1}zfMV6B}shOHNrmSrhA|ptf?+U_D3J;c4H-pHI%HA zF!Ori);y3ryWa62`{ z-*4hZqranD{Sio)0=!Nv&UQviBc7uQ1dB@mhGbeTXcQJg&z0yv2SO*uDOo}w`YlE} zs(Wlz+oLaGDmjJj$pb2W_>+C=Y!YU{{JVE*LrGAI-9PUVgo7p?c#;bouEj|bu7#SI z^>1s*q)#%&rs{0d+_ z(5D%82eS1_P!Z^vhJ~oE^+xB&x7i_k52oPctEqOIzH@2Dv7^#J4pQ9_61}%rakNy3 zh1~?}CNTTa*m4_-F!NzsGCqzvu!8~3SadMkpUAXQgWg@Vxn6Y}At5&S@etAVFa})BFZ5r0d zq$bDtT9(dD7)!a`n66jae`+LJ)no=x6%9^G`b6gMgj)yc)?qf(^Df_yBJ}=JqQh#t z$BOd|o4whU$wQQRXIPWu(FXJJj+Wa-!wNM$iDzl z3%kk34f_0}Bn{Uu1Uh!&CDt@GR*SvLM>h#8kPEMax9j1iB)er+M&VWKK}py1W=z*! z#~7;^fC%d8vq}Un^V5i({+hOJGmqfFr2&c$HDikF=m!FLrhUCr#=<|!^N=?P8KzsW zpe!Q$ymFXAbv+3?KBd|xSNIGcV^}yKXRwCfu_cVhpR%jgX}e9Si_h>C0nNDewgc>> z3{4D^1j%{)*xI3Zw+0}}Ip~BnTed*$&I)WX9geN=;bgUr;8fO05ZDxt&#@^V;ET{! z(RrCngvfAALH!}+%XR9_ddT!_*Qb+J92Po4g^KL?PD`|1(7dihWFGJHq7Wi4sPSJU z`xn6--x@@G-17|t)U>ATZmg)H3b?Pn4=Y@cNo#yV8`HNTDCJ4bC9M}e6yGCPz`D^2 zdo3jAUdA2#^JMP;dw57s&rVeKEOs82d7WWV<0ojdeq8qss`A(D)yj8)nYUHvZ9?j9 za+0dka-}0GpsL)eJFN5Co-3;Kndmom^_+W|+GJ^+;)YbKgHqqByIYm689=umyINl=+{uD)&pfw z4hWW0k}|qgl$Lpop*58$TC%vN63oz=D)-nMD4DAvM#zG>5kblFYjhpI2E;-iYW}pQ zdRmG;nRq$A^a@FMeyUR52x>m@n|BZFCatNh7qoe_#pDQvfC6qjB92|O&z+5RCgiOTwtBt-D0GD@Fboa zV>MgCLmJo%37jeS{dtDeuqjPnyWtng!j3MS?SU~Am5$^7GTdMYlEesMQ$ha`qF?nv?N@flrg|E;YjEt_(`b(93WG*xh zZFhUDk|z}>=N$&`6vLFDUzL=#(k4R6eoKooJ88To_*uHc)h&5~pD&bUCa)V? zRO~SexXh)GeL+81;;_7@r-vG7Ex1#WR~) zh5<{Jh2&vOTTeSgaGK>lv5)n=yI#bkPfq0;;h|Y~;k4V8rsI!1>5xi68GelVVlU`c zFcM?p+2{9`E?8#3@ujr96Di&Q?93W&XAvf7hkRT&3M(jE^!do+tqLI>&Z9aleU+cW zcUdT&&=|LH0$^-LLTWUl*0(U_SzU?p6Yesb+>gZA<)S-3QI<~Le&DDpg%~&fp zq{1kRtdbLSYhtpFQF)7~L4fksO+IH?tzE+VKsD!F^X0vp6@pUF%@woo_+#WPN9 zZC|t|65erKPz_UHC31PyRfjRRD9KRXLI{Lfl5A&_(I2^TSLzsJ05zIcncLeUE9{;w#PzHjrm%CiOv z=54yWj5s!)sm(T5Q`YIWqHbz;Wh1HvhVVYyh zj~@As+ILQmRTC{5py#kTFWv6=)YnX-%p@(Rb4k#gKxOm%OuN1Po1Cj{o~{b&I~g1k zso!%*wD|LGeKJW(iWUzBI!8Z!mk(tj*5ac3PLRbH?Xr28?G7o%8GvWnrA^BvoPNQ3 zVHrGd&viT>0fhH+r_gM{Xy6sdz9+;3hz~uzGy8Zfd;|e$aVlbfU@;-JELX&!Us2~~ zGC4J3TF*hTE+2)@atpKP-ru+IHBOR8#LHs&xJjc0a7*k@hZF84${i-gp35=;$jR};UFqqW*s{-fKcIqM&W^JMMn!zQjmeAodjG*9+ z0Yv5w0Rlw1>>GreBu$KAnZ-7Ywrs$PYHC&Jlvo?<`$G&aR~b<`Gr4_eTosO0YlGsE{mEptEbr@f%a8yK z1|K4z7H8`mPmuR?Q)ZhhU|zASb9G`>Dom65IQM4IWh$yEl{iU!*%j%29YjQi;&#Z) zeywUs%_w@Y7WxYL1$*gOonyJ@itesEgZhm~Cr8--0$TGh7nb>z8M1Cl^~mIspS}g= zUH_iar!0Gpy1Mgpr4Y8nJyPm^hsVWPpTP-SZ&%89R&3=-c-jr>n^L@(t zy7vr2QsH-yx-c34t7E!q64=gr+7`6F>2wn8y5v)-HxxBWx1Dp#Idb(OeezE&0Ihp- zqkkBPcvV1a2WO|tY7CBu@foqcp9~v9`R3KvVzz=LRS({#Pml>CSdX*&a$p^CW&EZ1 zdfY?JyEPqo5!EX1;Z!RKsQaQS#iHw@BxO4c1VMV$8gWT#&Mwg4p&uN(VkZAd;>3|| zBDZZCcilAImW`ilWVSu+?r3w`M2w85a2=?PZq_O^k{`KkcShX)L#u73yrce8oLRNr z%dybskosok53i`mFfBHDr|&^*^>6d=e~>w?_G$n4Rez1t7yFx?maCA|5APew$=c!I z{r(FmRBEGEoAd3lMWm1BZu)KPJfn55`lP;t$LaCthl>0~_T-f(y@};)Bz%MXgsPDfACPaL=cvsNzFkeqm;YQFESA zCUz@lnLX0ULN3_(=y<~u5ZY{J2~#0PI$S#R)gDywsuCnddBktO~@%! z88HANDaty9RxV-Yxj_~92YqxKF;{pa>34qB4_ixAkFW8eULqW3Vk>M1f8rtN+K7{e z1I_?@DhqsB3uY9{ovGcaf{xxq<`XF{e)cV&pdHLeVi|oYao9G=*KyWuJISGTQaS99 zH?cR~+Ci5nmA%cyEyqkNiZ2jFhKp#1AH0Vn>gn4QLasjaW-R@Bood!6xSq5_Yab%| z)eD!$syRe(kvMAuTdnHe@$b5tV@u^?o<5t#rGVdM1Q_`X-(s^OS8xWorwyLG_31$4 znw4|OO|OG>rP{t|_8YauY6_CVq=`A~r_4NVT2||vFo)LDDXGN37vBf0x3)b&5=ti# z#_QSL_+N1vW5N*>6g`g)c8||Q-L|#J=NHR@YZO1>N71P*S?OVxnB}HX=OSyx$3aZx z4I~^2k(T!eR4QjC7PCd+x9iCljl{3CAESES7@p*3d*;`eNq-=MUiH9cqE!5hIHyh; zWypC%U1wpSrLw3uL9Qv?xVI?y-gJQT5#`|ynk5retuvoLi2ou32Ce=nIc z;s7j_;1D0u?7d9gd%(SAqise|6;!Ucik^Q=y(z#$E_8POrX+>M;cElm#wqz02^!=a zYET`!^6to~zdAm?Ta7?KJV;ko-TeNd?X7|yHuUx~b-m7Ai>N>vT*xa8`qUx!?p%j5 zX_Io8s<>=G#Ea858eHwJ7YQ-od7zF|@Qj^dgDvQ{*G(bBu}YNLW@-2tmvf^B?iGrX zHNhSCXt*}oK!wBzId?+ z7eE0(X%MlIP@HDE4QTAMvuP23>AgO3s!Q$*O?{rH2MT=Jhc$c`KYJsBIvsOZyA(^N z1!J(W=kSy{;72If_8JgcGJOqnK0EmE%=aB2(*a!7YlV~LnttmA49H^Y0Fh~PfkPXP z>jVU-bTR2)%#y*t59C=+y$=3ulB4Oq8xefIee&BByiA=}W8M3ypz9TUuve`j8pppz zdpgq4f#=i$NOBS_@-=HurNdM1Q>e!fNPtGl5K8i^3&{q;>=-SB??-lvUA z-kykv4d;)Fg7WPp)4%bYyWpj`<$;OGbLyF_Sh0w_`f=ymQO(C&_+&nVn*XY* zVcLhkL!10e#_#f+Y6$e^c=XH?Ft272x~blA-v6&}y#t7J0GgY54S@2Kpr`uWf7h-h z&{816Jxn*##(8h5L*2^C`na&}LBoVF2?EO`Xdb7{0|Oi$KI90JCR-DE0!{!M(g>tV(t)pHxVK_1dmrO)SLp&Vx0KUj^;;rNH zpU+m|1LIE9qI!TvoCdgX7J_}gzI2ZK^S}QNq6wn##7a2Q+=Z9ieHt5ee=%gnHeO|ipu+w7$cbXK`fRKyI zcyL+)FJ|Qd&xF`j2WeY}Mj={a?sOaFU=)5_rGlD*R3mU-`{Yi`L_&&T2u4rHVKvV7 z;+0>y!{0B>!_q+az;y*Y{k_OMm98`Z#a`CrHLi?$(*<+#jeg8I)FN?2LJhZ$8XW$m zkX@xiXXeL$K=|`fc z|ELqXeqiCzJ9_H%viW?O{|91C_f6F$4>(MjYvVyk7X(AH=Wi1O@+(#P&ueaN? zK=BJe<$u|}%YK??*JcCA))!TRAi?nLMX0bv7+xT8`z#8vEO13W z%kFcc+l?KA6(#7_baUO}YJI|C04l!1hS~h{Du&rG07bxzjo-PEIC||ql)Pp@u`~^I z&_LGyd#CfW4@(vSqa`{Fc9toura>rqF2T1wkG#Lg!c&;QhFV@sfOei9C>+6Q>rYD7 zEZ=H9u!*EpTOfY#aL(-%mgj)>u|dryB_tQvno6m!y$F)0!_P9rZrtAXeyq3?P-o7? z&*K30_WXSL#L|lh#lzPo4mj?j8C`l2P|QVsBDwgo!~+Tk0=|FiJ>{B=JtS_|x);ak zC$Y>&T{n@>D9G}S?Bt;tCrLn4$9?ZmOWTE?0;|6}36LsFRpJ#3gAu#px9YCOgGYcfLshknvOW}Iq!G-c5SdTFk;WdnuLBQn zu%=W=dyc>OK66m0uyJF6VVH_;Frl1lt~c`bBxsbtD?f3tPZxoXf28y|${aWjG(td> zFd>|CPIAc#QQ%=hG3`g?V`{Wpe+mmrd%yg|;<~C@OGg?v$U9@GvQj7X%XMz^92P(P zh2%F*65Ko~pq>hDZ2LZoVLyO8C?AeL1tcR;efHS>%c?x_~yfPr3^_Aw0Z(>ZQi#&_07e7l}tfa$TqA6 z==8^_+sQ})$q*PTtut00y0%D+N0}-~wgC49QA(^o<+WcU&PK~86d>=$g^oRBTUH}V z$|a;WM=u7FY)*66^tMk?_V)hOv9+0&MJ^t#Jih1xYo2!N(k^gbNWt@}J^imELBX1% z87v^ca#AclsTK&n;pM)BmE=b+0qx11cM0kee?_zINV~F^8w;1*1oHEZv-VeEtr!BR zXb8O0&%MMs^fzV3AY(Ie)1V4I?D?^w_f3*#n$6AJ#>4ixfYyGixa4%K<_j<_ReZ_5 z;yb9iw>suKOvZfed0E_XlR~eZYzZ!Xc6eSNMOPj3B%pX;y!o*mNb`7XGoxex68hJg zRPT1(4#awy(rM6ZI^xweU|_TW(ig?nmvKf~9ZO|0SRXF5X7vl{?#IiP!6&;?pcKM;8Q zNNW2frezveN3e^dMr0C1Ja^QA9WiJNZ3WrxEb6%tDd#;Nl02%-g zx6K#DovEKb?h`W3NOQJoFZVdqf0~yr1k}ymlGtj!*dJ=12moQ?_pl2v-8=zBjoR4zHEdZAvtWmj3A!q)J50Wixut z_2;4M6@_XX-|mF7A@1l`L@1ayJy-pUP*5d7hoOh*5q7^$jqsx{nYM0yyo-+sE(y5v@7&5NzRn>zJJm*(s{(0uGxJQsoHqZ|tGl2Tt6{tC|u1wk+A)y?Q| zMV1sBEYFk%N9h|Uq7N%{5?NkC$i1F}gHpADC1Er68KH-*X!HKsl0E{vh>WoDh za9P|)uYRPlgo=F*8hovnN$&k%9oal>z>NU!_&Nb|@cCV+ISCIzG8#5_YyYje9Xb1_ z)37@RRMVkknSs4A^Jp%Z*saC_cM;FLVPGcQ$z0Vnnr3w z97TiEoyw7KKFN*Qi|hU(yrH1)ZQ_l{yl0u;GNCEMkQC|{MOK+xfX!U;Y$xGDGPDqk zM?RFaU0zV_Y7&>iMhINb2E6-)!!9FlhCsf0JhHgMm!8MwezodgePHG-*0d_Jvs@H; zGU9_uT`Lsp7k4^zeWYUvE^-JF_Mz&8+ML?#maF3SKwa9LO4HKW-5=E_E$L^4j+fYc1!8M(};)!8#sS zD&bZ;`~90zQ<~e%gq=&I+8(*Zxai0Jg6Qb2WzV9Jd_&L$G4D|^!KD4zeQJ3t)Wn^GGfE<;6haXu)fXqB zKrWRBA0Q5bRsjVt5R#zD4?v2@)VHAIRhDHV+!Fm84hiKHLEPvHx@6AXMqhput)A4E zub=-~J<@_Gm_^bmDsP0@>zWCN&Enatz?l@xTttO?Lr&9$fVU1muDh?j%!BTME=J9p zT@^GJ*G*?MWSX^uw6k_c!OlM?6H67yP4Is|dr$fxOdy_2bdEOke6su*33)}aqk~>B zC^+S|Kb}9hK~?voVtJ@jt}cTbs@wosOjzs*?1&KX*0p|xqDVO9{OD_LeVra;q%69& zWS|9!#=3#M!Rh*C0V8|{vOP%nn`jY#9(KnT5K8{|VMZQysN?qnN0c%nR-Ag9pdOdv zI9mkt90Zb?Qw0R-pDO@)1V)=W97cTds+H&l9Kxi3(I0pwG2&}p0ik8L3mI7kbDmeT zWSMUNC=ZRwW(opfgO>E3GlqD10@E@6w;m3#LcDH-Fa`-Yk-zvEfi#?nm2!DBXi0&3 z{$Q&NQ6hf*X?RU<*LmzL(qyWjaB3SU$FVQb5m1;%SxfurH+RuIlNN$V|CFfkj$co? z``%)-I6}UP0Ov1m3!UEFazSmd`JAu<+7lvWoNW}tPNAMFgyqhqehkNXMX%BeQmr}> z0hZYGk4aO8Ce38axlgnii>~0^!Iyr&PSQ&|vY-|Ns6O{+Z;VNzNc#?gshgM25br+# zVqKQTdiRw+>ku7Cp3(zuCC7=|*al-kpG<<7AKzGV`9j@y6-nZ@c)=6(P9j)?sZW8% zfM$FTV4%6qnn4Ks&U^$E+PSoOH|}7I1?XSd0)38x6(|G9U-FTX+E4|U9Ot`IAS$pj zL;DNb`q4!cawN+;-mSnA7`%&dpl_OGzwiPSGgDy3(uKq=rh3Sgf2pTZj zygO3Om4TCZXzNO13Ymi62#iLg&`el!%Zet{x6J=Toxe!zvRWi-`dQ-X&3T<>K6YCu z_ep|gUlR$UzI5316$g@Sb zCqwXL_ad%h@;KAa^W?|M^D;pp%AkJux0g0vP_`95agO8ExZm!*3_ncxIyNoV1Y!vc zs8~o1PTu_-=w!CQ7}&Vcm!9v$i`(}#*o6$?sX^%EvQb)OrFwv8sZfmjbjn~F)Z?JP zA5-siNOW;vXg?*QEP0hl1){hE_NCkI^DG>#b_{rq77$`R4IAK4*~0v)cGpWl(mewt zT?+RsnE4c59#6^veOqX7L@gNf4Q3sCTyZOv>j-i@vAzlNmUj>w!)IdM=_~t&3m(5t zg&5Uv-@@#-wo5AS^^Rx-fX44;opaj}OuSa|+{=)SF&Yn0L&Hv9cAbP%Urq8Hh(`=U zp-~*(-<1Xty;gp0#l_)W7g|b=!!b9!{Wap=zF0c~CM=fPP;5l*9QOc=e9Vh=!PKv* z_uZ)&TR@>P+h&7K`Ke?KLe{i1wYA=8bjpx9l?z#EGq{dFmK1t13Km1|ll&%-K79ro z?X$h>8~cZuk(Wrx*B3&0fHy>b5zw9jQ-#@0@nFLvZ;RW5~6D6t882_b7bz#I2=ZYhL&5IGd82)+@m<^dVKt^p&eOm;(uOmD}3VONeZQsI9?@yRgwuY@XjdQXa}>SFp97ln`b%3i_@s5bS+M zb|6>Q%2bK2y)67n_Dom1yp_9+&$Uu$%VjlS1E*Mm^=7-c7m$I|wLJCiVn=}a8$sNq zH1i6ON+9i9T64s&N*Wx;OX^6=yRALJb08^rLXAGfXiI*U{iVw&zfSj@d4+^N90=5n^3!-GiY$9-8C zIMHd_#gBg=JL@*_v;;-H32+T8_INb^n0wxQdgXv+M8$IC>X6#%0AQ-b6Z1zG0>2_? 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 V_-9YkGZ(-=HRS_JX?u=d`9D~pj0gY# literal 0 HcmV?d00001 diff --git a/Documentation/assets/ajo-decisioning-extension-configuration.png b/Documentation/assets/ajo-decisioning-extension-configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..c77e135c3823071dfaf704ec375f0659704a6538 GIT binary patch literal 235682 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Ά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 uIF2DU6gN8dI>N?YM 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 z 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

  • a9S(d7{}awpjB_U(ff}!hSF5DQg+awb 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 literal 0 HcmV?d00001 diff --git a/Documentation/assets/ajo-decisioning-lifecycle-rule-event.png b/Documentation/assets/ajo-decisioning-lifecycle-rule-event.png new file mode 100644 index 0000000000000000000000000000000000000000..c60d4f8c8eb1f34e457e5aae8b0261e20157ca06 GIT binary patch literal 167476 zcmb@u1z1#V*DnqTNHZhdrGV0*3|#|=Gziiu-Q6HP)F4PogM=vE-61KUB3;tmL!XUL zeDC?*?>*N!|L4zj&CH%Xd*A!MSNzs*t#xa-vZ4$w7C9CY5)!WLbEqotL5YNPFAxJA zI8#b>D~yDMV__*NsVplgNvrH+Z)Ry@iiGq$JmJ-SO|>t?89H%q-+n~_zkT3E0QHJ} zAQ4GRt6m0<6O#z%qAUD4Dup(|o})Rc4wjlg>C2%%tziDSWh^eGMS>lXbI6G1GW)8< z{ctE<)O`4=U?#jxUTy1Z|= zzuxN2%_G5bS~ov0T&yAdiG*9kdhQ{S;X9%m^b7>mVIuk5Q=%Wb|EBP(j>1q9^S&8=?)g}X;pM}3znltg zGxN^pO(e>|VZK%;yrny=0*FCUPMQtleS%#Uu&2Ge`ZkEvpn z8XF?vHuxs`C3Pumo_xt8074J#jv;#eqI3EC=_AjI0H1O;2{4m%H2yDa0tWSycEy9b zeuNSGPojY21l~4=x6#qmeIXnexN0kKVG`K82j7I6y_^_0gAp?K zz!+akJkX0hBMqOVAcAHj{#Wm#qNOhE%KF@;mj??2;=G1I%5A7lKe^jpzr}^J>AC9d zXIed^bO<1Pjg0J|VU2F~fmx<&|2+~`dnO3;jg5mo%;_Z(R@TixmWHb6T}zU5Tm#mCtR`!I*}uZnfTvM(QA)Af&LQ5}YT zvW`9QWpmK!+XxR^Kz>Wby^J$M3R$N9ijR#Sm?4~z6U5wKyw+s7AVo{8aoik2iI#t*r;C?3)Bg zVXO}5LXlbS&*$E$xm#&Hv(TV6yNYH(AS}q1T{LGxV%Zq zqG-DBixK!1L@pr{1#<2}ca)d`(L4lUO6J6RJS38psQ_`&%b3w0#j3u3R6#u%@sh5U zUgj-9pXUdn`e-4jKrCM$6QShCLJ_Noshmy~n)ndu?C^C|UhMQh;vDR+c^3TI;k)A2 zqXg?x#{yIE7N|Gp8%txHK@{g6AI@jQk$FZb$%LuV35KSck2Hdwwq5!VS@$-S#X!IX z%knd1B@54mFxM8<_9qb!e1u!DOS_d8Umb*b@ZBVcF(iZ1F#J&Qj9BR+ITMuSnHjce zDH+p3y*~!+XFPw%4ReFq*O91&Pj-=YJ?e_?^6g?YW;x(04};Q^#il(+{-F6FDPHLb zV===H9Tih`tibbT^7rJcd(e%;W(X-^eyi>dxmdCNKea~KtIdwh9|?dx>DyXqbnRj$tHqzkpLh_B!^Z?j}(p?$%~=*SO_@AIGL zbLMTc%omK_+HekKbu1K$3*IyN$qk9p?cwf0?!oOTpv#xklth&z#{Wn*_Uu>CqH?F9 zWPnllqDbdfXl7Khw2?HwG)vTG)Gozx54^`Ds({>{Tf}ze=}Z5@Tjja0aoP7n=eWcb zC>53z%#v+*>R*qUSecOk+b_Zq7jh%zF!Nwlq*+D_Ig;GY%xs{6WS>ZJ0JO7 z_n>Jaj}liSn>;H$+b?1rHf`1m)*aS&tdXo|T648In&+CP+Ql_iHJdfhYN>67#~Y?D z;JA}Lz0wwyKUO~v-PaMECY%nbajhBI!P$Yhg}8lpJKMHA6+czmX4xs_2T}P@I#E6o z&~=1T2~&l@iQq};%1j(gvE$MOKa7HnS~|NrpM=f2Z zvS}>N%H*cLeGO@>d+gX6O$QIBP~%#)yn-Q84$KMGG2cCKV`@^uk=0G~;QJyXoAE8} zbGnd7{gZRa7Z&~f@u%gTy~E_*T;Cz;@!FZvFXR-bV}J0l+swRoq*@m4C5dU}YPajC z!dzn_R~k(BaEUv8xceb!BltM}cy=SRzI^6|of0~eiKH}N%#hB2_ZR%t(p7gX6jT

    ho%H5Qqs8^J>lQe(3}NUr3Yu9 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� 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 z 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%0A^jxdG4P*EOa=5d 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 F{|A|VtDyh@ literal 0 HcmV?d00001 diff --git a/Documentation/assets/ajo-decisioning-lifecycle-rule.png b/Documentation/assets/ajo-decisioning-lifecycle-rule.png new file mode 100644 index 0000000000000000000000000000000000000000..ce64da8ed5b29ee5a35ddc658848757cf367967f GIT binary patch literal 215874 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 XRpnZjGL3Mv;A;!P(I#i3XZYU%MsmRC literal 0 HcmV?d00001 diff --git a/Documentation/assets/ajo-decisioning-target-tpid.png b/Documentation/assets/ajo-decisioning-target-tpid.png new file mode 100644 index 0000000000000000000000000000000000000000..86dcfc91cd3b3f0fd202886b5974ba1651be5290 GIT binary patch literal 228456 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 **Datatreams** using the left navigation panel. Select an existing datastream or create a new datastream. For more details, see the [configure datastreams guide](https://developer.adobe.com/client-sdks/documentation/getting-started/configure-datastreams/). +1. In the datastream, click on the desired environment from the list. Make sure **Adobe Experience Platform** section is enabled and configured with the required information like **Sandbox** and **Event Dataset**. +2. For Journey Optimizer - Offer Decisioning, navigate to **Adobe Experience Platform** section and enable **Offer Decisioning** checkbox. +![Datastream configuration - Offer Decisioning](./assets/ajo-decisioning-datastream-configuration-od.png) +3. For Adobe Target, navigate to **Adobe Target** section and enable it. Specify the configuration. For more information on the configuration settings, refer to the [Administer Target Overview](https://experienceleague.adobe.com/docs/target/using/administer/administrating-target.html?lang=en). +![Datastream configuration - Adobe Target](./assets/ajo-decisioning-datastream-configuration-at.png) +4. Click **Save**. + +### Configure Adobe Journey Optimizer - Decisioning extension in Tag property for Mobile + +On [Experience Platform Data Collection](https://experience.adobe.com/#/data-collection/), navigate to **Data Collection** > **Tags** using the left navigation panel. Select an existing mobile tag property or create a new property. + +1. In your mobile property, navigate to **Extensions** in the left navigation panel and click on the **Catalog** tab. +2. In the extensions Catalog, search or locate the **Adobe Journey Optimizer - Decisioning** extension, and click **Install**. +3. Since an extension configuration is not necessary, click **Save**. +4. Follow the publishing process to update SDK configuration. For more details, see the [publish the configuration guide](https://developer.adobe.com/client-sdks/documentation/getting-started/create-a-mobile-property/#publish-the-configuration). + +![Adobe Journey Optimizer - Decisioning extension configuration](./assets/ajo-decisioning-extension-configuration.png) + +## Integrate Experience Platform Optimize SDK in your mobile application + +> **Warning** +> For the AEPOptimize APIs to work properly, you need to integrate Mobile Core and Edge extensions in your mobile app. For more details see, documentation on [Mobile Core](https://github.com/adobe/aepsdk-core-android) and [Adobe Experience Platform Edge Network](https://github.com/adobe/aepsdk-edge-android). + +### Install the Experience Platform Mobile SDK + +Add the Mobile Core, Edge, Identity for Edge Network and Optimize dependencies in your app's gradle file. + +```java +implementation 'com.adobe.marketing.mobile:core:2.+' +implementation 'com.adobe.marketing.mobile:edge:2.+' +implementation 'com.adobe.marketing.mobile:edgeidentity:2.+' +implementation 'com.adobe.marketing.mobile:optimize:2.+' +``` + +> **Warning** +> Using dynamic dependency versions is not recommended for production apps. Refer to this [page](https://github.com/adobe/aepsdk-core-android/blob/main/Documentation/MobileCore/gradle-dependencies.md) for managing gradle dependencies. + +### Register the extensions with Mobile Core + +#### Java +```java +import com.adobe.marketing.mobile.MobileCore; +import com.adobe.marketing.mobile.Edge; +import com.adobe.marketing.mobile.edge.identity.Identity; +import com.adobe.marketing.mobile.optimize.Optimize; +import com.adobe.marketing.mobile.AdobeCallback; + +public class MainApp extends Application { + + private final String ENVIRONMENT_FILE_ID = "YOUR_APP_ENVIRONMENT_ID"; + + @Override + public void onCreate() { + super.onCreate(); + + MobileCore.setApplication(this); + MobileCore.configureWithAppID(ENVIRONMENT_FILE_ID); + + MobileCore.registerExtensions( + Arrays.asList(Edge.EXTENSION, Identity.EXTENSION, Optimize.EXTENSION), + o -> Log.d("MainApp", "Adobe Journey Optimizer - Decisioning Mobile SDK was initialized.") + ); + } +} +``` + +#### Kotlin +```kotlin +import com.adobe.marketing.mobile.MobileCore +import com.adobe.marketing.mobile.Edge +import com.adobe.marketing.mobile.edge.identity.Identity +import com.adobe.marketing.mobile.optimize.Optimize +import com.adobe.marketing.mobile.AdobeCallback + +class MainApp : Application() { + + private var ENVIRONMENT_FILE_ID: String = "YOUR_APP_ENVIRONMENT_ID" + + override fun onCreate() { + super.onCreate() + + MobileCore.setApplication(this) + MobileCore.configureWithAppID(ENVIRONMENT_FILE_ID) + + MobileCore.registerExtensions( + listOf(Edge.EXTENSION, Identity.EXTENSION, Optimize.EXTENSION) + ) { + Log.d("MainApp", "Adobe Experience Platform Mobile SDK was initialized") + } + } + +} +``` + +## Adobe Journey Optimizer - Offer Decisioning + +> **Warning** +> Some offer constraints, such as Capping, are currently unsupported with the mobile Experience Edge workflows. The Capping field value specifies the number of times an offer can be presented across all users. For more details, see the [offer eligibility rules and constraints guide](https://experienceleague.adobe.com/docs/offer-decisioning/using/managing-offers-in-the-offer-library/creating-personalized-offers.html#eligibility). + +### DecisionScope + +The `DecisionScope` public class provides a constructor to create a scope object using the activityId, placementId, and optional itemCount. The decision scope activity and placement information can be obtained from the decision on the Experience Platform UI. + +#### Java + +```java +final DecisionScope decisionScope = DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111", 3); +``` + +Alternately, another of the class's constructor can be used to create a scope object using the encoded decision scope. The encoded scope can also be read directly from the decision on the Experience Platform UI. + +#### Java + +```java +final DecisionScope decisionScope = DecisionScope("eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjEyYmEyZjM4MWJjYTY3NWUiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTJiOWEwMDA1NTUwNzM1NyIsICJ4ZG06aXRlbUNvdW50IjozfQ=="); +``` + +## Adobe Target + +### Target location + +The `DecisionScope` public class provides a designated initializer which can be used to create a Target location (or mbox). + +#### Java + +```java +final DecisionScope decisionScope = DecisionScope("myTargetLocation"); +``` + +### Target Parameters + +Target Parameters can be sent in a personalization query request to the Experience Edge network by adding them in `data` dictionary when calling the `updatePropositions` API. + +#### Java + +```java +final Map data = new HashMap<>(); +final Map targetParameters = new HashMap<>(); + +// Add mbox parameters +targetParameters.put("someKey", "someValue"); + +// Add profile parameters - prefix with profile. +targetParameters.put("profile.membershipLevel", "platinum"); + +// Add product parameters +targetParameters.put("productId", "111"); +targetParameters.put("categoryId", "Books"); + +// Add order parameters +targetParameters.put("orderId", "10"); +targetParameters.put("orderTotal", "110.56"); +targetParameters.put("purchasedProductIds", "111"); + +data.put("__adobe", new HashMap() { + { + put("target", targetParameters); + } +}); + + +final DecisionScope decisionScope = DecisionScope("myTargetLocation") // Target location (or mbox) + +final List decisionScopes = new ArrayList<>(); +decisionScopes.add(decisionScope); + +Optimize.updatePropositions(decisionScopes, null, data); +``` + +### Target Third Party ID + +To use Target Third Party ID in the Experience Edge mobile workflows, the corresponding namespace needs to be configured in Experience Platform Data Collection. + +1. On [Experience Platform Data Collection](https://experience.adobe.com/#/data-collection/), navigate to **Data Collection** > **Datatreams** using the left navigation panel. +2. Select your configured datastream and click on the desired environment from the list. +3. Navigate to **Adobe Target** section, specify the **Target Third Party ID Namespace**. +4. Click **Save**. + +![Target Third Party ID configuration](./assets/ajo-decisioning-target-tpid.png) + +In your mobile application, integrate the Identity for Edge Network extension to add the Target Third Party ID in the Identity Map in the personalization query request to the Edge network when calling the `updatePropositions` API. For more details, see the [Identity for Edge Network - updateIdentities API](https://github.com/adobe/aepsdk-edgeidentity-android). + +#### Java + +```java +final IdentityItem item = new IdentityItem("1111", AuthenticatedState.AUTHENTICATED, true); +final IdentityMap identityMap = new IdentityMap(); +identityMap.addItem(item, "userCRMID") // userCRMID being used as Third Party ID +Identity.updateIdentities(identityMap); +``` + +### Target Audience Segmentation using Mobile Lifecycle Metrics + +To send mobile Lifecycle metrics to Target for creating audiences, a rule needs to be set up on Experience Platform Data Collection to attach these metrics to the Edge personalization query requests. Follow the link to learn [how to target visitors using Custom Parameters in Adobe Target](https://experienceleague.adobe.com/docs/target/using/audiences/create-audiences/categories-audiences/custom-parameters.html?lang=en). + +#### Create a rule + +On Experience Platform Data Collection, navigate to **Data Collection** > **Tags** using the left navigation panel. Select an existing mobile tag property or create a new property. + +1. In your mobile property, navigate to **Rules** in the left navigation panel and click on **Create New Rule**. If there already are existing rules, you can click on **Add Rule** to add a new rule. +2. Provide a name for your rule. In the example here, the rule is named "Attach Mobile Lifecycle Metrics to Personalization Query Requests". + +#### Select an event + +1. Under the **Events** section, click on **Add**. +2. From the **Extension** dropdown list, select **Adobe Experience Platform Edge Network**. +3. From the **Event Type** dropdown list, select **AEP Request Event**. +4. On the right pane, click on **+** to specify **XDM Event Type** equals **personalization.request**. +5. Click on **Keep Changes**. + +![Adobe Journey Optimizer - Decisioning extension Lifecycle rule Event Configuration](./assets/ajo-decisioning-lifecycle-rule-event.png) + +#### Define the action + +1. Under the **Actions** section, click on **Add**. +2. From the **Extension** dropdown list, select **Mobile Core**. +3. From the **Action Type** dropdown list, select **Attach Data**. +4. On the right pane, specify the **JSON Payload** containing metrics of interest. An example JSON Payload containing all of the mobile Lifecycle metrics is shown below. +5. Click on **Keep Changes**. + +![Adobe Journey Optimizer - Decisioning extension Lifecycle rule Action Configuration](./assets/ajo-decisioning-lifecycle-rule-action.png) + +```javascript +{ + "data": { + "__adobe": { + "target": { + "a.appID": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.appid%}", + "a.locale": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.locale%}", + "a.RunMode": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.runmode%}", + "a.Launches": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.launches%}", + "a.DayOfWeek": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.dayofweek%}", + "a.HourOfDay": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.hourofday%}", + "a.OSVersion": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.osversion%}", + "a.CrashEvent": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.crashevent%}", + "a.DeviceName": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.devicename%}", + "a.Resolution": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.resolution%}", + "a.CarrierName": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.carriername%}", + "a.InstallDate": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.installdate%}", + "a.LaunchEvent": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.launchevent%}", + "a.InstallEvent": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.installevent%}", + "a.UpgradeEvent": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.upgradeevent%}", + "a.DaysSinceLastUse": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.dayssincelastuse%}", + "a.DailyEngUserEvent": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.dailyenguserevent%}", + "a.DaysSinceFirstUse": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.dayssincefirstuse%}", + "a.PrevSessionLength": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.prevsessionlength%}", + "a.MonthlyEngUserEvent": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.monthlyenguserevent%}", + "a.DaysSinceLastUpgrade": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.dayssincelastupgrade%}", + "a.LaunchesSinceUpgrade": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.launchessinceupgrade%}", + "a.ignoredSessionLength": "{%~state.com.adobe.module.lifecycle/lifecyclecontextdata.ignoredsessionlength%}" + } + } + } +} +``` + +#### Save the rule and republish the configuration + +After you finish your rule configuration, verify the rule details are as shown below: + +![Adobe Journey Optimizer - Decisioning extension Lifecycle rule Configuration](./assets/ajo-decisioning-lifecycle-rule.png) + +1. Click on **Save**. +2. [Republish your configuration](https://developer.adobe.com/client-sdks/documentation/getting-started/create-a-mobile-property/#publish-the-configuration) to the desired environment. + + +### Analytics for Target (A4T) + +Set up the Analytics for Target (A4T) cross-solution integration by enabling the A4T campaigns to use Analytics as the reporting source for an activity. Subsequently, all reporting and segmentation for that activity is based on Analytics data collection. For more information, see [Adobe Analytics for Adobe Target (A4T)](https://experienceleague.adobe.com/docs/target/using/integrate/a4t/a4t.html). + +Once Analytics is listed as the reporting source for an activity on Target UI, A4T works out of the box in the Optimize SDK. The Experience Edge handles forwarding any Target A4T payloads to Adobe Analytics and no additional action is required on the client-side. + +> **Warning** +> For this integration to work, make sure Analytics is enabled in your datastream configuration for the desired environment and Report Suite information is provided. +{% endhint %} + +## Tracking + +### Proposition tracking using direct Offer class methods + +User interactions with the decision propositions can be tracked using the following public methods in the `Offer` class. + +#### Java + +```java +public class Offer { + ... + /** + * Dispatches an event for the Edge network extension to send an Experience Event to the Edge network with the display interaction data for the + * given {@code Proposition} offer. + */ + public void displayed() {...} + + /** + * Dispatches an event for the Edge network extension to send an Experience Event to the Edge network with the tap interaction data for the + * given {@code Proposition} offer. + */ + public void tapped() {...} +} +``` + +Upon calling these `Offer` methods, an Experience Event is sent to the Edge network with the proposition interaction data for the given offer. + +#### Java + +```java +offer.displayed(); // Sends an Offer display notification to Edge network +``` + +### Proposition tracking using Edge extension API + +For more advanced tracking use cases, additional public methods are available in the `Offer` and `Proposition` classes. These methods can be used to generate XDM formatted data for `Experience Event - Proposition Interactions` and `Experience Event - Proposition Reference` field groups. + +#### Java + +```java +public class Offer { + ... + /** + * Generates a map containing XDM formatted data for {@code Experience Event - Proposition Interactions} field group from this {@code Proposition} item. + * + * The returned XDM data does contain the {@code eventType} for the Experience Event with value {@code decisioning.propositionDisplay}. + * + * Note: The Edge sendEvent API can be used to dispatch this data in an Experience Event along with any additional XDM, free-form data, and override + * dataset identifier. + * + * @return {@code Map} containing the XDM data for the proposition interaction. + */ + public Map generateDisplayInteractionXdm() {...} + + /** + * Generates a map containing XDM formatted data for {@code Experience Event - Proposition Interactions} field group from this {@code Proposition} offer. + * + * The returned XDM data contains the {@code eventType} for the Experience Event with value {@code decisioning.propositionInteract}. + * + * Note: The Edge sendEvent API can be used to dispatch this data in an Experience Event along with any additional XDM, free-form data, and override + * dataset identifier. + * + * @return {@code Map} containing the XDM data for the proposition interaction. + */ + public Map generateTapInteractionXdm() {...} +} +``` +```java +public class Proposition { + ... + /** + * Generates a map containing XDM formatted data for {@code Experience Event - Proposition Reference} field group from this {@code Proposition}. + * + * The returned XDM data does not contain {@code eventType} for the Experience Event. + * + * @return {@code Map} containing the XDM data for the proposition reference. + */ + public Map generateReferenceXdm() {...} +} +``` + +The Edge `sendEvent` API can then be used to send this tracking XDM data along with any additional XDM and freeform data to the Experience Edge network. Additionally, an override dataset can also be specified for tracking data. For more details, see [Edge - sendEvent API](https://github.com/adobe/aepsdk-edge-android). + +#### Java + +```java +// When a proposition is retrieved using getPropositions API or onUpdatePropositions API callback +// and the corresponding offer is displayed, invoke method on Offer object to get the XDM data. + +final Map displayInteractionXdm = offer.generateDisplayInteractionXdm() // Offer display tracking XDM +final Map additionalData = new HashMap<>(); +additionalData.put("someDataKey", "someDataValue"); + +final ExperienceEvent experienceEvent = new ExperienceEvent.Builder().setXdmSchema(displayInteractionXdm).setData(additionalData).build(); +Edge.sendEvent(experienceEvent, null) +``` + +## Configuration keys + +To update the SDK configuration programmatically, use the following information to change the Optimize extension configuration values. For more information, see the [programmatic updates to Configuration guide](https://github.com/adobe/aepsdk-core-android). + +| Key | Required | Description | Data Type | +| :--- | :--- | :--- | :--- | +| optimize.datasetId | No | Override dataset's Identifier which can be obtained from the Experience Platform UI. For more details see, [Datasets UI guide](https://experienceleague.adobe.com/docs/experience-platform/catalog/datasets/user-guide.html?lang=en) | String | + +> **Note** +> If the override dataset is used for proposition tracking, make sure the corresponding schema definition contains the `Experience Event - Proposition Interaction` field group. For more information, see the [setup schemas and datasets guide](https://developer.adobe.com/client-sdks/documentation/getting-started/set-up-schemas-and-datasets/). + +## Next Steps + +- Get familiar with the various APIs offered by the AEP SDK by checking out the [Adobe Journey Optimizer - Decisioning API reference](./api-reference.md). diff --git a/Makefile b/Makefile index a29185e7..7f103553 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,9 @@ clean: (rm -rf ci) (rm -rf $(AAR_FILE_DIR)) (./code/gradlew -p code clean) + +checkstyle: + (./code/gradlew -p code/$(EXTENSION-LIBRARY-FOLDER-NAME) checkstyle) ci-build: create-ci (mkdir -p ci/assemble) @@ -38,7 +41,7 @@ ci-functional-test: create-ci ci-javadoc: create-ci (mkdir -p ci/javadoc) - (./code/gradlew -p code/$(EXTENSION-LIBRARY-FOLDER-NAME) javadocPublic > ci/javadocPublic.log 2>&1) + (./code/gradlew -p code/$(EXTENSION-LIBRARY-FOLDER-NAME) javadocPublic) (cp -r ./code/$(EXTENSION-LIBRARY-FOLDER-NAME)/build ./ci/javadoc) ci-generate-library-debug: diff --git a/README.md b/README.md index 9cd6f047..24ca7f72 100644 --- a/README.md +++ b/README.md @@ -3,14 +3,9 @@ ## About this project The AEP Optimize mobile SDK Extension provides APIs to enable real-time personalization workflows in the Adobe Experience Platform SDKs using Adobe Target or Adobe Journey Optimizer Offer Decisioning. It depends on the Mobile Core and requires Edge Extension to send personalization query events to the Experience Edge network. -## Installation -Integrate the Optimize extension into your app by including the following lines in your gradle file's `dependencies`: +## Getting started -``` -implementation 'com.adobe.marketing.mobile:optimize:1.+' -implementation 'com.adobe.marketing.mobile:edge:1.+' -implementation 'com.adobe.marketing.mobile:core:1.+' -``` +Refer to the [getting started](./Documentation/getting-started.md) guide for setting up and using the SDK with your application. ### Development @@ -21,14 +16,21 @@ To open and run the project, open the `code/build.gradle` file in Android Studio **Run demo application** Once you open the project in Android Studio (see above), select the `app` runnable and your favorite emulator and run the program. +## Documentation + +Additional documentation about API usage and SDK architecture can be found under the [Documentation](./Documentation) directory. + ## Related Projects | Project | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | | [AEP SDK Sample App for Android](https://github.com/adobe/aepsdk-sample-app-android) | Contains Android sample app for the AEP SDK. | +| [Core extensions](https://github.com/adobe/aepsdk-core-android) | The Mobile Core represents the foundation of the Experience Platform Mobile SDK. | +| [Adobe Experience Platform Edge Network Mobile Extension](https://github.com/adobe/aepsdk-edge-android) | The Adobe Experience Platform Edge Network mobile extension allows you to send data to the Experience Platform Edge Network from a mobile application. | +| [Identity for Edge Network extension](https://github.com/adobe/aepsdk-edgeidentity-android) | The Identity for Edge Network extension enables handling of user identity data from a mobile app when using the Experience Platform Mobile SDK and the Edge Network extension. | ## Contributing Contributions are welcomed! Read the [CONTRIBUTING](.github/CONTRIBUTING.md) for more information. ## Licensing -This project is licensed under the Apache V2 License. See [LICENSE](LICENSE) for more information. \ No newline at end of file +This project is licensed under the Apache V2 License. See [LICENSE](LICENSE) for more information. diff --git a/code/app/build.gradle b/code/app/build.gradle index 1bd970eb..f1cc61ae 100644 --- a/code/app/build.gradle +++ b/code/app/build.gradle @@ -1,16 +1,16 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -def compose_version = '1.0.0' +def compose_version = '1.3.1' android { - compileSdkVersion 31 + compileSdkVersion 33 defaultConfig { applicationId "com.adobe.marketing.optimizeapp" minSdkVersion 21 buildToolsVersion '30.0.2' - targetSdkVersion 31 + targetSdkVersion 33 versionCode 1 versionName "1.0" @@ -34,7 +34,6 @@ android { kotlinOptions { jvmTarget = '1.8' - useIR = true } buildFeatures { @@ -42,7 +41,7 @@ android { } composeOptions { - kotlinCompilerVersion '1.5.10' + kotlinCompilerVersion '1.7.10' kotlinCompilerExtensionVersion compose_version } @@ -54,28 +53,27 @@ android { } dependencies { - implementation 'androidx.core:core-ktx:1.6.0' - implementation 'androidx.appcompat:appcompat:1.3.1' - implementation 'com.google.android.material:material:1.4.0' + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.annotation:annotation:1.0.0' + implementation 'com.google.android.material:material:1.7.0' implementation "androidx.compose.ui:ui:$compose_version" implementation "androidx.compose.material:material:$compose_version" implementation "androidx.compose.ui:ui-tooling-preview:$compose_version" - implementation "androidx.constraintlayout:constraintlayout-compose:1.0.0-beta02" - implementation "androidx.navigation:navigation-compose:2.4.0-alpha09" - implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' - implementation 'androidx.activity:activity-compose:1.3.1' - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:1.0.0-alpha07" - implementation "androidx.compose.runtime:runtime-livedata:1.0.0-alpha07" - implementation "androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha07" + implementation "androidx.constraintlayout:constraintlayout-compose:1.1.0-alpha04" + implementation "androidx.navigation:navigation-compose:2.6.0-alpha04" + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1' + implementation 'androidx.activity:activity-compose:1.6.1' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1' + implementation "androidx.compose.runtime:runtime-livedata:1.4.0-alpha02" + implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.6.0-alpha03" + implementation("io.coil-kt:coil-compose:1.3.2") // Adobe mobile SDKs implementation project(":optimize") - implementation "com.adobe.marketing.mobile:core:1.+" - implementation "com.adobe.marketing.mobile:lifecycle:1.+" - implementation "com.adobe.marketing.mobile:signal:1.+" - implementation "com.adobe.marketing.mobile:edge:1.+" - implementation "com.adobe.marketing.mobile:edgeidentity:1.+" - implementation "com.adobe.marketing.mobile:assurance:1.+" - - implementation("io.coil-kt:coil-compose:1.3.2") + implementation 'com.adobe.marketing.mobile:core:2.0.0' + implementation 'com.adobe.marketing.mobile:lifecycle:2.0.0' + implementation 'com.adobe.marketing.mobile:signal:2.0.0' + implementation 'com.adobe.marketing.mobile:assurance:2.0.0' + implementation 'com.adobe.marketing.mobile:edge:2.0.0' + implementation 'com.adobe.marketing.mobile:edgeidentity:2.0.0' } \ No newline at end of file diff --git a/code/app/src/main/java/com/adobe/marketing/optimizeapp/MainApplication.kt b/code/app/src/main/java/com/adobe/marketing/optimizeapp/MainApplication.kt index 1a2e4977..eca1e3cd 100644 --- a/code/app/src/main/java/com/adobe/marketing/optimizeapp/MainApplication.kt +++ b/code/app/src/main/java/com/adobe/marketing/optimizeapp/MainApplication.kt @@ -31,14 +31,14 @@ class MainApplication : Application() { MobileCore.setApplication(this) MobileCore.setLogLevel(LoggingMode.VERBOSE) - Identity.registerExtension() - Lifecycle.registerExtension() - Edge.registerExtension() - Optimize.registerExtension() - Assurance.registerExtension() - MobileCore.configureWithAppID(LAUNCH_ENVIRONMENT_FILE_ID) - MobileCore.start { + MobileCore.registerExtensions(listOf( + Identity.EXTENSION, + Lifecycle.EXTENSION, + Edge.EXTENSION, + Optimize.EXTENSION, + Assurance.EXTENSION + )) { print("Adobe mobile SDKs are successfully registered.") } } diff --git a/code/build.gradle b/code/build.gradle index e12cb869..57130184 100644 --- a/code/build.gradle +++ b/code/build.gradle @@ -7,8 +7,8 @@ buildscript { maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } } dependencies { - classpath 'com.android.tools.build:gradle:4.2.0' - classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.10' + classpath 'com.android.tools.build:gradle:7.2.2' + classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -33,18 +33,18 @@ task clean(type: Delete) { ext { // android config minSdkVersion = 19 - targetSdkVersion = 29 - compileSdkVersion = 29 + targetSdkVersion = 33 + compileSdkVersion = 33 versionCode = 1 // java config - sourceCompatibility = JavaVersion.VERSION_1_7 - targetCompatibility = JavaVersion.VERSION_1_7 + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 // dependencies - junitVersion = "1.1.2" - mockitoCoreVersion = "2.28.2" + junitVersion = "1.1.3" + mockitoCoreVersion = "4.5.1" buildToolsVersion = "30.0.2" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - jacocoVersion = "0.8.5" + jacocoVersion = "0.8.7" } \ No newline at end of file diff --git a/code/checkstyle.gradle b/code/checkstyle.gradle new file mode 100644 index 00000000..b6e176f1 --- /dev/null +++ b/code/checkstyle.gradle @@ -0,0 +1,28 @@ +apply plugin: "checkstyle" + +checkstyle { + configFile rootProject.file('checkstyle.xml') + ignoreFailures false + showViolations true + toolVersion = "8.15" +} + +/** Checkstyle task for new files (not in exclude list). Fail build if a check fails **/ +task checkstyle(type: Checkstyle) { + configFile rootProject.file('checkstyle.xml') + + //fail early + ignoreFailures false + showViolations true + + source 'src' + include '**/*.java' + exclude '**/gen/**' + exclude '**/test/**' + exclude '**/legacy/**' + exclude '**/androidTest/**' + exclude '**/R.java' + exclude '**/BuildConfig.java' +// exclude rootProject.file('checkstyle/checkstyle-exclude-list.txt') as String[] + classpath = files() +} \ No newline at end of file diff --git a/code/checkstyle.xml b/code/checkstyle.xml new file mode 100644 index 00000000..ac033f13 --- /dev/null +++ b/code/checkstyle.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/gradle.properties b/code/gradle.properties index ad21ae51..b3cf8ca3 100644 --- a/code/gradle.properties +++ b/code/gradle.properties @@ -13,18 +13,16 @@ org.gradle.jvmargs=-Xmx2048m # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true - moduleProjectName=optimize moduleName=optimize moduleAARName=optimize-phone-release.aar -moduleVersion=1.0.1 +moduleVersion=2.0.0 mavenRepoName=AdobeMobileOptimizeSdk mavenRepoDescription=Adobe Experience Platform Optimize extension for the Adobe Experience Platform Mobile SDK mavenUploadDryRunFlag=false -# production versions for production build -mavenCoreVersion=1.9.2 -mavenEdgeVersion=1.2.0 +mavenCoreVersion=2.0.0 +mavenEdgeVersion=2.0.0 + +android.disableAutomaticComponentCreation=true diff --git a/code/gradle/wrapper/gradle-wrapper.properties b/code/gradle/wrapper/gradle-wrapper.properties index 719a0f86..d46b5290 100644 --- a/code/gradle/wrapper/gradle-wrapper.properties +++ b/code/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip diff --git a/code/optimize/build.gradle b/code/optimize/build.gradle index 6ef0bf4a..e152e82b 100644 --- a/code/optimize/build.gradle +++ b/code/optimize/build.gradle @@ -56,16 +56,17 @@ android { } } -android.libraryVariants.all { variant -> - tasks.withType(Javadoc) { - source = [android.sourceSets.main.java.sourceFiles, android.sourceSets.phone.java.sourceFiles] - ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar" - - doFirst{classpath = files(variant.javaCompile.classpath.files) + files(ext.androidJar)} +apply from: '../checkstyle.gradle' - exclude "**/BuildConfig.java" - exclude "**/R.java" +afterEvaluate { + tasks.withType(Javadoc) { + source = android.sourceSets.main.java.sourceFiles + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + classpath += files(android.libraryVariants.collect { variant -> + variant.javaCompileProvider.get().classpath.files + }) options { + source = "8" links "https://developer.android.com/reference" } } @@ -106,10 +107,10 @@ publishing { pom { name = mavenRepoName description = mavenRepoDescription - url = 'https://aep-sdks.gitbook.io' + url = 'https://developer.adobe.com/client-sdks' licenses { license { - name = 'Adobe Proprietary' + name = 'The Apache License, Version 2.0' } } developers { @@ -120,9 +121,9 @@ publishing { } } scm { - connection = 'scm:git:github.com//Adobe-Marketing-Cloud/acp-sdks.git' - developerConnection = 'scm:git:ssh://github.com//Adobe-Marketing-Cloud/acp-sdks.git' - url = 'https://github.com/Adobe-Marketing-Cloud/acp-sdks' + connection = 'scm:git:github.com//adobe/aepsdk-optimize-android.git' + developerConnection = 'scm:git:ssh://github.com//adobe/aepsdk-optimize-android.git' + url = 'https://github.com/adobe/aepsdk-optimize-android' } withXml { def dependenciesNode = asNode().appendNode('dependencies') @@ -173,8 +174,9 @@ task platformUnitTestJacocoReport(type: JacocoReport, dependsOn: "testPhoneDebug additionalClassDirs.setFrom files([debugTree]) additionalSourceDirs.setFrom files(android.sourceSets.main.java.sourceFiles) sourceDirectories.setFrom files(android.sourceSets.phone.java.sourceFiles) - executionData "jacoco.exec" - + executionData.setFrom fileTree(dir: "$buildDir", includes: [ + "outputs/unit_test_code_coverage/phoneDebugUnitTest/*.exec" + ]) reports { xml.enabled true csv.enabled false @@ -189,10 +191,9 @@ task platformFunctionalTestJacocoReport(type: JacocoReport, dependsOn: "createPh additionalClassDirs.setFrom files([debugTree]) additionalSourceDirs.setFrom files(android.sourceSets.main.java.sourceFiles) sourceDirectories.setFrom files(android.sourceSets.phone.java.sourceFiles) - executionData fileTree(dir: "$buildDir", includes: [ + executionData.setFrom fileTree(dir: "$buildDir", includes: [ "outputs/code_coverage/phoneDebugAndroidTest/connected/*coverage.ec" ]) - reports { xml.enabled true csv.enabled false @@ -202,24 +203,21 @@ task platformFunctionalTestJacocoReport(type: JacocoReport, dependsOn: "createPh dependencies { - implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'androidx.annotation:annotation:1.0.0' - // Adobe Mobile SDK Core - implementation "com.adobe.marketing.mobile:core:${rootProject.mavenCoreVersion}" + implementation 'com.adobe.marketing.mobile:core:2.0.0' testImplementation "androidx.test.ext:junit:${rootProject.ext.junitVersion}" testImplementation "org.mockito:mockito-core:${rootProject.ext.mockitoCoreVersion}" + testImplementation "org.mockito:mockito-inline:${rootProject.ext.mockitoCoreVersion}" testImplementation 'com.fasterxml.jackson.core:jackson-databind:2.9.9' - testImplementation 'org.powermock:powermock-api-mockito2:2.0.0' - testImplementation 'org.powermock:powermock-module-junit4:2.0.0' testImplementation 'org.json:json:20180813' androidTestImplementation "androidx.test.ext:junit:${rootProject.ext.junitVersion}" androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' androidTestImplementation 'com.fasterxml.jackson.core:jackson-databind:2.9.9' - - androidTestImplementation "com.adobe.marketing.mobile:edge:1.+" - androidTestImplementation "com.adobe.marketing.mobile:edgeidentity:1.+" + androidTestImplementation 'com.adobe.marketing.mobile:edge:2.0.0' + androidTestImplementation 'com.adobe.marketing.mobile:edgeidentity:2.0.0' } tasks.withType(Test) { diff --git a/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/MonitorExtension.java b/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/MonitorExtension.java index 7597968d..16e53497 100644 --- a/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/MonitorExtension.java +++ b/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/MonitorExtension.java @@ -12,8 +12,12 @@ package com.adobe.marketing.mobile; +import androidx.annotation.NonNull; + import com.adobe.marketing.mobile.optimize.ADBCountDownLatch; import com.adobe.marketing.mobile.optimize.OptimizeTestConstants; +import com.adobe.marketing.mobile.services.Log; +import com.adobe.marketing.mobile.util.DataReader; import java.util.ArrayList; import java.util.HashMap; @@ -26,25 +30,16 @@ * and XDM shared state. */ -class MonitorExtension extends Extension { +public class MonitorExtension extends Extension { - private static final String LOG_TAG = "MonitorExtension"; + private static final String SELF_TAG = "MonitorExtension"; private static final Map> receivedEvents = new HashMap<>(); private static final Map expectedEvents = new HashMap<>(); + private static ConfigurationMonitor configurationMonitor = null; protected MonitorExtension(final ExtensionApi extensionApi) { super(extensionApi); - - extensionApi.registerWildcardListener( - MonitorListener.class, new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.ERROR, LOG_TAG, - "There was an error registering Extension Listener: " + - extensionError.getErrorName()); - } - }); } @Override @@ -53,28 +48,18 @@ protected String getName() { } public static void registerExtension() { - MobileCore.registerExtension(MonitorExtension.class, new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.ERROR, LOG_TAG, - "There was an error registering the Monitor extension: " + extensionError.getErrorName()); + MobileCore.registerExtension(MonitorExtension.class, extensionError -> { + if (extensionError == null) { + return; } + Log.error(OptimizeTestConstants.LOG_TAG, SELF_TAG, + "An error occurred while registering the Optimize extension: %s ", extensionError.getErrorName()); }); } - /** - * Unregister the Monitor Extension from the EventHub. - */ - public static void unregisterExtension() { - Event event = new Event.Builder("Unregister Monitor Extension Request", OptimizeTestConstants.EventType.MONITOR, - OptimizeTestConstants.EventSource.UNREGISTER) - .build(); - MobileCore.dispatchEvent(event, new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.ERROR, LOG_TAG, "Failed to unregister Monitor extension."); - } - }); + @Override + protected void onRegistered() { + getApi().registerEventListener(EventType.WILDCARD, EventSource.WILDCARD, this::wildcardProcessor); } /** @@ -100,7 +85,7 @@ public static Map> getReceivedEvents() { * Resets the map of received and expected events. */ public static void reset() { - MobileCore.log(LoggingMode.VERBOSE, LOG_TAG, "Reset expected and received events."); + Log.trace(OptimizeTestConstants.LOG_TAG, SELF_TAG, "Reset expected and received events."); receivedEvents.clear(); expectedEvents.clear(); } @@ -112,7 +97,7 @@ public static void reset() { * All other events are added to the map of received events. If the event is in the map * of expected events, its latch is counted down. * - * @param event + * @param event incoming {@link Event} object to be processed. */ public void wildcardProcessor(final Event event) { if (OptimizeTestConstants.EventType.MONITOR.equalsIgnoreCase(event.getType())) { @@ -129,10 +114,10 @@ public void wildcardProcessor(final Event event) { EventSpec eventSpec = new EventSpec(event.getSource(), event.getType()); - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Received and processing event " + eventSpec); + Log.debug(OptimizeTestConstants.LOG_TAG, SELF_TAG, "Received and processing event " + eventSpec); if (!receivedEvents.containsKey(eventSpec)) { - receivedEvents.put(eventSpec, new ArrayList()); + receivedEvents.put(eventSpec, new ArrayList<>()); } receivedEvents.get(eventSpec).add(event); @@ -141,97 +126,91 @@ public void wildcardProcessor(final Event event) { if (expectedEvents.containsKey(eventSpec)) { expectedEvents.get(eventSpec).countDown(); } + + SharedStateResult sharedStateResult = getApi().getSharedState( + "com.adobe.module.configuration", + event, + false, + SharedStateResolution.LAST_SET + ); + if (configurationMonitor != null) { + configurationMonitor.call(sharedStateResult.getValue()); + } } /** * Processor which unregisters this extension. - * @param event + * @param event event incoming {@link Event} object to be processed. */ private void processUnregisterRequest(final Event event) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Unregistering the Monitor Extension."); + Log.debug(OptimizeTestConstants.LOG_TAG, SELF_TAG, "Unregistering the Monitor Extension."); getApi().unregisterExtension(); } /** * Processor which retrieves and dispatches the XDM shared state for the state owner specified * in the request. - * @param event + * @param event event incoming {@link Event} object to be processed. */ private void processXDMSharedStateRequest(final Event event) { - EventData eventData = event.getData(); + Map eventData = event.getEventData(); if (eventData == null) { return; } - String stateOwner = eventData.optString(OptimizeTestConstants.EventDataKeys.STATE_OWNER, null); + String stateOwner = DataReader.optString(eventData, OptimizeTestConstants.EventDataKeys.STATE_OWNER, null); if (stateOwner == null) { return; } - EventData sharedState = getApi().getXDMSharedEventState(stateOwner, event); + SharedStateResult sharedState = getApi().getXDMSharedState(stateOwner, event, false, SharedStateResolution.LAST_SET); - Event responseEvent = new Event.Builder("Get XDM Shared State Response", OptimizeTestConstants.EventType.MONITOR, - OptimizeTestConstants.EventSource.XDM_SHARED_STATE_RESPONSE) - .setEventData(sharedState == null ? null : sharedState.toObjectMap()) - .setPairID(event.getResponsePairID()) + Event responseEvent = new Event.Builder("Get Shared State Response", OptimizeTestConstants.EventType.MONITOR, + OptimizeTestConstants.EventSource.SHARED_STATE_RESPONSE) + .setEventData(sharedState == null ? null : sharedState.getValue()) + .inResponseToEvent(event) .build(); - MobileCore.dispatchResponseEvent(responseEvent, event, null); + MobileCore.dispatchEvent(responseEvent); } /** * Processor which retrieves and dispatches the shared state for the state owner specified * in the request. - * @param event + * @param event event incoming {@link Event} object to be processed. */ private void processSharedStateRequest(final Event event) { - EventData eventData = event.getData(); + Map eventData = event.getEventData(); if (eventData == null) { return; } - String stateOwner = eventData.optString(OptimizeTestConstants.EventDataKeys.STATE_OWNER, null); + String stateOwner = DataReader.optString(eventData, OptimizeTestConstants.EventDataKeys.STATE_OWNER, null); if (stateOwner == null) { return; } - EventData sharedState = getApi().getSharedEventState(stateOwner, event); + SharedStateResult sharedState = getApi().getSharedState(stateOwner, event, false, SharedStateResolution.LAST_SET); Event responseEvent = new Event.Builder("Get Shared State Response", OptimizeTestConstants.EventType.MONITOR, OptimizeTestConstants.EventSource.SHARED_STATE_RESPONSE) - .setEventData(sharedState == null ? null : sharedState.toObjectMap()) - .setPairID(event.getResponsePairID()) + .setEventData(sharedState == null ? null : sharedState.getValue()) + .inResponseToEvent(event) .build(); - MobileCore.dispatchResponseEvent(responseEvent, event, null); + MobileCore.dispatchEvent(responseEvent); } - /** - * Listener class - */ - public static class MonitorListener extends ExtensionListener { - - protected MonitorListener(final ExtensionApi extension,final String type,final String source) { - super(extension, type, source); - } - - @Override - public void hear(final Event event) { - MonitorExtension extension = getParentExtension(); - - if (extension != null) { - extension.wildcardProcessor(event); - } - } + public static void configurationAwareness(ConfigurationMonitor callback) { + configurationMonitor = callback; + } - @Override - protected MonitorExtension getParentExtension() { - return (MonitorExtension) super.getParentExtension(); - } + public interface ConfigurationMonitor { + void call(Map configurationState); } /** @@ -255,6 +234,7 @@ public EventSpec(final String source, final String type) { this.type = type.toLowerCase(); } + @NonNull @Override public String toString() { return "type '" + type + "' and source '" + source + "'"; diff --git a/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/TestHelper.java b/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/TestHelper.java index cd8ccb6f..da95e266 100644 --- a/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/TestHelper.java +++ b/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/TestHelper.java @@ -13,7 +13,6 @@ package com.adobe.marketing.mobile; import static com.adobe.marketing.mobile.MonitorExtension.EventSpec; -import static org.junit.Assert.assertTrue; import android.app.Application; import android.app.Instrumentation; @@ -23,7 +22,9 @@ import com.adobe.marketing.mobile.optimize.ADBCountDownLatch; import com.adobe.marketing.mobile.optimize.OptimizeTestConstants; +import com.adobe.marketing.mobile.services.Log; +import org.junit.Assert; import org.junit.rules.TestRule; import org.junit.runner.Description; import org.junit.runners.model.Statement; @@ -35,6 +36,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; /** @@ -47,7 +49,7 @@ public class TestHelper { static Application defaultApplication; // List of threads to wait for after test execution - private static final List knownThreads = new ArrayList(); + private static final List knownThreads = new ArrayList<>(); static { knownThreads.add("pool"); // used for threads that execute the listeners code @@ -56,7 +58,7 @@ public class TestHelper { /** * {@code TestRule} which sets up the MobileCore for testing before each test execution, and - * tearsdown the MobileCore after test execution. + * tears down the MobileCore after test execution. * * To use, add the following to your test class: *

    @@ -82,20 +84,14 @@ public void evaluate() throws Throwable {
                         try {
                             base.evaluate();
                         } catch (Throwable e) {
    -                        MobileCore.log(LoggingMode.DEBUG, "SetupCoreRule", "Wait after test failure.");
    +                        Log.debug(OptimizeTestConstants.LOG_TAG, "SetupCoreRule", "Wait after test failure.");
                             throw e; // rethrow test failure
                         } finally {
                             // After test execution
    -                        MobileCore.log(LoggingMode.DEBUG, "SetupCoreRule", "Finished '" + description.getMethodName() + "'");
    +                        Log.debug(OptimizeTestConstants.LOG_TAG, "SetupCoreRule", "Finished '" + description.getMethodName() + "'");
                             waitForThreads(5000); // wait to allow thread to run after test execution
    -                        Core core = MobileCore.getCore();
     
    -                        if (core != null && core.eventHub != null) {
    -                            core.eventHub.shutdown();
    -                            core.eventHub = null;
    -                        }
    -
    -                        MobileCore.setCore(null);
    +                        MobileCore.resetSDK();
                             resetTestExpectations();
                         }
                     }
    @@ -153,11 +149,11 @@ public static void waitForThreads(final int timeoutMillis) {
             Set threadSet = getEligibleThreads();
     
             while (threadSet.size() > 0 && ((System.currentTimeMillis() - startTime) < timeoutTestMillis)) {
    -            MobileCore.log(LoggingMode.DEBUG, TAG, "waitForThreads - Still waiting for " + threadSet.size() + " thread(s)");
    +            Log.debug(OptimizeTestConstants.LOG_TAG, TAG, "waitForThreads - Still waiting for " + threadSet.size() + " thread(s)");
     
                 for (Thread t : threadSet) {
     
    -                MobileCore.log(LoggingMode.DEBUG, TAG, "waitForThreads - Waiting for thread " + t.getName() + " (" + t.getId() + ")");
    +                Log.debug(OptimizeTestConstants.LOG_TAG, TAG, "waitForThreads - Waiting for thread " + t.getName() + " (" + t.getId() + ")");
                     boolean done = false;
                     boolean timedOut = false;
     
    @@ -176,10 +172,10 @@ public static void waitForThreads(final int timeoutMillis) {
                     }
     
                     if (timedOut) {
    -                    MobileCore.log(LoggingMode.DEBUG, TAG,
    +                    Log.debug(OptimizeTestConstants.LOG_TAG, TAG,
                                 "waitForThreads - Timeout out waiting for thread " + t.getName() + " (" + t.getId() + ")");
                     } else {
    -                    MobileCore.log(LoggingMode.DEBUG, TAG,
    +                    Log.debug(OptimizeTestConstants.LOG_TAG, TAG,
                                 "waitForThreads - Done waiting for thread " + t.getName() + " (" + t.getId() + ")");
                     }
                 }
    @@ -187,7 +183,7 @@ public static void waitForThreads(final int timeoutMillis) {
                 threadSet = getEligibleThreads();
             }
     
    -        MobileCore.log(LoggingMode.DEBUG, TAG, "waitForThreads - All known threads are terminated.");
    +        Log.debug(OptimizeTestConstants.LOG_TAG, TAG, "waitForThreads - All known threads are terminated.");
         }
     
         /**
    @@ -196,7 +192,7 @@ public static void waitForThreads(final int timeoutMillis) {
          */
         private static Set getEligibleThreads() {
             Set threadSet = Thread.getAllStackTraces().keySet();
    -        Set eligibleThreads = new HashSet();
    +        Set eligibleThreads = new HashSet<>();
     
             for (Thread t : threadSet) {
                 if (isAppThread(t) && !t.getState().equals(Thread.State.WAITING) && !t.getState().equals(Thread.State.TERMINATED)
    @@ -234,7 +230,7 @@ private static boolean isAppThread(final Thread t) {
          * Resets the network and event test expectations.
          */
         public static void resetTestExpectations() {
    -        MobileCore.log(LoggingMode.DEBUG, TAG, "Resetting functional test expectations for events");
    +        Log.debug(OptimizeTestConstants.LOG_TAG, TAG, "Resetting functional test expectations for events");
             MonitorExtension.reset();
         }
     
    @@ -273,15 +269,14 @@ public static List getDispatchedEventsWith(final String type, final Strin
     
             if (expectedEventLatch != null) {
                 boolean awaitResult = expectedEventLatch.await(timeout, TimeUnit.MILLISECONDS);
    -            assertTrue("Timed out waiting for event type " + eventSpec.type + " and source " + eventSpec.source, awaitResult);
    +            Assert.assertTrue("Timed out waiting for event type " + eventSpec.type + " and source " + eventSpec.source, awaitResult);
             } else {
                 sleep(WAIT_TIMEOUT_MS);
             }
     
    -        return receivedEvents.containsKey(eventSpec) ? receivedEvents.get(eventSpec) : Collections.emptyList();
    +        return receivedEvents.containsKey(eventSpec) ? receivedEvents.get(eventSpec) : Collections.emptyList();
         }
     
    -
         /**
          * Synchronous call to get the shared state for the specified {@code stateOwner}.
          * This API throws an assertion failure in case of timeout.
    @@ -300,10 +295,16 @@ public static Map getSharedStateFor(final String stateOwner, int
                     })
                     .build();
     
    -        final ADBCountDownLatch latch = new ADBCountDownLatch(1);
    +        final CountDownLatch latch = new CountDownLatch(1);
             final Map sharedState = new HashMap<>();
             MobileCore.dispatchEventWithResponseCallback(event,
    -                new AdobeCallback() {
    +                WAIT_EVENT_TIMEOUT_MS,
    +                new AdobeCallbackWithError() {
    +                    @Override
    +                    public void fail(AdobeError adobeError) {
    +                        Log.error(OptimizeTestConstants.LOG_TAG, TAG, "Failed to get shared state for " + stateOwner + ": " + adobeError.getErrorName());
    +                    }
    +
                         @Override
                         public void call(Event event) {
                             if (event.getEventData() != null) {
    @@ -312,15 +313,9 @@ public void call(Event event) {
     
                             latch.countDown();
                         }
    -                },
    -                new ExtensionErrorCallback() {
    -                    @Override
    -                    public void error(ExtensionError extensionError) {
    -                        MobileCore.log(LoggingMode.ERROR, TAG, "Failed to get shared state for " + stateOwner + ": " + extensionError);
    -                    }
                     });
     
    -        assertTrue("Timeout waiting for shared state " + stateOwner, latch.await(timeout, TimeUnit.MILLISECONDS));
    +        Assert.assertTrue("Timeout waiting for shared state " + stateOwner, latch.await(timeout, TimeUnit.MILLISECONDS));
             return sharedState.isEmpty() ? null : sharedState;
         }
     
    @@ -340,7 +335,7 @@ public static void sleep(int milliseconds) {
          * Clear all the shared states..
          */
         public static void clearSharedState() {
    -        MobileCore.getCore().eventHub.resetSharedStates();
    +        MobileCore.resetSDK();
         }
     
         /**
    diff --git a/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/optimize/OptimizeFunctionalTests.java b/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/optimize/OptimizeFunctionalTests.java
    index 8821aa66..abe3fe1b 100644
    --- a/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/optimize/OptimizeFunctionalTests.java
    +++ b/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/optimize/OptimizeFunctionalTests.java
    @@ -12,26 +12,24 @@
     
     package com.adobe.marketing.mobile.optimize;
     
    -import static com.adobe.marketing.mobile.TestHelper.resetTestExpectations;
    -
    -import static org.junit.Assert.assertEquals;
    -import static org.junit.Assert.assertNotNull;
    -import static org.junit.Assert.assertTrue;
    +import android.app.Service;
     
    +import androidx.test.core.app.ApplicationProvider;
     import androidx.test.ext.junit.runners.AndroidJUnit4;
     
    -import com.adobe.marketing.mobile.AdobeCallback;
     import com.adobe.marketing.mobile.AdobeCallbackWithError;
     import com.adobe.marketing.mobile.AdobeError;
     import com.adobe.marketing.mobile.Event;
    -import com.adobe.marketing.mobile.ExtensionError;
    -import com.adobe.marketing.mobile.ExtensionErrorCallback;
    +import com.adobe.marketing.mobile.LoggingMode;
     import com.adobe.marketing.mobile.MobileCore;
    +import com.adobe.marketing.mobile.MonitorExtension;
     import com.adobe.marketing.mobile.TestHelper;
    -import com.adobe.marketing.mobile.edge.identity.Identity;
    +import com.adobe.marketing.mobile.services.NamedCollection;
    +import com.adobe.marketing.mobile.services.ServiceProvider;
     import com.fasterxml.jackson.core.type.TypeReference;
     import com.fasterxml.jackson.databind.ObjectMapper;
     
    +import org.junit.After;
     import org.junit.Assert;
     import org.junit.Before;
     import org.junit.Rule;
    @@ -57,19 +55,22 @@ public class OptimizeFunctionalTests {
     
         @Before
         public void setup() throws Exception {
    -        Optimize.registerExtension();
    -        Identity.registerExtension();
    -
    -        final CountDownLatch latch = new CountDownLatch(1);
    -        MobileCore.start(new AdobeCallback() {
    -            @Override
    -            public void call(Object o) {
    -                latch.countDown();
    -            }
    -        });
    +        MobileCore.setApplication(ApplicationProvider.getApplicationContext());
    +        MobileCore.setLogLevel(LoggingMode.VERBOSE);
    +        CountDownLatch countDownLatch = new CountDownLatch(1);
    +        MobileCore.registerExtensions(Arrays.asList(
    +                Optimize.EXTENSION
    +        ), o -> countDownLatch.countDown());
    +        Assert.assertTrue(countDownLatch.await(1000, TimeUnit.MILLISECONDS));
    +        TestHelper.resetTestExpectations();
    +    }
     
    -        latch.await();
    -        resetTestExpectations();
    +    @After
    +    public void tearDown() {
    +        NamedCollection configDataStore = ServiceProvider.getInstance().getDataStoreService().getNamedCollection(OptimizeTestConstants.CONFIG_DATA_STORE);
    +        if(configDataStore != null) {
    +            configDataStore.removeAll();
    +        }
         }
     
         //1
    @@ -85,7 +86,7 @@ public void testUpdatePropositions_validDecisionScope() throws InterruptedExcept
             final String decisionScopeName = "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==";
             Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
     
             //Action
             Optimize.updatePropositions(Collections.singletonList(new DecisionScope(decisionScopeName)), null, null);
    @@ -100,8 +101,8 @@ public void testUpdatePropositions_validDecisionScope() throws InterruptedExcept
             Assert.assertEquals(1, eventsListEdge.size());
             Event event = eventsListOptimize.get(0);
             Map eventData = event.getEventData();
    -        Assert.assertEquals(OptimizeTestConstants.EventType.OPTIMIZE.toLowerCase(), event.getType());
    -        Assert.assertEquals(OptimizeTestConstants.EventSource.REQUEST_CONTENT.toLowerCase(), event.getSource());
    +        Assert.assertEquals(OptimizeTestConstants.EventType.OPTIMIZE, event.getType());
    +        Assert.assertEquals(OptimizeTestConstants.EventSource.REQUEST_CONTENT, event.getSource());
             Assert.assertTrue(eventData.size() > 0);
             Assert.assertEquals("updatepropositions", eventData.get("requesttype"));
             List> decisionScopes = (List>) eventData.get("decisionscopes");
    @@ -131,7 +132,7 @@ public void testUpdatePropositions_validNonEncodedDecisionScope() throws Interru
     
             Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
     
             //Action
             Optimize.updatePropositions(Collections.singletonList(new DecisionScope(activityId, placementId)), null, null);
    @@ -146,8 +147,8 @@ public void testUpdatePropositions_validNonEncodedDecisionScope() throws Interru
             Assert.assertEquals(1, eventsListEdge.size());
             Event event = eventsListOptimize.get(0);
             Map eventData = event.getEventData();
    -        Assert.assertEquals(OptimizeTestConstants.EventType.OPTIMIZE.toLowerCase(), event.getType());
    -        Assert.assertEquals(OptimizeTestConstants.EventSource.REQUEST_CONTENT.toLowerCase(), event.getSource());
    +        Assert.assertEquals(OptimizeTestConstants.EventType.OPTIMIZE, event.getType());
    +        Assert.assertEquals(OptimizeTestConstants.EventSource.REQUEST_CONTENT, event.getSource());
             Assert.assertTrue(eventData.size() > 0);
             Assert.assertEquals("updatepropositions", eventData.get("requesttype"));
             List> decisionScopes = (List>) eventData.get("decisionscopes");
    @@ -178,7 +179,7 @@ public void testUpdatePropositions_validNonEncodedDecisionScopeWithItemCount() t
     
             Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
     
             //Action
             Optimize.updatePropositions(Collections.singletonList(new DecisionScope(activityId, placementId, itemCount)), null, null);
    @@ -193,8 +194,8 @@ public void testUpdatePropositions_validNonEncodedDecisionScopeWithItemCount() t
             Assert.assertEquals(1, eventsListEdge.size());
             Event event = eventsListOptimize.get(0);
             Map eventData = event.getEventData();
    -        Assert.assertEquals(OptimizeTestConstants.EventType.OPTIMIZE.toLowerCase(), event.getType());
    -        Assert.assertEquals(OptimizeTestConstants.EventSource.REQUEST_CONTENT.toLowerCase(), event.getSource());
    +        Assert.assertEquals(OptimizeTestConstants.EventType.OPTIMIZE, event.getType());
    +        Assert.assertEquals(OptimizeTestConstants.EventSource.REQUEST_CONTENT, event.getSource());
             Assert.assertTrue(eventData.size() > 0);
             Assert.assertEquals("updatepropositions", eventData.get("requesttype"));
             List> decisionScopes = (List>) eventData.get("decisionscopes");
    @@ -236,7 +237,7 @@ public void testUpdatePropositions_validDecisionScopeWithXdmAndDataAndDatasetId(
             Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
             configData.put("optimize.datasetId", optimizeDatasetId);
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
     
             Optimize.updatePropositions(Collections.singletonList(new DecisionScope(decisionScopeName)), xdmMap, dataMap);
     
    @@ -250,8 +251,8 @@ public void testUpdatePropositions_validDecisionScopeWithXdmAndDataAndDatasetId(
             Assert.assertEquals(1, eventsListEdge.size());
             Event event = eventsListOptimize.get(0);
             Map eventData = event.getEventData();
    -        Assert.assertEquals(OptimizeTestConstants.EventType.OPTIMIZE.toLowerCase(), event.getType());
    -        Assert.assertEquals(OptimizeTestConstants.EventSource.REQUEST_CONTENT.toLowerCase(), event.getSource());
    +        Assert.assertEquals(OptimizeTestConstants.EventType.OPTIMIZE, event.getType());
    +        Assert.assertEquals(OptimizeTestConstants.EventSource.REQUEST_CONTENT, event.getSource());
             Assert.assertTrue(eventData.size() > 0);
             Assert.assertEquals("MyXDMValue", ((Map) eventData.get("xdm")).get("MyXDMKey"));
             Assert.assertEquals("MyDataValue", ((Map) eventData.get("data")).get("MyDataKey"));
    @@ -285,7 +286,7 @@ public void testUpdatePropositions_multipleValidDecisionScope() throws Interrupt
             final String decisionScopeName2 = "MyMbox";
             Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
     
             //Action
             Optimize.updatePropositions(
    @@ -302,8 +303,8 @@ public void testUpdatePropositions_multipleValidDecisionScope() throws Interrupt
             Assert.assertEquals(1, eventsListEdge.size());
             Event event = eventsListOptimize.get(0);
             Map eventData = event.getEventData();
    -        Assert.assertEquals(OptimizeTestConstants.EventType.OPTIMIZE.toLowerCase(), event.getType());
    -        Assert.assertEquals(OptimizeTestConstants.EventSource.REQUEST_CONTENT.toLowerCase(), event.getSource());
    +        Assert.assertEquals(OptimizeTestConstants.EventType.OPTIMIZE, event.getType());
    +        Assert.assertEquals(OptimizeTestConstants.EventSource.REQUEST_CONTENT, event.getSource());
             Assert.assertTrue(eventData.size() > 0);
             Assert.assertEquals("updatepropositions", eventData.get("requesttype"));
             List> decisionScopes = (List>) eventData.get("decisionscopes");
    @@ -331,8 +332,8 @@ public void testUpdatePropositions_multipleValidDecisionScope() throws Interrupt
         public void testUpdatePropositions_ConfigNotAvailable() throws InterruptedException {
             //Setup
             final String decisionScopeName = "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==";
    -        TestHelper.clearSharedState();
    -        Thread.sleep(1000);
    +        clearUpdatedConfiguration();
    +
             //Action
             Optimize.updatePropositions(Collections.singletonList(new DecisionScope(decisionScopeName)), null, null);
     
    @@ -353,7 +354,7 @@ public void testUpdatePropositions_validAndInvalidDecisionScopes() throws Interr
             final String decisionScopeName2 = "MyMbox";
             Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
     
             //Action
             Optimize.updatePropositions(
    @@ -370,8 +371,8 @@ public void testUpdatePropositions_validAndInvalidDecisionScopes() throws Interr
             Assert.assertEquals(1, eventsListEdge.size());
             Event event = eventsListOptimize.get(0);
             Map eventData = event.getEventData();
    -        Assert.assertEquals(OptimizeTestConstants.EventType.OPTIMIZE.toLowerCase(), event.getType());
    -        Assert.assertEquals(OptimizeTestConstants.EventSource.REQUEST_CONTENT.toLowerCase(), event.getSource());
    +        Assert.assertEquals(OptimizeTestConstants.EventType.OPTIMIZE, event.getType());
    +        Assert.assertEquals(OptimizeTestConstants.EventSource.REQUEST_CONTENT, event.getSource());
             Assert.assertTrue(eventData.size() > 0);
             Assert.assertEquals("updatepropositions", eventData.get("requesttype"));
             List> decisionScopes = (List>) eventData.get("decisionscopes");
    @@ -399,7 +400,7 @@ public void testGetPropositions_decisionScopeInCache() throws InterruptedExcepti
             //Send Edge Response event so that propositions will get cached by the Optimize SDK
             final Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
             final String decisionScopeString = "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==";
     
             final String edgeResponseData = "{\n" +
    @@ -449,12 +450,7 @@ public void testGetPropositions_decisionScopeInCache() throws InterruptedExcepti
                     build();
     
             //Action
    -        MobileCore.dispatchEvent(event, new ExtensionErrorCallback() {
    -            @Override
    -            public void error(ExtensionError extensionError) {
    -                Assert.fail("Error in dispatching Edge Personalization event.");
    -            }
    -        });
    +        MobileCore.dispatchEvent(event);
     
             Thread.sleep(1000);
             TestHelper.resetTestExpectations();
    @@ -506,7 +502,7 @@ public void testGetPropositions_decisionScopeInCacheFromTargetResponseWithClickT
             //Send Edge Response event so that propositions will get cached by the Optimize SDK
             final Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
             final String decisionScopeString = "myMbox1";
     
             final String edgeResponseData = "{\n" +
    @@ -580,12 +576,7 @@ public void testGetPropositions_decisionScopeInCacheFromTargetResponseWithClickT
                     build();
     
             //Action
    -        MobileCore.dispatchEvent(event, new ExtensionErrorCallback() {
    -            @Override
    -            public void error(ExtensionError extensionError) {
    -                Assert.fail("Error in dispatching Edge Personalization event.");
    -            }
    -        });
    +        MobileCore.dispatchEvent(event);
     
             Thread.sleep(1000);
             TestHelper.resetTestExpectations();
    @@ -619,40 +610,40 @@ public void call(Map decisionScopePropositionMap) {
             Assert.assertEquals("myMbox1", proposition.getScope());
     
             final Map scopeDetails = proposition.getScopeDetails();
    -        assertEquals(5, scopeDetails.size());
    -        assertEquals("TGT", scopeDetails.get("decisionProvider"));
    +        Assert.assertEquals(5, scopeDetails.size());
    +        Assert.assertEquals("TGT", scopeDetails.get("decisionProvider"));
             final Map activity = (Map)scopeDetails.get("activity");
    -        assertNotNull(activity);
    -        assertEquals(1, activity.size());
    -        assertEquals("111111", activity.get("id"));
    +        Assert.assertNotNull(activity);
    +        Assert.assertEquals(1, activity.size());
    +        Assert.assertEquals("111111", activity.get("id"));
             final Map experience = (Map)scopeDetails.get("experience");
    -        assertNotNull(experience);
    -        assertEquals(1, experience.size());
    -        assertEquals("0", experience.get("id"));
    +        Assert.assertNotNull(experience);
    +        Assert.assertEquals(1, experience.size());
    +        Assert.assertEquals("0", experience.get("id"));
             final List> strategies = (List>)scopeDetails.get("strategies");
    -        assertNotNull(strategies);
    -        assertEquals(2, strategies.size());
    +        Assert.assertNotNull(strategies);
    +        Assert.assertEquals(2, strategies.size());
             final Map strategy0 = strategies.get(0);
    -        assertNotNull(strategy0);
    -        assertEquals(3, strategy0.size());
    -        assertEquals("entry", strategy0.get("step"));
    -        assertEquals("0", strategy0.get("algorithmID"));
    -        assertEquals("0", strategy0.get("trafficType"));
    +        Assert.assertNotNull(strategy0);
    +        Assert.assertEquals(3, strategy0.size());
    +        Assert.assertEquals("entry", strategy0.get("step"));
    +        Assert.assertEquals("0", strategy0.get("algorithmID"));
    +        Assert.assertEquals("0", strategy0.get("trafficType"));
             final Map strategy1 = strategies.get(1);
    -        assertNotNull(strategy1);
    -        assertEquals(3, strategy1.size());
    -        assertEquals("display", strategy1.get("step"));
    -        assertEquals("0", strategy1.get("algorithmID"));
    -        assertEquals("0", strategy1.get("trafficType"));
    +        Assert.assertNotNull(strategy1);
    +        Assert.assertEquals(3, strategy1.size());
    +        Assert.assertEquals("display", strategy1.get("step"));
    +        Assert.assertEquals("0", strategy1.get("algorithmID"));
    +        Assert.assertEquals("0", strategy1.get("trafficType"));
             final Map  characteristics = (Map)scopeDetails.get("characteristics");
    -        assertNotNull(characteristics);
    -        assertEquals(2, characteristics.size());
    -        assertEquals("SGFZpwAqaqFTayhAT2xsgzG3+2fw4m+O9FK8c0QoOHfxVkH1ttT1PGBX3/jV8a5uFF0fAox6CXpjJ1PGRVQBjHl9Zc6mRxY9NQeM7rs/3Es1RHPkzBzyhpVS6eg9q+kw", characteristics.get("stateToken"));
    +        Assert.assertNotNull(characteristics);
    +        Assert.assertEquals(2, characteristics.size());
    +        Assert.assertEquals("SGFZpwAqaqFTayhAT2xsgzG3+2fw4m+O9FK8c0QoOHfxVkH1ttT1PGBX3/jV8a5uFF0fAox6CXpjJ1PGRVQBjHl9Zc6mRxY9NQeM7rs/3Es1RHPkzBzyhpVS6eg9q+kw", characteristics.get("stateToken"));
             final Map eventTokens = (Map)characteristics.get("eventTokens");
    -        assertNotNull(eventTokens);
    -        assertEquals(2, eventTokens.size());
    -        assertEquals("MmvRrL5aB4Jz36JappRYg2qipfsIHvVzTQxHolz2IpSCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==", eventTokens.get("display"));
    -        assertEquals("EZDMbI2wmAyGcUYLr3VpmA==", eventTokens.get("click"));
    +        Assert.assertNotNull(eventTokens);
    +        Assert.assertEquals(2, eventTokens.size());
    +        Assert.assertEquals("MmvRrL5aB4Jz36JappRYg2qipfsIHvVzTQxHolz2IpSCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==", eventTokens.get("display"));
    +        Assert.assertEquals("EZDMbI2wmAyGcUYLr3VpmA==", eventTokens.get("click"));
     
             Assert.assertEquals(1, proposition.getOffers().size());
             final Offer offer = proposition.getOffers().get(0);
    @@ -671,7 +662,7 @@ public void testGetPropositions_notAllDecisionScopesInCache() throws IOException
             //Send Edge Response event so that propositions will get cached by the Optimize SDK
             final Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
             final String decisionScopeString = "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==";
     
             final String edgeResponseData = "{\n" +
    @@ -719,12 +710,7 @@ public void testGetPropositions_notAllDecisionScopesInCache() throws IOException
                     setEventData(eventData).build();
     
             //Action
    -        MobileCore.dispatchEvent(event, new ExtensionErrorCallback() {
    -            @Override
    -            public void error(ExtensionError extensionError) {
    -                Assert.fail("Error in dispatching Edge Personalization event.");
    -            }
    -        });
    +        MobileCore.dispatchEvent(event);
     
             Thread.sleep(1000);
             TestHelper.resetTestExpectations();
    @@ -779,7 +765,7 @@ public void testGetPropositions_noDecisionScopeInCache() throws IOException, Int
             //Send Edge Response event so that propositions will get cached by the Optimize SDK
             final Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
             final String decisionScopeString = "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==";
     
             final String edgeResponseData = "{\n" +
    @@ -828,12 +814,7 @@ public void testGetPropositions_noDecisionScopeInCache() throws IOException, Int
                     build();
     
             //Action
    -        MobileCore.dispatchEvent(event, new ExtensionErrorCallback() {
    -            @Override
    -            public void error(ExtensionError extensionError) {
    -                Assert.fail("Error in dispatching Edge Personalization event.");
    -            }
    -        });
    +        MobileCore.dispatchEvent(event);
     
             Thread.sleep(1000);
             TestHelper.resetTestExpectations();
    @@ -873,7 +854,7 @@ public void testGetPropositions_emptyCache() throws InterruptedException {
             //setup
             final Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
             final DecisionScope decisionScope1 = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==");
             final DecisionScope decisionScope2 = new DecisionScope("myMbox");
     
    @@ -913,14 +894,14 @@ public void testTrackPropositions_validPropositionInteractionsForDisplay() throw
             //setup
             final Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
     
             Offer offer = new Offer.Builder("xcore:personalized-offer:1111111111111111", OfferType.TEXT, "Text Offer!!").build();
             Proposition proposition = new Proposition(
                     "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
                     Collections.singletonList(offer),
                     "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==",
    -                Collections.emptyMap()
    +                Collections.emptyMap()
             );
     
             //Action
    @@ -963,7 +944,7 @@ public void testTrackPropositions_validPropositionInteractionsForTap() throws IO
             //setup
             final Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
             final String testScopeDetails = "        {\n" +
                     "        \"decisionProvider\": \"TGT\",\n" +
                     "                \"activity\": {\n" +
    @@ -1032,7 +1013,7 @@ public void testTrackPropositions_validPropositionInteractionsWithDatasetConfig(
             final Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
             configData.put("optimize.datasetId", "111111111111111111111111");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
             final String testDecisionScopes = "        {\n" +
                     "        \"decisionProvider\": \"TGT\",\n" +
                     "                \"activity\": {\n" +
    @@ -1079,8 +1060,6 @@ public void testTrackPropositions_validPropositionInteractionsWithDatasetConfig(
                     .get("propositions");
             Assert.assertNotNull(propositionList);
             Assert.assertEquals(1, propositionList.size());
    -        Map propositionData = propositionList.get(0);
    -        List> propositionsList = (List>) propositionData.get("propositions");
             Assert.assertNotNull(propositionList);
             Assert.assertEquals(1, propositionList.size());
             Map propositionMap = propositionList.get(0);
    @@ -1102,7 +1081,7 @@ public void testClearCachedPropositions() throws InterruptedException, IOExcepti
             //Send Edge Response event so that propositions will get cached by the Optimize SDK
             final Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
             final String decisionScopeString = "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==";
     
             final String edgeResponseData = "{\n" +
    @@ -1151,12 +1130,7 @@ public void testClearCachedPropositions() throws InterruptedException, IOExcepti
                     build();
     
             //Action
    -        MobileCore.dispatchEvent(event, new ExtensionErrorCallback() {
    -            @Override
    -            public void error(ExtensionError extensionError) {
    -                Assert.fail("Error in dispatching Edge Personalization event.");
    -            }
    -        });
    +        MobileCore.dispatchEvent(event);
     
             Thread.sleep(1000);
     
    @@ -1212,7 +1186,7 @@ public void testCoreResetIdentities() throws InterruptedException, IOException {
             //Send Edge Response event so that propositions will get cached by the Optimize SDK
             final Map configData = new HashMap<>();
             configData.put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff");
    -        MobileCore.updateConfiguration(configData);
    +        updateConfiguration(configData);
             final String decisionScopeString = "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==";
     
             final String edgeResponseData = "{\n" +
    @@ -1261,12 +1235,7 @@ public void testCoreResetIdentities() throws InterruptedException, IOException {
                     build();
     
             //Action
    -        MobileCore.dispatchEvent(event, new ExtensionErrorCallback() {
    -            @Override
    -            public void error(ExtensionError extensionError) {
    -                Assert.fail("Error in dispatching Edge Personalization event.");
    -            }
    -        });
    +        MobileCore.dispatchEvent(event);
     
             Thread.sleep(1000);
     
    @@ -1357,25 +1326,25 @@ public void testOfferGenerateDisplayInteractionXdm() throws IOException {
             final Map propositionInteractionXdm = offer.generateDisplayInteractionXdm();
     
             //Assert
    -        assertNotNull(propositionInteractionXdm);
    -        assertEquals("decisioning.propositionDisplay", propositionInteractionXdm.get("eventType"));
    +        Assert.assertNotNull(propositionInteractionXdm);
    +        Assert.assertEquals("decisioning.propositionDisplay", propositionInteractionXdm.get("eventType"));
             final Map experience = (Map)propositionInteractionXdm.get("_experience");
    -        assertNotNull(experience);
    +        Assert.assertNotNull(experience);
             final Map decisioning = (Map)experience.get("decisioning");
    -        assertNotNull(decisioning);
    +        Assert.assertNotNull(decisioning);
             final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions");
    -        assertNotNull(propositionInteractionDetailsList);
    -        assertEquals(1, propositionInteractionDetailsList.size());
    +        Assert.assertNotNull(propositionInteractionDetailsList);
    +        Assert.assertEquals(1, propositionInteractionDetailsList.size());
             final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0);
    -        assertEquals("de03ac85-802a-4331-a905-a57053164d35", propositionInteractionDetailsMap.get("id"));
    -        assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", propositionInteractionDetailsMap.get("scope"));
    +        Assert.assertEquals("de03ac85-802a-4331-a905-a57053164d35", propositionInteractionDetailsMap.get("id"));
    +        Assert.assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", propositionInteractionDetailsMap.get("scope"));
             final Map scopeDetails = (Map)propositionInteractionDetailsMap.get("scopeDetails");
    -        assertNotNull(scopeDetails);
    -        assertTrue(scopeDetails.isEmpty());
    +        Assert.assertNotNull(scopeDetails);
    +        Assert.assertTrue(scopeDetails.isEmpty());
             final List> items = (List>)propositionInteractionDetailsMap.get("items");
    -        assertNotNull(items);
    -        assertEquals(1, items.size());
    -        assertEquals("xcore:personalized-offer:1111111111111111", items.get(0).get("id"));
    +        Assert.assertNotNull(items);
    +        Assert.assertEquals(1, items.size());
    +        Assert.assertEquals("xcore:personalized-offer:1111111111111111", items.get(0).get("id"));
         }
     
         //17
    @@ -1426,25 +1395,25 @@ public void testOfferGenerateTapInteractionXdm() throws IOException {
     
             //Assert
             // verify
    -        assertNotNull(propositionTapInteractionXdm);
    -        assertEquals("decisioning.propositionInteract", propositionTapInteractionXdm.get("eventType"));
    +        Assert.assertNotNull(propositionTapInteractionXdm);
    +        Assert.assertEquals("decisioning.propositionInteract", propositionTapInteractionXdm.get("eventType"));
             final Map experience = (Map)propositionTapInteractionXdm.get("_experience");
    -        assertNotNull(experience);
    +        Assert.assertNotNull(experience);
             final Map decisioning = (Map)experience.get("decisioning");
    -        assertNotNull(decisioning);
    +        Assert.assertNotNull(decisioning);
             final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions");
    -        assertNotNull(propositionInteractionDetailsList);
    -        assertEquals(1, propositionInteractionDetailsList.size());
    +        Assert.assertNotNull(propositionInteractionDetailsList);
    +        Assert.assertEquals(1, propositionInteractionDetailsList.size());
             final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0);
    -        assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id"));
    -        assertEquals("myMbox", propositionInteractionDetailsMap.get("scope"));
    +        Assert.assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id"));
    +        Assert.assertEquals("myMbox", propositionInteractionDetailsMap.get("scope"));
             final Map scopeDetails = (Map) propositionInteractionDetailsMap.get("scopeDetails");
    -        assertNotNull(scopeDetails);
    -        assertTrue(scopeDetails.size() > 0);
    +        Assert.assertNotNull(scopeDetails);
    +        Assert.assertTrue(scopeDetails.size() > 0);
             final List> items = (List>)propositionInteractionDetailsMap.get("items");
    -        assertNotNull(items);
    -        assertEquals(1, items.size());
    -        assertEquals("246315", items.get(0).get("id"));
    +        Assert.assertNotNull(items);
    +        Assert.assertEquals(1, items.size());
    +        Assert.assertEquals("246315", items.get(0).get("id"));
     
     
     
    @@ -1489,11 +1458,25 @@ public void testPropositionGenerateReferenceXdm() throws IOException {
             final Map propositionReferenceXdm = proposition.generateReferenceXdm();
     
             // verify
    -        assertNotNull(propositionReferenceXdm);
    +        Assert.assertNotNull(propositionReferenceXdm);
             final Map experience = (Map)propositionReferenceXdm.get("_experience");
    -        assertNotNull(experience);
    +        Assert.assertNotNull(experience);
             final Map decisioning = (Map)experience.get("decisioning");
    -        assertNotNull(decisioning);
    -        assertEquals("de03ac85-802a-4331-a905-a57053164d35", decisioning.get("propositionID"));
    +        Assert.assertNotNull(decisioning);
    +        Assert.assertEquals("de03ac85-802a-4331-a905-a57053164d35", decisioning.get("propositionID"));
    +    }
    +
    +    private void updateConfiguration(final Map config) throws InterruptedException {
    +        final CountDownLatch latch = new CountDownLatch(1);
    +        MonitorExtension.configurationAwareness(configurationState -> latch.countDown());
    +        MobileCore.updateConfiguration(config);
    +        Assert.assertTrue(latch.await(2, TimeUnit.SECONDS));
    +    }
    +
    +    private void clearUpdatedConfiguration() throws InterruptedException {
    +        final CountDownLatch latch = new CountDownLatch(1);
    +        MonitorExtension.configurationAwareness(configurationState -> latch.countDown());
    +        MobileCore.clearUpdatedConfiguration();
    +        Assert.assertTrue(latch.await(2, TimeUnit.SECONDS));
         }
     }
    \ No newline at end of file
    diff --git a/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/optimize/OptimizeTestConstants.java b/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/optimize/OptimizeTestConstants.java
    index 5cfb6afb..624d75f0 100644
    --- a/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/optimize/OptimizeTestConstants.java
    +++ b/code/optimize/src/androidTest/java/com/adobe/marketing/mobile/optimize/OptimizeTestConstants.java
    @@ -14,7 +14,9 @@
     
     public class OptimizeTestConstants {
     
    -    static final String EXTENSION_VERSION = "1.0.1";
    +    static final String EXTENSION_VERSION = "2.0.0";
    +    public static final String LOG_TAG = "OptimizeTest";
    +    static final String CONFIG_DATA_STORE = "AdobeMobile_ConfigState";
     
         public final static class EventType {
             public static final String MONITOR = "com.adobe.functional.eventType.monitor";
    diff --git a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/DecisionScope.java b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/DecisionScope.java
    index ac52d45d..2f1cddc5 100644
    --- a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/DecisionScope.java
    +++ b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/DecisionScope.java
    @@ -12,8 +12,7 @@
     
     package com.adobe.marketing.mobile.optimize;
     
    -import com.adobe.marketing.mobile.LoggingMode;
    -import com.adobe.marketing.mobile.MobileCore;
    +import com.adobe.marketing.mobile.services.Log;
     
     import org.json.JSONException;
     import org.json.JSONObject;
    @@ -22,12 +21,11 @@
     import java.util.Map;
     import java.util.Objects;
     
    -import static com.adobe.marketing.mobile.optimize.OptimizeConstants.LOG_TAG;
    -
     /**
      * {@code DecisionScope} class represents a scope used to fetch personalized offers from the Experience Edge network.
      */
     public class DecisionScope {
    +    private static final String SELF_TAG = "DecisionScope";
         private static final String SCOPE_JSON = "{\"activityId\":\"%s\",\"placementId\":\"%s\"}";
         private static final String SCOPE_WITH_ITEMCOUNT_JSON = "{\"activityId\":\"%s\",\"placementId\":\"%s\",\"itemCount\":%s}";
         private static final int DEFAULT_ITEM_COUNT = 1;
    @@ -83,7 +81,7 @@ public String getName() {
          */
         boolean isValid() {
             if (OptimizeUtils.isNullOrEmpty(name)) {
    -            MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Invalid scope! Scope name is null or empty.");
    +            Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Invalid scope! Scope name is null or empty.");
                 return false;
             }
     
    @@ -94,52 +92,52 @@ boolean isValid() {
                     if (jsonObject.has(OptimizeConstants.XDM_NAME)) {
                         final String scopeName = jsonObject.getString(OptimizeConstants.XDM_NAME);
                         if (OptimizeUtils.isNullOrEmpty(scopeName)) {
    -                        MobileCore.log(LoggingMode.DEBUG, LOG_TAG, String.format("Invalid scope (%s)! Scope name is null or empty.", name));
    +                        Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Invalid scope (%s)! Scope name is null or empty.", name);
                             return false;
                         }
                     } else if (jsonObject.has(OptimizeConstants.XDM_ACTIVITY_ID)) {
                         final String activityId = jsonObject.getString(OptimizeConstants.XDM_ACTIVITY_ID);
                         if (OptimizeUtils.isNullOrEmpty(activityId)) {
    -                        MobileCore.log(LoggingMode.DEBUG, LOG_TAG, String.format("Invalid scope (%s)! Activity Id is null or empty.", name));
    +                        Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Invalid scope (%s)! Activity Id is null or empty.", name);
                             return false;
                         }
     
                         final String placementId = jsonObject.getString(OptimizeConstants.XDM_PLACEMENT_ID);
                         if (OptimizeUtils.isNullOrEmpty(placementId)) {
    -                        MobileCore.log(LoggingMode.DEBUG, LOG_TAG, String.format("Invalid scope (%s)! Placement Id is null or empty.", name));
    +                        Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Invalid scope (%s)! Placement Id is null or empty.", name);
                             return false;
                         }
     
                         final int itemCount = jsonObject.optInt(OptimizeConstants.XDM_ITEM_COUNT, DEFAULT_ITEM_COUNT);
                         if (itemCount < DEFAULT_ITEM_COUNT) {
    -                        MobileCore.log(LoggingMode.DEBUG, LOG_TAG, String.format("Invalid scope (%s)! Item count (%d) is invalid.", name, itemCount));
    +                        Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Invalid scope (%s)! Item count (%d) is invalid.", name, itemCount);
                             return false;
                         }
                     } else {
                         final String activityId = jsonObject.getString(OptimizeConstants.ACTIVITY_ID);
                         if (OptimizeUtils.isNullOrEmpty(activityId)) {
    -                        MobileCore.log(LoggingMode.DEBUG, LOG_TAG, String.format("Invalid scope (%s)! Activity Id is null or empty.", name));
    +                        Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Invalid scope (%s)! Activity Id is null or empty.", name);
                             return false;
                         }
     
                         final String placementId = jsonObject.getString(OptimizeConstants.PLACEMENT_ID);
                         if (OptimizeUtils.isNullOrEmpty(placementId)) {
    -                        MobileCore.log(LoggingMode.DEBUG, LOG_TAG, String.format("Invalid scope (%s)! Placement Id is null or empty.", name));
    +                        Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Invalid scope (%s)! Placement Id is null or empty.", name);
                             return false;
                         }
     
                         final int itemCount = jsonObject.optInt(OptimizeConstants.ITEM_COUNT, DEFAULT_ITEM_COUNT);
                         if (itemCount < DEFAULT_ITEM_COUNT) {
    -                        MobileCore.log(LoggingMode.DEBUG, LOG_TAG, String.format("Invalid scope (%s)! Item count (%d) is invalid.", name, itemCount));
    +                        Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Invalid scope (%s)! Item count (%d) is invalid.", name, itemCount);
                             return false;
                         }
                     }
                 } catch (JSONException e) {
    -                MobileCore.log(LoggingMode.WARNING, LOG_TAG, String.format("Scope name (%s), when decoded, does not contain a JSON string.", name));
    +                Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, "Scope name (%s), when decoded, does not contain a JSON string.", name);
                 }
             }
     
    -        MobileCore.log(LoggingMode.VERBOSE, LOG_TAG, String.format("Decision scope (%s) is valid.", name));
    +        Log.trace(OptimizeConstants.LOG_TAG, SELF_TAG, "Decision scope (%s) is valid.", name);
             return true;
         }
     
    @@ -160,7 +158,7 @@ boolean isValid() {
          */
         static String generateEncodedScope(final String activityId, final String placementId, final int itemCount) {
             if (OptimizeUtils.isNullOrEmpty(activityId) || OptimizeUtils.isNullOrEmpty(placementId) || itemCount <= 0) {
    -            MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot generate the Base64 encoded decision scope as the provided activityId or placementId or itemCount is invalid.");
    +            Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "generateEncodedScope - Cannot generate the Base64 encoded decision scope as the provided activityId or placementId or itemCount is invalid.");
                 return null;
             }
     
    @@ -184,13 +182,13 @@ static String generateEncodedScope(final String activityId, final String placeme
         static DecisionScope fromEventData(final Map data) {
             if (OptimizeUtils.isNullOrEmpty(data)
                     || !data.containsKey(OptimizeConstants.EventDataKeys.DECISION_SCOPE_NAME)) {
    -            MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot create DecisionScope object, provided data Map is empty or null.");
    +            Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG,"Cannot create DecisionScope object, provided data Map is empty or null.");
                 return null;
             }
     
             final String name = (String) data.get(OptimizeConstants.EventDataKeys.DECISION_SCOPE_NAME);
             if (OptimizeUtils.isNullOrEmpty(name)) {
    -            MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot create DecisionScope object, provided data does not contain valid scope name.");
    +            Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot create DecisionScope object, provided data does not contain valid scope name.");
                 return null;
             }
     
    @@ -209,7 +207,7 @@ Map toEventData() {
         }
     
         @Override
    -    public boolean equals(Object o) {
    +    public boolean equals(final Object o) {
             if (this == o) return true;
             if (o == null || getClass() != o.getClass()) return false;
     
    diff --git a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerEdgeErrorResponseContent.java b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerEdgeErrorResponseContent.java
    deleted file mode 100644
    index bfdabfd7..00000000
    --- a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerEdgeErrorResponseContent.java
    +++ /dev/null
    @@ -1,71 +0,0 @@
    -/*
    - Copyright 2021 Adobe. All rights reserved.
    - This file is licensed to you 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 REPRESENTATIONS
    - OF ANY KIND, either express or implied. See the License for the specific language
    - governing permissions and limitations under the License.
    - */
    -
    -package com.adobe.marketing.mobile.optimize;
    -
    -import com.adobe.marketing.mobile.Event;
    -import com.adobe.marketing.mobile.ExtensionApi;
    -import com.adobe.marketing.mobile.ExtensionListener;
    -import com.adobe.marketing.mobile.LoggingMode;
    -import com.adobe.marketing.mobile.MobileCore;
    -
    -/**
    - * Listens for {@code EventType.Edge}, {@code EventSource.ERROR_RESPONSE_CONTENT} events and invokes method on the
    - * parent {@code OptimizeExtension} for handling the requests.
    - */
    -class ListenerEdgeErrorResponseContent extends ExtensionListener {
    -    /**
    -     * Constructor.
    -     *
    -     * @param extensionApi an instance of {@link ExtensionApi}
    -     * @param type {@link String} containing event type this listener is registered to handle.
    -     * @param source {@code String} event source this listener is registered to handle.
    -     */
    -    ListenerEdgeErrorResponseContent(final ExtensionApi extensionApi, final String type, final String source) {
    -        super(extensionApi, type, source);
    -    }
    -
    -    /**
    -     * This listener method listens to {@value OptimizeConstants.EventType#EDGE} and {@value OptimizeConstants.EventSource#ERROR_RESPONSE_CONTENT} events.
    -     * 

    - * It invokes method on the parent {@link OptimizeExtension} to handle Edge response containing error information when fetching propositions - * for requested decision scopes. - * - * @param event {@link Event} to be processed. - */ - @Override - public void hear(final Event event) { - if (event == null || event.getEventData() == null || event.getEventData().isEmpty()) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, - "Ignoring the Edge error response event, either event is null or event data is null/ empty."); - return; - } - - final OptimizeExtension parentExtension = getOptimizeExtension(); - if (parentExtension == null) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, - "Ignoring the Edge error response event, parent extension for this listener is null."); - return; - } - - parentExtension.handleEdgeErrorResponse(event); - } - - /** - * Returns the parent extension for this listener. - * - * @return an {@link OptimizeExtension} instance registered with the {@code EventHub}. - */ - OptimizeExtension getOptimizeExtension() { - return (OptimizeExtension) getParentExtension(); - } -} diff --git a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerEdgeResponseContent.java b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerEdgeResponseContent.java deleted file mode 100644 index 1ee9a5a7..00000000 --- a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerEdgeResponseContent.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright 2021 Adobe. All rights reserved. - This file is licensed to you 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 REPRESENTATIONS - OF ANY KIND, either express or implied. See the License for the specific language - governing permissions and limitations under the License. - */ - -package com.adobe.marketing.mobile.optimize; - -import com.adobe.marketing.mobile.Event; -import com.adobe.marketing.mobile.ExtensionApi; -import com.adobe.marketing.mobile.ExtensionListener; -import com.adobe.marketing.mobile.LoggingMode; -import com.adobe.marketing.mobile.MobileCore; - -/** - * Listens for {@code EventType.Edge}, {@code EventSource.EDGE_PERSONALIZATION_DECISIONS} events and invokes method on the - * parent {@code OptimizeExtension} for handling the requests. - */ -class ListenerEdgeResponseContent extends ExtensionListener { - /** - * Constructor. - * - * @param extensionApi an instance of {@link ExtensionApi} - * @param type {@link String} containing event type this listener is registered to handle. - * @param source {@code String} event source this listener is registered to handle. - */ - ListenerEdgeResponseContent(final ExtensionApi extensionApi, final String type, final String source) { - super(extensionApi, type, source); - } - - /** - * This listener method listens to {@value OptimizeConstants.EventType#EDGE} and {@value OptimizeConstants.EventSource#EDGE_PERSONALIZATION_DECISIONS} events. - *

    - * It invokes method on the parent {@link OptimizeExtension} to handle Edge response containing propositions for requested decision scopes. - * - * @param event {@link Event} to be processed. - */ - @Override - public void hear(final Event event) { - if (event == null || event.getEventData() == null || event.getEventData().isEmpty()) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, - "Ignoring the Edge personalization:decisions event, either event is null or event data is null/ empty."); - return; - } - - final OptimizeExtension parentExtension = getOptimizeExtension(); - if (parentExtension == null) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, - "Ignoring the Edge personalization:decisions event, parent extension for this listener is null."); - return; - } - - parentExtension.handleEdgeResponse(event); - } - - /** - * Returns the parent extension for this listener. - * - * @return an {@link OptimizeExtension} instance registered with the {@code EventHub}. - */ - OptimizeExtension getOptimizeExtension() { - return (OptimizeExtension) getParentExtension(); - } -} diff --git a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerGenericIdentityRequestReset.java b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerGenericIdentityRequestReset.java deleted file mode 100644 index 9af94f60..00000000 --- a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerGenericIdentityRequestReset.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright 2021 Adobe. All rights reserved. - This file is licensed to you 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 REPRESENTATIONS - OF ANY KIND, either express or implied. See the License for the specific language - governing permissions and limitations under the License. - */ - -package com.adobe.marketing.mobile.optimize; - -import com.adobe.marketing.mobile.Event; -import com.adobe.marketing.mobile.ExtensionApi; -import com.adobe.marketing.mobile.ExtensionListener; -import com.adobe.marketing.mobile.LoggingMode; -import com.adobe.marketing.mobile.MobileCore; - -/** - * Listens for {@code EventType.GENERIC_IDENTITY}, {@code EventSource.REQUEST_RESET} events and invokes method on the - * parent {@code OptimizeExtension} for handling the requests. - */ -class ListenerGenericIdentityRequestReset extends ExtensionListener { - /** - * Constructor. - * - * @param extensionApi an instance of {@link ExtensionApi} - * @param type {@link String} containing event type this listener is registered to handle. - * @param source {@code String} event source this listener is registered to handle. - */ - ListenerGenericIdentityRequestReset(final ExtensionApi extensionApi, final String type, final String source) { - super(extensionApi, type, source); - } - - /** - * This listener method listens to {@value OptimizeConstants.EventType#GENERIC_IDENTITY} and {@value OptimizeConstants.EventSource#REQUEST_RESET} events. - *

    - * It invokes method on the parent {@link OptimizeExtension} to handle requests for clearing previously cached propositions. - * - * @param event {@link Event} to be processed. - */ - @Override - public void hear(final Event event) { - if (event == null) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, - "Cannot process generic identity reset request, event is null."); - return; - } - - final OptimizeExtension parentExtension = getOptimizeExtension(); - if (parentExtension == null) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, - "Ignoring the generic identity request reset event, parent extension for this listener is null."); - return; - } - - parentExtension.handleClearPropositions(event); - } - - /** - * Returns the parent extension for this listener. - * - * @return an {@link OptimizeExtension} instance registered with the {@code EventHub}. - */ - OptimizeExtension getOptimizeExtension() { - return (OptimizeExtension) getParentExtension(); - } -} diff --git a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestContent.java b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestContent.java deleted file mode 100644 index f17fac29..00000000 --- a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestContent.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - Copyright 2021 Adobe. All rights reserved. - This file is licensed to you 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 REPRESENTATIONS - OF ANY KIND, either express or implied. See the License for the specific language - governing permissions and limitations under the License. - */ - -package com.adobe.marketing.mobile.optimize; - -import com.adobe.marketing.mobile.Event; -import com.adobe.marketing.mobile.ExtensionApi; -import com.adobe.marketing.mobile.ExtensionListener; -import com.adobe.marketing.mobile.LoggingMode; -import com.adobe.marketing.mobile.MobileCore; - -import java.util.Map; - -/** - * Listens for {@code EventType.Optimize}, {@code EventSource.REQUEST_CONTENT} events and invokes method on the - * parent {@code OptimizeExtension} for handling the requests. - */ -class ListenerOptimizeRequestContent extends ExtensionListener { - /** - * Constructor. - * - * @param extensionApi an instance of {@link ExtensionApi} - * @param type {@link String} containing event type this listener is registered to handle. - * @param source {@code String} event source this listener is registered to handle. - */ - ListenerOptimizeRequestContent(final ExtensionApi extensionApi, final String type, final String source) { - super(extensionApi, type, source); - } - - /** - * This listener method listens to {@value OptimizeConstants.EventType#OPTIMIZE} and {@value OptimizeConstants.EventSource#REQUEST_CONTENT} events. - *

    - * It invokes method on the parent {@link OptimizeExtension} to handle requests for, - *

      - *
    • Updating propositions in the extension by sending personalization query requests to the Experience Edge.
    • - *
    • Retrieving previously fetched and cached propositions in the extension.
    • - *
    • Sending proposition interactions information to the Edge network.
    • - *
    - * - * @param event {@link Event} to be processed. - */ - @Override - public void hear(final Event event) { - if (event == null || event.getEventData() == null || event.getEventData().isEmpty()) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, - "Ignoring the Optimize request event, either event is null or event data is null/ empty."); - return; - } - - final OptimizeExtension parentExtension = getOptimizeExtension(); - if (parentExtension == null) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, - "Ignoring the Optimize request event, parent extension for this listener is null."); - return; - } - - final Map eventData = event.getEventData(); - final String requestType = (String) eventData.get(OptimizeConstants.EventDataKeys.REQUEST_TYPE); - - if (requestType.equals(OptimizeConstants.EventDataValues.REQUEST_TYPE_UPDATE)) { - parentExtension.handleUpdatePropositions(event); - } else if (requestType.equals(OptimizeConstants.EventDataValues.REQUEST_TYPE_GET)) { - parentExtension.handleGetPropositions(event); - } else if (requestType.equals(OptimizeConstants.EventDataValues.REQUEST_TYPE_TRACK)) { - parentExtension.handleTrackPropositions(event); - } else { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, - String.format("Ignoring the Optimize request event, provided request type (%s) is not handled by this extension.", requestType)); - } - } - - /** - * Returns the parent extension for this listener. - * - * @return an {@link OptimizeExtension} instance registered with the {@code EventHub}. - */ - OptimizeExtension getOptimizeExtension() { - return (OptimizeExtension) getParentExtension(); - } -} diff --git a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestReset.java b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestReset.java deleted file mode 100644 index a4dd3b39..00000000 --- a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestReset.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright 2021 Adobe. All rights reserved. - This file is licensed to you 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 REPRESENTATIONS - OF ANY KIND, either express or implied. See the License for the specific language - governing permissions and limitations under the License. - */ - -package com.adobe.marketing.mobile.optimize; - -import com.adobe.marketing.mobile.Event; -import com.adobe.marketing.mobile.ExtensionApi; -import com.adobe.marketing.mobile.ExtensionListener; -import com.adobe.marketing.mobile.LoggingMode; -import com.adobe.marketing.mobile.MobileCore; - -/** - * Listens for {@code EventType.Optimize}, {@code EventSource.REQUEST_RESET} events and invokes method on the - * parent {@code OptimizeExtension} for handling the requests. - */ -class ListenerOptimizeRequestReset extends ExtensionListener { - /** - * Constructor. - * - * @param extensionApi an instance of {@link ExtensionApi} - * @param type {@link String} containing event type this listener is registered to handle. - * @param source {@code String} event source this listener is registered to handle. - */ - ListenerOptimizeRequestReset(final ExtensionApi extensionApi, final String type, final String source) { - super(extensionApi, type, source); - } - - /** - * This listener method listens to {@value OptimizeConstants.EventType#OPTIMIZE} and {@value OptimizeConstants.EventSource#REQUEST_RESET} events. - *

    - * It invokes method on the parent {@link OptimizeExtension} to handle requests for clearing previously cached propositions. - * - * @param event {@link Event} to be processed. - */ - @Override - public void hear(final Event event) { - if (event == null) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, - "Cannot process Optimize reset request, event is null."); - return; - } - - final OptimizeExtension parentExtension = getOptimizeExtension(); - if (parentExtension == null) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, - "Ignoring the Optimize request reset event, parent extension for this listener is null."); - return; - } - - parentExtension.handleClearPropositions(event); - } - - /** - * Returns the parent extension for this listener. - * - * @return an {@link OptimizeExtension} instance registered with the {@code EventHub}. - */ - OptimizeExtension getOptimizeExtension() { - return (OptimizeExtension) getParentExtension(); - } -} diff --git a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/Offer.java b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/Offer.java index 1c8e0678..2a324e91 100644 --- a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/Offer.java +++ b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/Offer.java @@ -13,10 +13,10 @@ package com.adobe.marketing.mobile.optimize; import com.adobe.marketing.mobile.Event; -import com.adobe.marketing.mobile.ExtensionError; -import com.adobe.marketing.mobile.ExtensionErrorCallback; -import com.adobe.marketing.mobile.LoggingMode; import com.adobe.marketing.mobile.MobileCore; +import com.adobe.marketing.mobile.services.Log; +import com.adobe.marketing.mobile.util.DataReader; +import com.adobe.marketing.mobile.util.DataReaderException; import org.json.JSONObject; @@ -27,9 +27,9 @@ import java.util.Map; import java.util.Objects; -import static com.adobe.marketing.mobile.optimize.OptimizeConstants.LOG_TAG; - public class Offer { + + private static final String SELF_TAG = "Offer"; private String id; private String etag; private int score; @@ -167,7 +167,6 @@ public Builder setCharacteristics(final Map characteristics) { * Builds and returns the {@code Offer} object. * * @return {@link Offer} object or null. - * @throws UnsupportedOperationException if this method is invoked after {@link Builder#build()}. */ public Offer build() { throwIfAlreadyBuilt(); @@ -376,7 +375,7 @@ private Map generateInteractionXdm(final String experienceEventT */ private void trackWithData(final Map xdm) { if (OptimizeUtils.isNullOrEmpty(xdm)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Failed to dispatch track propositions request event, input xdm is null or empty."); return; } @@ -391,13 +390,7 @@ private void trackWithData(final Map xdm) { .setEventData(eventData) .build(); - MobileCore.dispatchEvent(edgeEvent, new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, - String.format("Failed to dispatch track propositions request event due to an error (%s)!", extensionError.getErrorName())); - } - }); + MobileCore.dispatchEvent(edgeEvent); } /** @@ -410,36 +403,35 @@ public void error(final ExtensionError extensionError) { */ static Offer fromEventData(final Map data) { if (OptimizeUtils.isNullOrEmpty(data)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot create Offer object, provided data Map is empty or null."); + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot create Offer object, provided data Map is empty or null."); return null; } try { - final String id = (String) data.get(OptimizeConstants.JsonKeys.PAYLOAD_ITEM_ID); - final String etag = (String) data.get(OptimizeConstants.JsonKeys.PAYLOAD_ITEM_ETAG); - final int score = data.containsKey(OptimizeConstants.JsonKeys.PAYLOAD_ITEM_SCORE) ? - (int) data.get(OptimizeConstants.JsonKeys.PAYLOAD_ITEM_SCORE) : 0; - final String schema = (String) data.get(OptimizeConstants.JsonKeys.PAYLOAD_ITEM_SCHEMA); + final String id = DataReader.getString(data, OptimizeConstants.JsonKeys.PAYLOAD_ITEM_ID); + final String etag = DataReader.getString(data, OptimizeConstants.JsonKeys.PAYLOAD_ITEM_ETAG); + final int score = DataReader.optInt(data, OptimizeConstants.JsonKeys.PAYLOAD_ITEM_SCORE, 0); + final String schema = DataReader.getString(data, OptimizeConstants.JsonKeys.PAYLOAD_ITEM_SCHEMA); - final Map meta = (Map) data.get(OptimizeConstants.JsonKeys.PAYLOAD_ITEM_META); + final Map meta = DataReader.getTypedMap(Object.class, data, OptimizeConstants.JsonKeys.PAYLOAD_ITEM_META); - final Map offerData = (Map) data.get(OptimizeConstants.JsonKeys.PAYLOAD_ITEM_DATA); + final Map offerData = DataReader.getTypedMap(Object.class, data, OptimizeConstants.JsonKeys.PAYLOAD_ITEM_DATA); if (!OptimizeUtils.isNullOrEmpty(offerData)) { final String nestedId = (String) offerData.get(OptimizeConstants.JsonKeys.PAYLOAD_ITEM_DATA_ID); if (OptimizeUtils.isNullOrEmpty(id) || !id.equals(nestedId)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot create Offer object, provided item id is null or empty or it doesn't match item data id."); + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG,"Cannot create Offer object, provided item id is null or empty or it doesn't match item data id."); return null; } final String format = (String) offerData.get(OptimizeConstants.JsonKeys.PAYLOAD_ITEM_DATA_FORMAT); if (OptimizeUtils.isNullOrEmpty(format)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot create Offer object, provided data Map doesn't contain valid item data format."); + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot create Offer object, provided data Map doesn't contain valid item data format."); return null; } - final List language = (List) offerData.get(OptimizeConstants.JsonKeys.PAYLOAD_ITEM_DATA_LANGUAGE); - final Map characteristics = (Map) offerData.get(OptimizeConstants.JsonKeys.PAYLOAD_ITEM_DATA_CHARACTERISTICS); + final List language = DataReader.getStringList(offerData, OptimizeConstants.JsonKeys.PAYLOAD_ITEM_DATA_LANGUAGE); + final Map characteristics = DataReader.getStringMap(offerData, OptimizeConstants.JsonKeys.PAYLOAD_ITEM_DATA_CHARACTERISTICS); String content = null; @@ -455,7 +447,7 @@ static Offer fromEventData(final Map data) { content = (String) offerData.get(OptimizeConstants.JsonKeys.PAYLOAD_ITEM_DATA_DELIVERYURL); } if (content == null) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot create Offer object, provided data Map doesn't contain valid item data content or deliveryURL."); + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot create Offer object, provided data Map doesn't contain valid item data content or deliveryURL."); return null; } @@ -469,10 +461,10 @@ static Offer fromEventData(final Map data) { .build(); } else { if (!schema.equals(OptimizeConstants.JsonValues.SCHEMA_TARGET_DEFAULT)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot create Offer object, provided data Map doesn't contain valid item data."); + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot create Offer object, provided data Map doesn't contain valid item data."); return null; } - MobileCore.log(LoggingMode.VERBOSE, LOG_TAG, "Received default content proposition item, Offer content will be set to empty string."); + Log.trace(OptimizeConstants.LOG_TAG, SELF_TAG, "Received default content proposition item, Offer content will be set to empty string."); return new Builder(id, OfferType.UNKNOWN, "") .setEtag(null) .setScore(0) @@ -482,8 +474,8 @@ static Offer fromEventData(final Map data) { .setCharacteristics(null) .build(); } - } catch (final ClassCastException e) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, "Cannot create Offer object, provided data contains invalid fields."); + } catch (final ClassCastException | DataReaderException e) { + Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot create Offer object, provided data contains invalid fields."); return null; } } @@ -513,7 +505,7 @@ Map toEventData() { } @Override - public boolean equals(Object o) { + public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; diff --git a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/Optimize.java b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/Optimize.java index 306b515b..9e1f52b9 100644 --- a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/Optimize.java +++ b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/Optimize.java @@ -16,22 +16,27 @@ import com.adobe.marketing.mobile.AdobeCallbackWithError; import com.adobe.marketing.mobile.AdobeError; import com.adobe.marketing.mobile.Event; -import com.adobe.marketing.mobile.ExtensionError; -import com.adobe.marketing.mobile.ExtensionErrorCallback; -import com.adobe.marketing.mobile.LoggingMode; +import com.adobe.marketing.mobile.Extension; import com.adobe.marketing.mobile.MobileCore; +import com.adobe.marketing.mobile.services.Log; +import com.adobe.marketing.mobile.util.DataReader; +import com.adobe.marketing.mobile.util.DataReaderException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import static com.adobe.marketing.mobile.optimize.OptimizeConstants.LOG_TAG; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; /** * Public class containing APIs for the Optimize extension. */ public class Optimize { + public final static Class EXTENSION = OptimizeExtension.class; + private static final String SELF_TAG = "Optimize"; + private Optimize() {} /** @@ -39,6 +44,7 @@ private Optimize() {} * * @return {@link String} containing the current installed version of this extension. */ + @NonNull public static String extensionVersion() { return OptimizeConstants.EXTENSION_VERSION; } @@ -48,13 +54,14 @@ public static String extensionVersion() { *

    * Note: This method should be called only once in your application class. */ + @Deprecated public static void registerExtension() { - MobileCore.registerExtension(OptimizeExtension.class, new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.ERROR, LOG_TAG, - "An error occurred while registering the Optimize extension: " + extensionError.getErrorName()); + MobileCore.registerExtension(OptimizeExtension.class, extensionError -> { + if (extensionError == null) { + return; } + Log.error(OptimizeConstants.LOG_TAG, SELF_TAG, + "An error occurred while registering the Optimize extension: %s ", extensionError.getErrorName()); }); } @@ -67,9 +74,11 @@ public void error(final ExtensionError extensionError) { * @param xdm {@code Map} containing additional XDM-formatted data to be sent in the personalization query request. * @param data {@code Map} containing additional free-form data to be sent in the personalization query request. */ - public static void updatePropositions(final List decisionScopes, final Map xdm, final Map data) { + public static void updatePropositions(@NonNull final List decisionScopes, + @Nullable final Map xdm, + @Nullable final Map data) { if (OptimizeUtils.isNullOrEmpty(decisionScopes)) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, "Cannot update propositions, provided list of decision scopes is null or empty."); + Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot update propositions, provided list of decision scopes is null or empty."); return; } @@ -82,20 +91,10 @@ public static void updatePropositions(final List decisionScopes, } if (validScopes.size() == 0) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, "Cannot update propositions, provided list of decision scopes has no valid scope."); + Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot update propositions, provided list of decision scopes has no valid scope."); return; } - final ExtensionErrorCallback errorCallback = new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, - String.format("Failed to dispatch event (%s) due to error (%s).", - OptimizeConstants.EventNames.UPDATE_PROPOSITIONS_REQUEST, - extensionError.getErrorName())); - } - }; - final List> flattenedDecisionScopes = new ArrayList<>(); for (final DecisionScope scope: validScopes) { flattenedDecisionScopes.add(scope.toEventData()); @@ -119,20 +118,19 @@ public void error(final ExtensionError extensionError) { .setEventData(eventData) .build(); - MobileCore.dispatchEvent(event, errorCallback); + MobileCore.dispatchEvent(event); } /** * This API retrieves the previously fetched propositions, for the provided decision scopes, from the in-memory extension propositions cache. - *

    - * The returned decision propositions are cached in-memory in the Optimize SDK extension and can be retrieved using {@link #getPropositions(List, AdobeCallback)} API. * * @param decisionScopes {@code List} containing scopes for which offers need to be requested. * @param callback {@code AdobeCallbackWithError>} which will be invoked when decision propositions are retrieved from the local cache. */ - public static void getPropositions(final List decisionScopes, final AdobeCallback> callback) { + public static void getPropositions(@NonNull final List decisionScopes, + @NonNull final AdobeCallback> callback) { if (OptimizeUtils.isNullOrEmpty(decisionScopes)) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, "Cannot get propositions, provided list of decision scopes is null or empty."); + Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot get propositions, provided list of decision scopes is null or empty."); failWithError(callback, AdobeError.UNEXPECTED_ERROR); return; } @@ -146,21 +144,11 @@ public static void getPropositions(final List decisionScopes, fin } if (validScopes.size() == 0) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, "Cannot update propositions, provided list of decision scopes has no valid scope."); + Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot update propositions, provided list of decision scopes has no valid scope."); failWithError(callback, AdobeError.UNEXPECTED_ERROR); return; } - final ExtensionErrorCallback errorCallback = new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, - String.format("Failed to dispatch event (%s) due to error (%s).", - OptimizeConstants.EventNames.GET_PROPOSITIONS_REQUEST, - extensionError.getErrorName())); - } - }; - final List> flattenedDecisionScopes = new ArrayList<>(); for (final DecisionScope scope : validScopes) { flattenedDecisionScopes.add(scope.toEventData()); @@ -176,7 +164,7 @@ public void error(final ExtensionError extensionError) { .setEventData(eventData) .build(); - MobileCore.dispatchEventWithResponseCallback(event, new AdobeCallbackWithError() { + MobileCore.dispatchEventWithResponseCallback(event, OptimizeConstants.DEFAULT_RESPONSE_CALLBACK_TIMEOUT, new AdobeCallbackWithError() { @Override public void fail(final AdobeError adobeError) { failWithError(callback, adobeError); @@ -184,31 +172,37 @@ public void fail(final AdobeError adobeError) { @Override public void call(final Event event) { - final Map eventData = event.getEventData(); - if (OptimizeUtils.isNullOrEmpty(eventData)) { - failWithError(callback, AdobeError.UNEXPECTED_ERROR); - return; - } - - if (eventData.containsKey(OptimizeConstants.EventDataKeys.RESPONSE_ERROR)) { - final AdobeError error = (AdobeError) eventData.get(OptimizeConstants.EventDataKeys.RESPONSE_ERROR); - failWithError(callback, error); - return; - } + try { + final Map eventData = event.getEventData(); + if (OptimizeUtils.isNullOrEmpty(eventData)) { + failWithError(callback, AdobeError.UNEXPECTED_ERROR); + return; + } - final List> propositionsList = (List>)eventData.get(OptimizeConstants.EventDataKeys.PROPOSITIONS); + if (eventData.containsKey(OptimizeConstants.EventDataKeys.RESPONSE_ERROR)) { + final int errorCode = DataReader.getInt(eventData, OptimizeConstants.EventDataKeys.RESPONSE_ERROR); + failWithError(callback, OptimizeUtils.convertToAdobeError(errorCode)); + return; + } - final Map propositionsMap = new HashMap<>(); - for (final Map propositionData: propositionsList) { - final Proposition proposition = Proposition.fromEventData(propositionData); - if (proposition != null && !OptimizeUtils.isNullOrEmpty(proposition.getScope())) { - final DecisionScope scope = new DecisionScope(proposition.getScope()); - propositionsMap.put(scope, proposition); + final List> propositionsList; + propositionsList = DataReader.getTypedListOfMap(Object.class, eventData, OptimizeConstants.EventDataKeys.PROPOSITIONS); + final Map propositionsMap = new HashMap<>(); + if (propositionsList != null) { + for (final Map propositionData : propositionsList) { + final Proposition proposition = Proposition.fromEventData(propositionData); + if (proposition != null && !OptimizeUtils.isNullOrEmpty(proposition.getScope())) { + final DecisionScope scope = new DecisionScope(proposition.getScope()); + propositionsMap.put(scope, proposition); + } + } } + callback.call(propositionsMap); + } catch (DataReaderException e) { + failWithError(callback, AdobeError.UNEXPECTED_ERROR); } - callback.call(propositionsMap); } - }, errorCallback); + }); } /** @@ -218,7 +212,7 @@ public void call(final Event event) { * * @param callback {@code AdobeCallbackWithError>} which will be invoked when decision propositions are received from the Edge network. */ - public static void onPropositionsUpdate(final AdobeCallback> callback) { + public static void onPropositionsUpdate(@NonNull final AdobeCallback> callback) { MobileCore.registerEventListener(OptimizeConstants.EventType.OPTIMIZE, OptimizeConstants.EventSource.NOTIFICATION, new AdobeCallbackWithError() { @Override public void fail(final AdobeError error) {} @@ -230,20 +224,25 @@ public void call(final Event event) { return; } - final List> propositionsList = (List>)eventData.get(OptimizeConstants.EventDataKeys.PROPOSITIONS); - - final Map propositionsMap = new HashMap<>(); - for (final Map propositionData : propositionsList) { - final Proposition proposition = Proposition.fromEventData(propositionData); - if (proposition != null && !OptimizeUtils.isNullOrEmpty(proposition.getScope())) { - final DecisionScope scope = new DecisionScope(proposition.getScope()); - propositionsMap.put(scope, proposition); + final List> propositionsList; + try { + propositionsList = DataReader.getTypedListOfMap(Object.class, eventData, OptimizeConstants.EventDataKeys.PROPOSITIONS); + + final Map propositionsMap = new HashMap<>(); + if(propositionsList != null) { + for (final Map propositionData : propositionsList) { + final Proposition proposition = Proposition.fromEventData(propositionData); + if (proposition != null && !OptimizeUtils.isNullOrEmpty(proposition.getScope())) { + final DecisionScope scope = new DecisionScope(proposition.getScope()); + propositionsMap.put(scope, proposition); + } + } } - } - if (!propositionsMap.isEmpty()) { - callback.call(propositionsMap); - } + if (!propositionsMap.isEmpty()) { + callback.call(propositionsMap); + } + } catch (DataReaderException ignored) {} } }); } @@ -252,20 +251,10 @@ public void call(final Event event) { * Clears the client-side in-memory propositions cache. */ public static void clearCachedPropositions() { - final ExtensionErrorCallback errorCallback = new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, - String.format("Failed to dispatch event (%s) due to error (%s).", - OptimizeConstants.EventNames.CLEAR_PROPOSITIONS_REQUEST, - extensionError.getErrorName())); - } - }; - final Event event = new Event.Builder(OptimizeConstants.EventNames.CLEAR_PROPOSITIONS_REQUEST, OptimizeConstants.EventType.OPTIMIZE, OptimizeConstants.EventSource.REQUEST_RESET).build(); - MobileCore.dispatchEvent(event, errorCallback); + MobileCore.dispatchEvent(event); } /** diff --git a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/OptimizeConstants.java b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/OptimizeConstants.java index 65a3cdbe..0c614593 100644 --- a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/OptimizeConstants.java +++ b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/OptimizeConstants.java @@ -14,8 +14,10 @@ class OptimizeConstants { static final String LOG_TAG = "Optimize"; - static final String EXTENSION_VERSION = "1.0.1"; + static final String EXTENSION_VERSION = "2.0.0"; static final String EXTENSION_NAME = "com.adobe.optimize"; + static final String FRIENDLY_NAME = "Optimize"; + static final long DEFAULT_RESPONSE_CALLBACK_TIMEOUT = 500L; static final String ACTIVITY_ID = "activityId"; static final String XDM_ACTIVITY_ID = "xdm:activityId"; @@ -25,6 +27,8 @@ class OptimizeConstants { static final String XDM_ITEM_COUNT = "xdm:itemCount"; static final String XDM_NAME = "xdm:name"; + static final String ERROR_UNKNOWN = "unknown"; + private OptimizeConstants() {} static final class EventNames { diff --git a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/OptimizeExtension.java b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/OptimizeExtension.java index 2e1ee081..a1b8c6d0 100644 --- a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/OptimizeExtension.java +++ b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/OptimizeExtension.java @@ -16,28 +16,25 @@ import com.adobe.marketing.mobile.Event; import com.adobe.marketing.mobile.Extension; import com.adobe.marketing.mobile.ExtensionApi; -import com.adobe.marketing.mobile.ExtensionError; -import com.adobe.marketing.mobile.ExtensionErrorCallback; -import com.adobe.marketing.mobile.LoggingMode; -import com.adobe.marketing.mobile.MobileCore; +import com.adobe.marketing.mobile.SharedStateResolution; +import com.adobe.marketing.mobile.SharedStateResult; +import com.adobe.marketing.mobile.SharedStateStatus; +import com.adobe.marketing.mobile.services.Log; +import com.adobe.marketing.mobile.util.DataReader; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import static com.adobe.marketing.mobile.optimize.OptimizeConstants.EXTENSION_NAME; -import static com.adobe.marketing.mobile.optimize.OptimizeConstants.EXTENSION_VERSION; -import static com.adobe.marketing.mobile.optimize.OptimizeConstants.LOG_TAG; +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; class OptimizeExtension extends Extension { - private final Object executorMutex = new Object(); - private ExecutorService executorService; - private final Map cachedPropositions; + private static final String SELF_TAG = "OptimizeExtension"; + private Map cachedPropositions; // List containing the schema strings for the proposition items supported by the SDK, sent in the personalization query request. final static List supportedSchemas = Arrays.asList( @@ -74,31 +71,31 @@ protected OptimizeExtension(final ExtensionApi extensionApi) { super(extensionApi); cachedPropositions = new HashMap<>(); + } - final ExtensionErrorCallback errorCallback = new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.ERROR, LOG_TAG, - String.format("Failed to register event listener for Optimize extension due to an error (%s)!", - extensionError.getErrorName())); - } - }; - - extensionApi.registerEventListener(OptimizeConstants.EventType.OPTIMIZE, OptimizeConstants.EventSource.REQUEST_CONTENT, - ListenerOptimizeRequestContent.class, errorCallback); + @Override + protected void onRegistered() { + getApi().registerEventListener(OptimizeConstants.EventType.OPTIMIZE, OptimizeConstants.EventSource.REQUEST_CONTENT, this::handleOptimizeRequestContent); - extensionApi.registerEventListener(OptimizeConstants.EventType.EDGE, OptimizeConstants.EventSource.EDGE_PERSONALIZATION_DECISIONS, - ListenerEdgeResponseContent.class, errorCallback); + getApi().registerEventListener(OptimizeConstants.EventType.EDGE, OptimizeConstants.EventSource.EDGE_PERSONALIZATION_DECISIONS, this::handleEdgeResponse); - extensionApi.registerEventListener(OptimizeConstants.EventType.EDGE, OptimizeConstants.EventSource.ERROR_RESPONSE_CONTENT, - ListenerEdgeErrorResponseContent.class, errorCallback); + getApi().registerEventListener(OptimizeConstants.EventType.EDGE, OptimizeConstants.EventSource.ERROR_RESPONSE_CONTENT, this::handleEdgeErrorResponse); - extensionApi.registerEventListener(OptimizeConstants.EventType.OPTIMIZE, OptimizeConstants.EventSource.REQUEST_RESET, - ListenerOptimizeRequestReset.class, errorCallback); + getApi().registerEventListener(OptimizeConstants.EventType.OPTIMIZE, OptimizeConstants.EventSource.REQUEST_RESET, this::handleClearPropositions); // Register listener - Mobile Core `resetIdentities()` API dispatches generic identity request reset event. - extensionApi.registerEventListener(OptimizeConstants.EventType.GENERIC_IDENTITY, OptimizeConstants.EventSource.REQUEST_RESET, - ListenerGenericIdentityRequestReset.class, errorCallback); + getApi().registerEventListener(OptimizeConstants.EventType.GENERIC_IDENTITY, OptimizeConstants.EventSource.REQUEST_RESET, this::handleClearPropositions); + + } + + @Override + public boolean readyForEvent(@NonNull final Event event) { + if (OptimizeConstants.EventType.OPTIMIZE.equalsIgnoreCase(event.getType()) + && OptimizeConstants.EventSource.REQUEST_CONTENT.equalsIgnoreCase(event.getSource())) { + SharedStateResult configurationSharedState = getApi().getSharedState(OptimizeConstants.Configuration.EXTENSION_NAME, event, false, SharedStateResolution.ANY); + return configurationSharedState != null && configurationSharedState.getValue() != null; + } + return true; } /** @@ -106,9 +103,10 @@ public void error(final ExtensionError extensionError) { * * @return {@link String} containing the unique name for this extension. */ + @NonNull @Override protected String getName() { - return EXTENSION_NAME; + return OptimizeConstants.EXTENSION_NAME; } /** @@ -116,9 +114,55 @@ protected String getName() { * * @return {@link String} containing the current installed version of this extension. */ + @NonNull @Override protected String getVersion() { - return EXTENSION_VERSION; + return OptimizeConstants.EXTENSION_VERSION; + } + + /** + * Retrieve the friendly name. + * + * @return {@link String} containing the friendly name for this extension. + */ + @NonNull + @Override + protected String getFriendlyName() { + return OptimizeConstants.FRIENDLY_NAME; + } + + /** + * Handles the event with type {@value OptimizeConstants.EventType#OPTIMIZE} and source {@value OptimizeConstants.EventSource#REQUEST_CONTENT}. + *

    + * This method handles the event based on the value of {@value OptimizeConstants.EventDataKeys#REQUEST_TYPE} in the event data of current {@code event} + * + * @param event incoming {@link Event} object to be processed. + */ + void handleOptimizeRequestContent(@NonNull final Event event) { + if (OptimizeUtils.isNullOrEmpty(event.getEventData())) { + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleOptimizeRequestContent - Ignoring the Optimize request event, either event is null or event data is null/ empty."); + return; + } + + final Map eventData = event.getEventData(); + final String requestType = DataReader.optString(eventData, OptimizeConstants.EventDataKeys.REQUEST_TYPE, ""); + + switch (requestType) { + case OptimizeConstants.EventDataValues.REQUEST_TYPE_UPDATE: + handleUpdatePropositions(event); + break; + case OptimizeConstants.EventDataValues.REQUEST_TYPE_GET: + handleGetPropositions(event); + break; + case OptimizeConstants.EventDataValues.REQUEST_TYPE_TRACK: + handleTrackPropositions(event); + break; + default: + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleOptimizeRequestContent - Ignoring the Optimize request event, provided request type (%s) is not handled by this extension.", requestType); + break; + } } /** @@ -129,89 +173,77 @@ protected String getVersion() { * * @param event incoming {@link Event} object to be processed. */ - void handleUpdatePropositions(final Event event) { - getExecutor().execute(new Runnable() { - @Override - public void run() { - if (event == null || OptimizeUtils.isNullOrEmpty(event.getEventData())) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot process the update propositions request event, event is null or event data is null/ empty."); - return; - } - final Map eventData = event.getEventData(); + void handleUpdatePropositions(@NonNull final Event event) { + final Map eventData = event.getEventData(); + + final Map configData = retrieveConfigurationSharedState(event); + if (OptimizeUtils.isNullOrEmpty(configData)) { + Log.debug(OptimizeConstants.LOG_TAG, + SELF_TAG, + "handleUpdatePropositions - Cannot process the update propositions request event, Configuration shared state is not available."); + return; + } - final Map configData = retrieveConfigurationSharedState(event); - if (OptimizeUtils.isNullOrEmpty(configData)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot process the update propositions request event, Configuration shared state is not available."); - return; + try { + final List> decisionScopesData = DataReader.getTypedListOfMap(Object.class, eventData, OptimizeConstants.EventDataKeys.DECISION_SCOPES); + final List validScopeNames = retrieveValidDecisionScopes(decisionScopesData); + if (OptimizeUtils.isNullOrEmpty(validScopeNames)) { + Log.debug(OptimizeConstants.LOG_TAG, + SELF_TAG, + "handleUpdatePropositions - Cannot process the update propositions request event, provided list of decision scopes has no valid scope."); + return; + } + + final Map edgeEventData = new HashMap<>(); + + // Add query + final Map queryPersonalization = new HashMap<>(); + queryPersonalization.put(OptimizeConstants.JsonKeys.SCHEMAS, supportedSchemas); + queryPersonalization.put(OptimizeConstants.JsonKeys.DECISION_SCOPES, validScopeNames); + final Map query = new HashMap<>(); + query.put(OptimizeConstants.JsonKeys.QUERY_PERSONALIZATION, queryPersonalization); + edgeEventData.put(OptimizeConstants.JsonKeys.QUERY, query); + + // Add xdm + final Map xdm = new HashMap<>(); + if (eventData.containsKey(OptimizeConstants.EventDataKeys.XDM)) { + final Map inputXdm = DataReader.getTypedMap(Object.class, eventData, OptimizeConstants.EventDataKeys.XDM); + if (!OptimizeUtils.isNullOrEmpty(inputXdm)) { + xdm.putAll(inputXdm); } + } + xdm.put(OptimizeConstants.JsonKeys.EXPERIENCE_EVENT_TYPE, OptimizeConstants.JsonValues.EE_EVENT_TYPE_PERSONALIZATION); + edgeEventData.put(OptimizeConstants.JsonKeys.XDM, xdm); + + // Add data + final Map data = new HashMap<>(); + if (eventData.containsKey(OptimizeConstants.EventDataKeys.DATA)) { + final Map inputData = DataReader.getTypedMap(Object.class, eventData, OptimizeConstants.EventDataKeys.DATA); + if (!OptimizeUtils.isNullOrEmpty(inputData)) { + data.putAll(inputData); + edgeEventData.put(OptimizeConstants.JsonKeys.DATA, data); + } + } - try { - final List> decisionScopesData = (List>) eventData.get(OptimizeConstants.EventDataKeys.DECISION_SCOPES); - final List validScopeNames = retrieveValidDecisionScopes(decisionScopesData); - if (OptimizeUtils.isNullOrEmpty(validScopeNames)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot process the update propositions request event, provided list of decision scopes has no valid scope."); - return; - } - - final Map edgeEventData = new HashMap<>(); - - // Add query - final Map queryPersonalization = new HashMap<>(); - queryPersonalization.put(OptimizeConstants.JsonKeys.SCHEMAS, supportedSchemas); - queryPersonalization.put(OptimizeConstants.JsonKeys.DECISION_SCOPES, validScopeNames); - final Map query = new HashMap<>(); - query.put(OptimizeConstants.JsonKeys.QUERY_PERSONALIZATION, queryPersonalization); - edgeEventData.put(OptimizeConstants.JsonKeys.QUERY, query); - - // Add xdm - final Map xdm = new HashMap<>(); - if (eventData.containsKey(OptimizeConstants.EventDataKeys.XDM)) { - final Map inputXdm = (Map) eventData.get(OptimizeConstants.EventDataKeys.XDM); - if (!OptimizeUtils.isNullOrEmpty(inputXdm)) { - xdm.putAll(inputXdm); - } - } - xdm.put(OptimizeConstants.JsonKeys.EXPERIENCE_EVENT_TYPE, OptimizeConstants.JsonValues.EE_EVENT_TYPE_PERSONALIZATION); - edgeEventData.put(OptimizeConstants.JsonKeys.XDM, xdm); - - // Add data - final Map data = new HashMap<>(); - if (eventData.containsKey(OptimizeConstants.EventDataKeys.DATA)) { - final Map inputData = (Map) eventData.get(OptimizeConstants.EventDataKeys.DATA); - if (!OptimizeUtils.isNullOrEmpty(inputData)) { - data.putAll(inputData); - edgeEventData.put(OptimizeConstants.JsonKeys.DATA, data); - } - } - - // Add override datasetId - if (configData.containsKey(OptimizeConstants.Configuration.OPTIMIZE_OVERRIDE_DATASET_ID)) { - final String overrideDatasetId = (String) configData.get(OptimizeConstants.Configuration.OPTIMIZE_OVERRIDE_DATASET_ID); - if (!OptimizeUtils.isNullOrEmpty(overrideDatasetId)) { - edgeEventData.put(OptimizeConstants.JsonKeys.DATASET_ID, overrideDatasetId); - } - } - - final Event edgeEvent = new Event.Builder(OptimizeConstants.EventNames.EDGE_PERSONALIZATION_REQUEST, - OptimizeConstants.EventType.EDGE, - OptimizeConstants.EventSource.REQUEST_CONTENT) - .setEventData(edgeEventData) - .build(); - - MobileCore.dispatchEvent(edgeEvent, new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, - String.format("Failed to dispatch update propositions request event to the Edge network due to an error (%s)!", extensionError.getErrorName())); - } - }); - - } catch (final Exception e) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, - String.format("Failed to process update propositions request event due to an exception (%s)!", e.getLocalizedMessage())); + // Add override datasetId + if (configData.containsKey(OptimizeConstants.Configuration.OPTIMIZE_OVERRIDE_DATASET_ID)) { + final String overrideDatasetId = DataReader.getString(configData, OptimizeConstants.Configuration.OPTIMIZE_OVERRIDE_DATASET_ID); + if (!OptimizeUtils.isNullOrEmpty(overrideDatasetId)) { + edgeEventData.put(OptimizeConstants.JsonKeys.DATASET_ID, overrideDatasetId); } } - }); + + final Event edgeEvent = new Event.Builder(OptimizeConstants.EventNames.EDGE_PERSONALIZATION_REQUEST, + OptimizeConstants.EventType.EDGE, + OptimizeConstants.EventSource.REQUEST_CONTENT) + .setEventData(edgeEventData) + .build(); + + getApi().dispatch(edgeEvent); + } catch (final Exception e) { + Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleUpdatePropositions - Failed to process update propositions request event due to an exception (%s)!", e.getLocalizedMessage()); + } } /** @@ -222,64 +254,66 @@ public void error(final ExtensionError extensionError) { * * @param event incoming {@link Event} object to be processed. */ - void handleEdgeResponse(final Event event) { - getExecutor().execute(new Runnable() { - @Override - public void run() { - if (event == null || OptimizeUtils.isNullOrEmpty(event.getEventData())) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, "Cannot process the Edge personalization:decisions event, event is null or event data is null/ empty."); - return; - } - final Map eventData = event.getEventData(); - - // Verify the Edge response event handle - final String edgeEventHandleType = (String) eventData.get(OptimizeConstants.Edge.EVENT_HANDLE); - if (!OptimizeConstants.Edge.EVENT_HANDLE_TYPE_PERSONALIZATION.equals(edgeEventHandleType)) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, "Cannot process the Edge personalization:decisions event, event handle type is not personalization:decisions."); - return; - } - - final List> payload = (List>) eventData.get(OptimizeConstants.Edge.PAYLOAD); - final Map propositionsMap = new HashMap<>(); - for (final Map propositionData: payload) { - final Proposition proposition = Proposition.fromEventData(propositionData); - if (proposition != null && !OptimizeUtils.isNullOrEmpty(proposition.getOffers())) { - final DecisionScope scope = new DecisionScope(proposition.getScope()); - propositionsMap.put(scope, proposition); - } - } - - if (OptimizeUtils.isNullOrEmpty(propositionsMap)) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, "Cannot process the Edge personalization:decisions event, no propositions with valid offers are present in the Edge response."); - return; - } - - // Update propositions cache - cachedPropositions.putAll(propositionsMap); - - final List> propositionsList = new ArrayList<>(); - for (final Proposition proposition: propositionsMap.values()) { - propositionsList.add(proposition.toEventData()); - } - final Map notificationData = new HashMap<>(); - notificationData.put(OptimizeConstants.EventDataKeys.PROPOSITIONS, propositionsList); - - final Event edgeEvent = new Event.Builder(OptimizeConstants.EventNames.OPTIMIZE_NOTIFICATION, - OptimizeConstants.EventType.OPTIMIZE, - OptimizeConstants.EventSource.NOTIFICATION) - .setEventData(notificationData) - .build(); - - // Dispatch notification event - MobileCore.dispatchEvent(edgeEvent, new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, - String.format("Failed to dispatch optimize notification event due to an error (%s)!", extensionError.getErrorName())); - } - }); - } - }); + void handleEdgeResponse(@NonNull final Event event) { + if (OptimizeUtils.isNullOrEmpty(event.getEventData())) { + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleEdgeResponse - Ignoring the Edge personalization:decisions event, either event is null or event data is null/ empty."); + return; + } + + try { + final Map eventData = event.getEventData(); + + // Verify the Edge response event handle + final String edgeEventHandleType = DataReader.getString(eventData, OptimizeConstants.Edge.EVENT_HANDLE); + if (!OptimizeConstants.Edge.EVENT_HANDLE_TYPE_PERSONALIZATION.equals(edgeEventHandleType)) { + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleEdgeResponse - Cannot process the Edge personalization:decisions event, event handle type is not personalization:decisions."); + return; + } + + final List> payload = DataReader.getTypedListOfMap(Object.class, eventData, OptimizeConstants.Edge.PAYLOAD); + if (OptimizeUtils.isNullOrEmpty(payload)) { + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "handleEdgeResponse - Cannot process the Edge personalization:decisions event, propositions list is either null or empty in the Edge response."); + return; + } + + final Map propositionsMap = new HashMap<>(); + for (final Map propositionData : payload) { + final Proposition proposition = Proposition.fromEventData(propositionData); + if (proposition != null && !OptimizeUtils.isNullOrEmpty(proposition.getOffers())) { + final DecisionScope scope = new DecisionScope(proposition.getScope()); + propositionsMap.put(scope, proposition); + } + } + + if (OptimizeUtils.isNullOrEmpty(propositionsMap)) { + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "handleEdgeResponse - Cannot process the Edge personalization:decisions event, no propositions with valid offers are present in the Edge response."); + return; + } + + // Update propositions cache + cachedPropositions.putAll(propositionsMap); + + final List> propositionsList = new ArrayList<>(); + for (final Proposition proposition : propositionsMap.values()) { + propositionsList.add(proposition.toEventData()); + } + final Map notificationData = new HashMap<>(); + notificationData.put(OptimizeConstants.EventDataKeys.PROPOSITIONS, propositionsList); + + final Event edgeEvent = new Event.Builder(OptimizeConstants.EventNames.OPTIMIZE_NOTIFICATION, + OptimizeConstants.EventType.OPTIMIZE, + OptimizeConstants.EventSource.NOTIFICATION) + .setEventData(notificationData) + .build(); + + // Dispatch notification event + getApi().dispatch(edgeEvent); + } catch (final Exception e) { + Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleEdgeResponse - Cannot process the Edge personalization:decisions event due to an exception (%s)!", e.getLocalizedMessage()); + } } /** @@ -289,23 +323,19 @@ public void error(final ExtensionError extensionError) { * * @param event incoming {@link Event} object to be processed. */ - void handleEdgeErrorResponse(final Event event) { - getExecutor().execute(new Runnable() { - @Override - public void run() { - if (event == null || OptimizeUtils.isNullOrEmpty(event.getEventData())) { - MobileCore.log(LoggingMode.DEBUG, OptimizeConstants.LOG_TAG, "Cannot process the Edge error response event, event is null or event data is null/ empty."); - return; - } - final Map eventData = event.getEventData(); + void handleEdgeErrorResponse(@NonNull final Event event) { + if (OptimizeUtils.isNullOrEmpty(event.getEventData())) { + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleEdgeErrorResponse - Ignoring the Edge error response event, either event is null or event data is null/ empty."); + return; + } + final Map eventData = event.getEventData(); - final String errorType = (String) eventData.get(OptimizeConstants.Edge.ErrorKeys.TYPE); - final String errorDetail = (String) eventData.get(OptimizeConstants.Edge.ErrorKeys.DETAIL); + final String errorType = DataReader.optString(eventData, OptimizeConstants.Edge.ErrorKeys.TYPE, OptimizeConstants.ERROR_UNKNOWN); + final String errorDetail = DataReader.optString(eventData, OptimizeConstants.Edge.ErrorKeys.DETAIL, OptimizeConstants.ERROR_UNKNOWN); - MobileCore.log(LoggingMode.WARNING, OptimizeConstants.LOG_TAG, - String.format("Decisioning Service error! Error type: (%s), detail: (%s)", errorType, errorDetail)); - } - }); + Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleEdgeErrorResponse - Decisioning Service error! Error type: (%s), detail: (%s)", errorType, errorDetail); } /** @@ -316,59 +346,45 @@ public void run() { * * @param event incoming {@link Event} object to be processed. */ - void handleGetPropositions(final Event event) { - getExecutor().execute(new Runnable() { - @Override - public void run() { - final ExtensionErrorCallback callback = new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, - String.format("Failed to dispatch optimize response event due to an error (%s)!", extensionError.getErrorName())); - } - }; - - if (event == null || OptimizeUtils.isNullOrEmpty(event.getEventData())) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot process the update propositions request event, event is null or event data is null/ empty."); - MobileCore.dispatchResponseEvent(createResponseEventWithError(AdobeError.UNEXPECTED_ERROR), event, callback); - return; - } - final Map eventData = event.getEventData(); - - try { - final List> decisionScopesData = (List>) eventData.get(OptimizeConstants.EventDataKeys.DECISION_SCOPES); - final List validScopeNames = retrieveValidDecisionScopes(decisionScopesData); - if (OptimizeUtils.isNullOrEmpty(validScopeNames)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot process the get propositions request event, provided list of decision scopes has no valid scope."); - MobileCore.dispatchResponseEvent(createResponseEventWithError(AdobeError.UNEXPECTED_ERROR), event, callback); - return; - } - - final List> propositionsList = new ArrayList<>(); - for (final String scopeName : validScopeNames) { - final DecisionScope scope = new DecisionScope(scopeName); - if (cachedPropositions.containsKey(scope)) { - final Proposition proposition = cachedPropositions.get(scope); - propositionsList.add(proposition.toEventData()); - } - } - final Map responseEventData = new HashMap<>(); - responseEventData.put(OptimizeConstants.EventDataKeys.PROPOSITIONS, propositionsList); - - final Event responseEvent = new Event.Builder(OptimizeConstants.EventNames.OPTIMIZE_RESPONSE, - OptimizeConstants.EventType.OPTIMIZE, - OptimizeConstants.EventSource.RESPONSE_CONTENT) - .setEventData(responseEventData) - .build(); - - MobileCore.dispatchResponseEvent(responseEvent, event, callback); - - } catch (final Exception e) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, - String.format("Failed to process get propositions request event due to an exception (%s)!", e.getLocalizedMessage())); + void handleGetPropositions(@NonNull final Event event) { + final Map eventData = event.getEventData(); + + try { + final List> decisionScopesData = DataReader.getTypedListOfMap(Object.class, eventData, OptimizeConstants.EventDataKeys.DECISION_SCOPES); + final List validScopeNames = retrieveValidDecisionScopes(decisionScopesData); + if (OptimizeUtils.isNullOrEmpty(validScopeNames)) { + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleGetPropositions - Cannot process the get propositions request event, provided list of decision scopes has no valid scope."); + getApi().dispatch(createResponseEventWithError(event, AdobeError.UNEXPECTED_ERROR)); + return; + } + + final List> propositionsList = new ArrayList<>(); + for (final String scopeName : validScopeNames) { + final DecisionScope scope = new DecisionScope(scopeName); + if (cachedPropositions.containsKey(scope)) { + final Proposition proposition = cachedPropositions.get(scope); + propositionsList.add(proposition.toEventData()); } } - }); + + final Map responseEventData = new HashMap<>(); + responseEventData.put(OptimizeConstants.EventDataKeys.PROPOSITIONS, propositionsList); + + final Event responseEvent = new Event.Builder(OptimizeConstants.EventNames.OPTIMIZE_RESPONSE, + OptimizeConstants.EventType.OPTIMIZE, + OptimizeConstants.EventSource.RESPONSE_CONTENT) + .setEventData(responseEventData) + .inResponseToEvent(event) + .build(); + + getApi().dispatch(responseEvent); + + } catch (final Exception e) { + Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleGetPropositions - Failed to process get propositions request event due to an exception (%s)!", e.getLocalizedMessage()); + getApi().dispatch(createResponseEventWithError(event, AdobeError.UNEXPECTED_ERROR)); + } } /** @@ -380,64 +396,47 @@ public void error(final ExtensionError extensionError) { * * @param event incoming {@link Event} object to be processed. */ - void handleTrackPropositions(final Event event) { - getExecutor().execute(new Runnable() { - @Override - public void run() { - if (event == null || OptimizeUtils.isNullOrEmpty(event.getEventData())) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot process the track propositions request event, event is null or event data is null/ empty."); - return; - } - final Map eventData = event.getEventData(); + void handleTrackPropositions(@NonNull final Event event) { + final Map eventData = event.getEventData(); + + final Map configData = retrieveConfigurationSharedState(event); + if (OptimizeUtils.isNullOrEmpty(configData)) { + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleTrackPropositions - Cannot process the track propositions request event, Configuration shared state is not available."); + return; + } - final Map configData = retrieveConfigurationSharedState(event); - if (OptimizeUtils.isNullOrEmpty(configData)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot process the track propositions request event, Configuration shared state is not available."); - return; - } + try { + final Map propositionInteractionsXdm = DataReader.getTypedMap(Object.class, eventData, OptimizeConstants.EventDataKeys.PROPOSITION_INTERACTIONS); + if (OptimizeUtils.isNullOrEmpty(propositionInteractionsXdm)) { + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleTrackPropositions - Cannot process the track propositions request event, provided proposition interactions map is null or empty."); + return; + } - try { - final Map propositionInteractionsXdm = (Map) eventData.get(OptimizeConstants.EventDataKeys.PROPOSITION_INTERACTIONS); - if (OptimizeUtils.isNullOrEmpty(propositionInteractionsXdm)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot process the track propositions request event, provided proposition interactions map is null or empty."); - return; - } - - final Map edgeEventData = new HashMap<>(); - - // Add xdm - final Map xdm = new HashMap<>(); - xdm.putAll(propositionInteractionsXdm); - edgeEventData.put(OptimizeConstants.JsonKeys.XDM, xdm); - - // Add override datasetId - if (configData.containsKey(OptimizeConstants.Configuration.OPTIMIZE_OVERRIDE_DATASET_ID)) { - final String overrideDatasetId = (String) configData.get(OptimizeConstants.Configuration.OPTIMIZE_OVERRIDE_DATASET_ID); - if (!OptimizeUtils.isNullOrEmpty(overrideDatasetId)) { - edgeEventData.put(OptimizeConstants.JsonKeys.DATASET_ID, overrideDatasetId); - } - } - - final Event edgeEvent = new Event.Builder(OptimizeConstants.EventNames.EDGE_PROPOSITION_INTERACTION_REQUEST, - OptimizeConstants.EventType.EDGE, - OptimizeConstants.EventSource.REQUEST_CONTENT) - .setEventData(edgeEventData) - .build(); - - MobileCore.dispatchEvent(edgeEvent, new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, - String.format("Failed to dispatch proposition interactions event to the Edge network due to an error (%s)!", extensionError.getErrorName())); - } - }); - - } catch (final Exception e) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, - String.format("Failed to process track propositions request event due to an exception (%s)!", e.getLocalizedMessage())); + final Map edgeEventData = new HashMap<>(); + edgeEventData.put(OptimizeConstants.JsonKeys.XDM, propositionInteractionsXdm); + + // Add override datasetId + if (configData.containsKey(OptimizeConstants.Configuration.OPTIMIZE_OVERRIDE_DATASET_ID)) { + final String overrideDatasetId = DataReader.getString(configData, OptimizeConstants.Configuration.OPTIMIZE_OVERRIDE_DATASET_ID); + if (!OptimizeUtils.isNullOrEmpty(overrideDatasetId)) { + edgeEventData.put(OptimizeConstants.JsonKeys.DATASET_ID, overrideDatasetId); } } - }); + + final Event edgeEvent = new Event.Builder(OptimizeConstants.EventNames.EDGE_PROPOSITION_INTERACTION_REQUEST, + OptimizeConstants.EventType.EDGE, + OptimizeConstants.EventSource.REQUEST_CONTENT) + .setEventData(edgeEventData) + .build(); + + getApi().dispatch(edgeEvent); + + } catch (final Exception e) { + Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, + "handleTrackPropositions - Failed to process track propositions request event due to an exception (%s)!", e.getLocalizedMessage()); + } } /** @@ -447,13 +446,8 @@ public void error(final ExtensionError extensionError) { * * @param event incoming {@link Event} object to be processed. */ - void handleClearPropositions(final Event event) { - getExecutor().execute(new Runnable() { - @Override - public void run() { - cachedPropositions.clear(); - } - }); + void handleClearPropositions(@NonNull final Event event) { + cachedPropositions.clear(); } /** @@ -462,35 +456,13 @@ public void run() { * @param event incoming {@link Event} instance. * @return {@code Map} containing configuration data. */ - Map retrieveConfigurationSharedState(final Event event) { - final ExtensionErrorCallback errorCallback = new ExtensionErrorCallback() { - @Override - public void error(final ExtensionError extensionError) { - MobileCore.log(LoggingMode.ERROR, LOG_TAG, - String.format("Failed to read Configuration shared state due to an error (%s)!", - extensionError.getErrorName())); - } - }; - - return getApi().getSharedEventState(OptimizeConstants.Configuration.EXTENSION_NAME, event, errorCallback); - } - - /** - * Gets the {@code ExecutorService} instance that can execute this extension's tasks on a separate thread. - *

    - * This prevents blocking the {@code EventHub} thread for long running extension tasks such as processing - * of incoming events. - * - * @return {@link ExecutorService} instance for this extension. - */ - ExecutorService getExecutor() { - synchronized (executorMutex) { - if (executorService == null) { - executorService = Executors.newSingleThreadExecutor(); - } - - return executorService; - } + private Map retrieveConfigurationSharedState(final Event event) { + SharedStateResult configurationSharedState = getApi().getSharedState(OptimizeConstants.Configuration.EXTENSION_NAME, + event, + false, + SharedStateResolution.ANY); + return configurationSharedState != null && configurationSharedState.getStatus() != SharedStateStatus.PENDING ? + configurationSharedState.getValue() : null; } /** @@ -505,7 +477,7 @@ ExecutorService getExecutor() { */ private List retrieveValidDecisionScopes(final List> decisionScopesData) { if (OptimizeUtils.isNullOrEmpty(decisionScopesData)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "No valid decision scopes are retrieved, provided decision scopes list is null or empty."); + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "retrieveValidDecisionScopes - No valid decision scopes are retrieved, provided decision scopes list is null or empty."); return null; } @@ -519,7 +491,7 @@ private List retrieveValidDecisionScopes(final List> } if (validScopeNames.size() == 0) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, "No valid decision scopes are retrieved, provided list of decision scopes has no valid scope."); + Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, "retrieveValidDecisionScopes - No valid decision scopes are retrieved, provided list of decision scopes has no valid scope."); return null; } @@ -532,14 +504,25 @@ private List retrieveValidDecisionScopes(final List> * * @return {@link Event} instance. */ - private Event createResponseEventWithError(final AdobeError error) { + private Event createResponseEventWithError(final Event event, final AdobeError error) { final Map eventData = new HashMap<>(); - eventData.put(OptimizeConstants.EventDataKeys.RESPONSE_ERROR, error); + eventData.put(OptimizeConstants.EventDataKeys.RESPONSE_ERROR, error.getErrorCode()); return new Event.Builder(OptimizeConstants.EventNames.OPTIMIZE_RESPONSE, OptimizeConstants.EventType.OPTIMIZE, OptimizeConstants.EventSource.RESPONSE_CONTENT) .setEventData(eventData) + .inResponseToEvent(event) .build(); } + + @VisibleForTesting + Map getCachedPropositions() { + return cachedPropositions; + } + + @VisibleForTesting + void setCachedPropositions(final Map cachedPropositions) { + this.cachedPropositions = cachedPropositions; + } } \ No newline at end of file diff --git a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/OptimizeUtils.java b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/OptimizeUtils.java index 86983f1c..bac94a00 100644 --- a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/OptimizeUtils.java +++ b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/OptimizeUtils.java @@ -14,15 +14,16 @@ import android.util.Base64; -import com.adobe.marketing.mobile.LoggingMode; -import com.adobe.marketing.mobile.MobileCore; +import com.adobe.marketing.mobile.AdobeError; +import com.adobe.marketing.mobile.services.Log; import java.util.Collection; import java.util.Map; -import static com.adobe.marketing.mobile.optimize.OptimizeConstants.LOG_TAG; - class OptimizeUtils { + + private static final String SELF_TAG = "OptimizeUtils"; + /** * Checks if the given {@code collection} is null or empty. * @@ -85,8 +86,35 @@ static String base64Decode(final String str) { try { output = new String(Base64.decode(str, Base64.DEFAULT)); } catch(final IllegalArgumentException ex) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, String.format("Base64 decode failed for the given string (%s) with exception: %s", str, ex.getLocalizedMessage())); + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, String.format("Base64 decode failed for the given string (%s) with exception: %s", str, ex.getLocalizedMessage())); } return output; } + + /** + * Determines the {@code AdobeError} provided the error code. + * + * @return {@link AdobeError} corresponding to the given error code, or {@link AdobeError#UNEXPECTED_ERROR} otherwise. + */ + @SuppressWarnings("magicnumber") + static AdobeError convertToAdobeError(final int errorCode) { + final AdobeError error; + switch (errorCode) { + case 0: + error = AdobeError.UNEXPECTED_ERROR; + break; + case 1: + error = AdobeError.CALLBACK_TIMEOUT; + break; + case 2: + error = AdobeError.CALLBACK_NULL; + break; + case 11: + error = AdobeError.EXTENSION_NOT_INITIALIZED; + break; + default: + error = AdobeError.UNEXPECTED_ERROR; + } + return error; + } } diff --git a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/Proposition.java b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/Proposition.java index 76a09b6b..7d7bf662 100644 --- a/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/Proposition.java +++ b/code/optimize/src/main/java/com/adobe/marketing/mobile/optimize/Proposition.java @@ -12,8 +12,8 @@ package com.adobe.marketing.mobile.optimize; -import com.adobe.marketing.mobile.LoggingMode; -import com.adobe.marketing.mobile.MobileCore; +import com.adobe.marketing.mobile.services.Log; +import com.adobe.marketing.mobile.util.DataReader; import java.lang.ref.SoftReference; import java.util.ArrayList; @@ -22,9 +22,10 @@ import java.util.Map; import java.util.Objects; -import static com.adobe.marketing.mobile.optimize.OptimizeConstants.LOG_TAG; - public class Proposition { + + private static final String SELF_TAG = "Proposition"; + final private String id; final private List offers; final private String scope; @@ -41,9 +42,9 @@ public class Proposition { Proposition(final String id, final List offers, final String scope, final Map scopeDetails) { this.id = id != null ? id : ""; this.scope = scope != null ? scope : ""; - this.scopeDetails = scopeDetails != null ? scopeDetails : new HashMap(); + this.scopeDetails = scopeDetails != null ? scopeDetails : new HashMap<>(); - this.offers = offers != null ? offers : new ArrayList(); + this.offers = offers != null ? offers : new ArrayList<>(); // Setting a soft reference to Proposition in each Offer for (final Offer o: this.offers) { if (o.propositionReference == null) { @@ -118,37 +119,40 @@ public Map generateReferenceXdm() { */ public static Proposition fromEventData(final Map data) { if (OptimizeUtils.isNullOrEmpty(data)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot create Proposition object, provided data Map is empty or null."); + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot create Proposition object, provided data Map is empty or null."); return null; } try { final String id = (String) data.get(OptimizeConstants.JsonKeys.PAYLOAD_ID); if (OptimizeUtils.isNullOrEmpty(id)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot create Proposition object, provided data does not contain proposition identifier."); + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot create Proposition object, provided data does not contain proposition identifier."); return null; } final String scope = (String) data.get(OptimizeConstants.JsonKeys.PAYLOAD_SCOPE); if (OptimizeUtils.isNullOrEmpty(scope)) { - MobileCore.log(LoggingMode.DEBUG, LOG_TAG, "Cannot create Proposition object, provided data does not contain proposition scope."); + Log.debug(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot create Proposition object, provided data does not contain proposition scope."); return null; } - final Map scopeDetails = (Map) data.get(OptimizeConstants.JsonKeys.PAYLOAD_SCOPEDETAILS); + final Map scopeDetails = DataReader.getTypedMap(Object.class, data, OptimizeConstants.JsonKeys.PAYLOAD_SCOPEDETAILS); - final List> items = (List>) data.get(OptimizeConstants.JsonKeys.PAYLOAD_ITEMS); + final List> items = DataReader.getTypedListOfMap(Object.class, data, OptimizeConstants.JsonKeys.PAYLOAD_ITEMS); List offers = new ArrayList<>(); - for (Map item : items) { - final Offer offer = Offer.fromEventData(item); - if (offer != null) { - offers.add(offer); + if (items != null) { + for (Map item : items) { + final Offer offer = Offer.fromEventData(item); + if (offer != null) { + offers.add(offer); + } } } + return new Proposition(id, offers, scope, scopeDetails); } catch (Exception e) { - MobileCore.log(LoggingMode.WARNING, LOG_TAG, "Cannot create Proposition object, provided data contains invalid fields."); + Log.warning(OptimizeConstants.LOG_TAG, SELF_TAG, "Cannot create Proposition object, provided data contains invalid fields."); return null; } } @@ -173,7 +177,7 @@ Map toEventData() { } @Override - public boolean equals(Object o) { + public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; diff --git a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/DecisionScopeTests.java b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/DecisionScopeTests.java index e869c37a..590301aa 100644 --- a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/DecisionScopeTests.java +++ b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/DecisionScopeTests.java @@ -14,286 +14,331 @@ import android.util.Base64; -import org.junit.Before; +import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentMatchers; +import org.mockito.MockedStatic; import org.mockito.Mockito; -import org.mockito.invocation.InvocationOnMock; +import org.mockito.junit.MockitoJUnitRunner; import org.mockito.stubbing.Answer; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import java.util.HashMap; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.ArgumentMatchers.anyString; - - -@RunWith(PowerMockRunner.class) -@PrepareForTest(Base64.class) +@RunWith(MockitoJUnitRunner.Silent.class) +@SuppressWarnings({"rawtypes"}) public class DecisionScopeTests { - @Before - public void setup() { - PowerMockito.mockStatic(Base64.class); - Mockito.when(Base64.encodeToString((byte[]) any(), anyInt())).thenAnswer(new Answer() { - @Override - public String answer(InvocationOnMock invocation) { - return java.util.Base64.getEncoder().encodeToString((byte[]) invocation.getArguments()[0]); - } - }); - Mockito.when(Base64.decode(anyString(), anyInt())).thenAnswer(new Answer() { - @Override - public byte[] answer(InvocationOnMock invocation) throws Throwable { - return java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0]); - } - }); - } @Test public void testConstructor_validName() { // test final DecisionScope scope = new DecisionScope("myMbox"); - assertNotNull(scope); - assertEquals("myMbox", scope.getName()); + Assert.assertNotNull(scope); + Assert.assertEquals("myMbox", scope.getName()); } @Test public void testConstructor_emptyName() { // test final DecisionScope scope = new DecisionScope(""); - assertNotNull(scope); - assertEquals("", scope.getName()); + Assert.assertNotNull(scope); + Assert.assertEquals("", scope.getName()); } @Test public void testConstructor_nullName() { // test final DecisionScope scope = new DecisionScope(""); - assertNotNull(scope); - assertEquals("", scope.getName()); + Assert.assertNotNull(scope); + Assert.assertEquals("", scope.getName()); } @Test public void testConstructor_defaultItemCount() { - // test - final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111"); - assertNotNull(scope); - assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", scope.getName()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.encodeToString(ArgumentMatchers.any(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getEncoder().encodeToString((byte[]) invocation.getArguments()[0])); + // test + final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111"); + Assert.assertNotNull(scope); + Assert.assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", scope.getName()); + } } @Test public void testConstructor_itemCount() { - // test - final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111", 10); - assertNotNull(scope); - assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEiLCJpdGVtQ291bnQiOjEwfQ==", scope.getName()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.encodeToString(ArgumentMatchers.any(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getEncoder().encodeToString((byte[]) invocation.getArguments()[0])); + // test + final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111", 10); + Assert.assertNotNull(scope); + Assert.assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEiLCJpdGVtQ291bnQiOjEwfQ==", scope.getName()); + } } @Test public void testConstructor_emptyActivityId() { // test final DecisionScope scope = new DecisionScope("", "xcore:offer-placement:1111111111111111"); - assertNotNull(scope); - assertEquals("", scope.getName()); + Assert.assertNotNull(scope); + Assert.assertEquals("", scope.getName()); } @Test public void testConstructor_nullActivityId() { // test final DecisionScope scope = new DecisionScope(null, "xcore:offer-placement:1111111111111111"); - assertNotNull(scope); - assertEquals("", scope.getName()); + Assert.assertNotNull(scope); + Assert.assertEquals("", scope.getName()); } @Test public void testConstructor_emptyPlacementId() { // test final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", ""); - assertNotNull(scope); - assertEquals("", scope.getName()); + Assert.assertNotNull(scope); + Assert.assertEquals("", scope.getName()); } @Test public void testConstructor_nullPlacementId() { // test final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", null); - assertNotNull(scope); - assertEquals("", scope.getName()); + Assert.assertNotNull(scope); + Assert.assertEquals("", scope.getName()); } @Test public void testConstructor_zeroItemCount() { // test final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111", 0); - assertNotNull(scope); - assertEquals("", scope.getName()); + Assert.assertNotNull(scope); + Assert.assertEquals("", scope.getName()); } @Test public void testIsValid_scopeWithValidName() { - // test - final DecisionScope scope = new DecisionScope("myMbox"); - assertTrue(scope.isValid()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final DecisionScope scope = new DecisionScope("myMbox"); + Assert.assertTrue(scope.isValid()); + } } @Test public void testIsValid_scopeWithNullName() { // test final DecisionScope scope = new DecisionScope(null); - assertFalse(scope.isValid()); + Assert.assertFalse(scope.isValid()); } @Test public void testIsValid_scopeWithEmptyName() { // test final DecisionScope scope = new DecisionScope(""); - assertFalse(scope.isValid()); + Assert.assertFalse(scope.isValid()); } @Test public void testIsValid_scopeWithDefaultItemCount() { - // test - final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111"); - assertTrue(scope.isValid()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.encodeToString(ArgumentMatchers.any(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getEncoder().encodeToString((byte[]) invocation.getArguments()[0])); + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111"); + Assert.assertTrue(scope.isValid()); + } } @Test public void testIsValid_scopeWithItemCount() { - // test - final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111", 10); - assertTrue(scope.isValid()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.encodeToString(ArgumentMatchers.any(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getEncoder().encodeToString((byte[]) invocation.getArguments()[0])); + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111", 10); + Assert.assertTrue(scope.isValid()); + } } @Test public void testIsValid_scopeWithEmptyActivityId() { // test final DecisionScope scope = new DecisionScope("", "xcore:offer-placement:1111111111111111"); - assertFalse(scope.isValid()); + Assert.assertFalse(scope.isValid()); } @Test public void testIsValid_scopeWithNullActivityId() { // test final DecisionScope scope = new DecisionScope(null, "xcore:offer-placement:1111111111111111"); - assertFalse(scope.isValid()); + Assert.assertFalse(scope.isValid()); } @Test public void testIsValid_scopeWithEmptyPlacementId() { // test final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", ""); - assertFalse(scope.isValid()); + Assert.assertFalse(scope.isValid()); } @Test public void testIsValid_scopeWithNullPlacementId() { // test final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", null); - assertFalse(scope.isValid()); + Assert.assertFalse(scope.isValid()); } @Test public void testIsValid_scopeWithZeroItemCount() { // test final DecisionScope scope = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111", 0); - assertFalse(scope.isValid()); + Assert.assertFalse(scope.isValid()); } @Test public void testIsValid_encodedScopeWithDefaultItemCount() { - // test - final DecisionScope scope = new DecisionScope( "eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjExMTExMTExMTExMTExMTEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSJ9"); - assertTrue(scope.isValid()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final DecisionScope scope = new DecisionScope("eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjExMTExMTExMTExMTExMTEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSJ9"); + Assert.assertTrue(scope.isValid()); + } } @Test public void testIsValid_encodedScopeWithItemCount() { // test - final DecisionScope scope = new DecisionScope( "eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjExMTExMTExMTExMTExMTEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSIsInhkbTppdGVtQ291bnQiOjEwMH0="); - assertTrue(scope.isValid()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + final DecisionScope scope = new DecisionScope("eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjExMTExMTExMTExMTExMTEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSIsInhkbTppdGVtQ291bnQiOjEwMH0="); + Assert.assertTrue(scope.isValid()); + } } @Test public void testIsValid_encodedScopeWithValidName() { - // test - final DecisionScope scope = new DecisionScope( "eyJ4ZG06bmFtZSI6ImNvbS5hZG9iZS5TYW1wbGVBcHAifQ=="); - assertTrue(scope.isValid()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final DecisionScope scope = new DecisionScope("eyJ4ZG06bmFtZSI6ImNvbS5hZG9iZS5TYW1wbGVBcHAifQ=="); + Assert.assertTrue(scope.isValid()); + } } @Test public void testIsValid_encodedScopeWithEmptyName() { - // test - final DecisionScope scope = new DecisionScope( "eyJ4ZG06bmFtZSI6IiJ9"); - assertFalse(scope.isValid()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final DecisionScope scope = new DecisionScope("eyJ4ZG06bmFtZSI6IiJ9"); + Assert.assertFalse(scope.isValid()); + } + } @Test public void testIsValid_encodedScopeWithEmptyActivityId() { - // test - final DecisionScope scope = new DecisionScope( "eyJ4ZG06YWN0aXZpdHlJZCI6IiIsInhkbTpwbGFjZW1lbnRJZCI6Inhjb3JlOm9mZmVyLXBsYWNlbWVudDoxMTExMTExMTExMTExMTExIn0="); - assertFalse(scope.isValid()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final DecisionScope scope = new DecisionScope("eyJ4ZG06YWN0aXZpdHlJZCI6IiIsInhkbTpwbGFjZW1lbnRJZCI6Inhjb3JlOm9mZmVyLXBsYWNlbWVudDoxMTExMTExMTExMTExMTExIn0="); + Assert.assertFalse(scope.isValid()); + } } @Test public void testIsValid_encodedScopeWithEmptyPlacementId() { - // test - final DecisionScope scope = new DecisionScope( "eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjExMTExMTExMTExMTExMTEiLCJ4ZG06cGxhY2VtZW50SWQiOiIifQ=="); - assertFalse(scope.isValid()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final DecisionScope scope = new DecisionScope("eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjExMTExMTExMTExMTExMTEiLCJ4ZG06cGxhY2VtZW50SWQiOiIifQ=="); + Assert.assertFalse(scope.isValid()); + } } @Test public void testIsValid_encodedScopeWithInvalidItemCount() { - // test - final DecisionScope scope = new DecisionScope( "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEiLCJpdGVtQ291bnQiOi0xfQ=="); - assertFalse(scope.isValid()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final DecisionScope scope = new DecisionScope( "eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEiLCJpdGVtQ291bnQiOi0xfQ=="); + Assert.assertFalse(scope.isValid()); + } } @Test public void testIsValid_encodedScopeWithZeroItemCount() { - // test - final DecisionScope scope = new DecisionScope( "eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjExMTExMTExMTExMTExMTEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSIsInhkbTppdGVtQ291bnQiOjB9"); - assertFalse(scope.isValid()); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final DecisionScope scope = new DecisionScope("eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjExMTExMTExMTExMTExMTEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSIsInhkbTppdGVtQ291bnQiOjB9"); + Assert.assertFalse(scope.isValid()); + } } @Ignore public void testIsValid_invalidEncodedScope() { // test final DecisionScope scope = new DecisionScope( "eyJ4ZG06YWN0aXZpdHlJZCI6Inhjb3JlOm9mZmVyLWFjdGl2aXR5OjExMTExMTExMTExMTExMTEiLCJ4ZG06cGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSwieGRtOml0ZW1Db3VudCI6MzB9"); - assertFalse(scope.isValid()); + Assert.assertFalse(scope.isValid()); } @Test public void testEquals() { - // test - final DecisionScope scope1 = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); - final DecisionScope scope2 = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111"); - assertEquals(scope1, scope2); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.encodeToString(ArgumentMatchers.any(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getEncoder().encodeToString((byte[]) invocation.getArguments()[0])); + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final DecisionScope scope1 = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); + final DecisionScope scope2 = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111"); + Assert.assertEquals(scope1, scope2); + } } @Test public void testEquals_decisionScopeObjectContainsItemCount() { - // test - final DecisionScope scope1 = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEiLCJpdGVtQ291bnQiOjEwMH0="); - final DecisionScope scope2 = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111", 100); - assertEquals(scope1, scope2); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.encodeToString(ArgumentMatchers.any(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getEncoder().encodeToString((byte[]) invocation.getArguments()[0])); + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final DecisionScope scope1 = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEiLCJpdGVtQ291bnQiOjEwMH0="); + final DecisionScope scope2 = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111", 100); + Assert.assertEquals(scope1, scope2); + } } @Test public void testEquals_decisionScopeObjectsNotEqual() { - // test - final DecisionScope scope1 = new DecisionScope("mymbox"); - final DecisionScope scope2 = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111"); - assertNotEquals(scope1, scope2); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.encodeToString(ArgumentMatchers.any(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getEncoder().encodeToString((byte[]) invocation.getArguments()[0])); + // test + final DecisionScope scope1 = new DecisionScope("mymbox"); + final DecisionScope scope2 = new DecisionScope("xcore:offer-activity:1111111111111111", "xcore:offer-placement:1111111111111111"); + Assert.assertNotEquals(scope1, scope2); + } } @Test @@ -301,7 +346,7 @@ public void testEquals_otherDecisionScopeObjectIsNull() { // test final DecisionScope scope1 = new DecisionScope("mymbox"); final DecisionScope scope2 = null; - assertNotEquals(scope1, scope2); + Assert.assertNotEquals(scope1, scope2); } @Test @@ -314,8 +359,8 @@ public void testFromEventData_validScopeName() { final DecisionScope scope = DecisionScope.fromEventData(testEventData); // verify - assertNotNull(scope); - assertEquals("myMbox", scope.getName()); + Assert.assertNotNull(scope); + Assert.assertEquals("myMbox", scope.getName()); } @Test @@ -324,16 +369,16 @@ public void testFromEventData_nullEventData() { final DecisionScope scope = DecisionScope.fromEventData(null); // verify - assertNull(scope); + Assert.assertNull(scope); } @Test public void testFromEventData_emptyEventData() { // test - final DecisionScope scope = DecisionScope.fromEventData(new HashMap()); + final DecisionScope scope = DecisionScope.fromEventData(new HashMap<>()); // verify - assertNull(scope); + Assert.assertNull(scope); } @Test @@ -346,7 +391,7 @@ public void testFromEventData_emptyScopeName() { final DecisionScope scope = DecisionScope.fromEventData(testEventData); // verify - assertNull(scope); + Assert.assertNull(scope); } @Test @@ -359,7 +404,7 @@ public void testFromEventData_nullScopeName() { final DecisionScope scope = DecisionScope.fromEventData(testEventData); // verify - assertNull(scope); + Assert.assertNull(scope); } @Test @@ -372,7 +417,7 @@ public void testFromEventData_missingScopeName() { final DecisionScope scope = DecisionScope.fromEventData(testEventData); // verify - assertNull(scope); + Assert.assertNull(scope); } @Test @@ -384,8 +429,8 @@ public void testToEventData_validScope() { final Map eventData = scope.toEventData(); // verify - assertNotNull(eventData); - assertEquals(1, eventData.size()); - assertEquals("myMbox", eventData.get("name")); + Assert.assertNotNull(eventData); + Assert.assertEquals(1, eventData.size()); + Assert.assertEquals("myMbox", eventData.get("name")); } } diff --git a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerEdgeErrorResponseContentTests.java b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerEdgeErrorResponseContentTests.java deleted file mode 100644 index f0c22fed..00000000 --- a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerEdgeErrorResponseContentTests.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - Copyright 2021 Adobe. All rights reserved. - This file is licensed to you 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 REPRESENTATIONS - OF ANY KIND, either express or implied. See the License for the specific language - governing permissions and limitations under the License. - */ - -package com.adobe.marketing.mobile.optimize; - -import com.adobe.marketing.mobile.Event; -import com.adobe.marketing.mobile.ExtensionApi; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import java.util.HashMap; -import java.util.Map; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.verify; -import static org.powermock.api.mockito.PowerMockito.spy; -import static org.powermock.api.mockito.PowerMockito.when; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({OptimizeExtension.class, ExtensionApi.class}) -public class ListenerEdgeErrorResponseContentTests { - @Mock - OptimizeExtension mockOptimizeExtension; - - @Mock - ExtensionApi mockExtensionApi; - - private ListenerEdgeErrorResponseContent listener; - - @Before - public void setup() { - listener = spy(new ListenerEdgeErrorResponseContent(mockExtensionApi, - "com.adobe.eventType.edge", "com.adobe.eventSource.errorResponseContent")); - } - - @Test - public void testHear() throws Exception { - // setup - final Map edgeResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_ERROR_RESPONSE.json"), new TypeReference>(){}); - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - final Event testEvent = new Event.Builder("AEP Error Response", - "com.adobe.eventType.edge", - "com.adobe.eventType.errorResponseContent") - .setEventData(edgeResponseData) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.times(1)).handleEdgeErrorResponse(testEvent); - } - - @Test - public void testHear_nullEvent() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - - // test - listener.hear(null); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleEdgeErrorResponse(any(Event.class)); - } - - @Test - public void testHear_nullEventData() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - final Event testEvent = new Event.Builder("AEP Error Response", - "com.adobe.eventType.edge", - "com.adobe.eventType.errorResponseContent") - .setEventData(null) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleEdgeErrorResponse(any(Event.class)); - } - - @Test - public void testHear_emptyEventData() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - final Event testEvent = new Event.Builder("AEP Error Response", - "com.adobe.eventType.edge", - "com.adobe.eventType.errorResponseContent") - .setEventData(new HashMap()) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleEdgeErrorResponse(any(Event.class)); - } - - @Test - public void testHear_nullParentExtension() throws Exception { - // setup - final Map edgeResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_ERROR_RESPONSE.json"), new TypeReference>(){}); - when(listener.getOptimizeExtension()).thenReturn(null); - final Event testEvent = new Event.Builder("AEP Error Response", - "com.adobe.eventType.edge", - "com.adobe.eventType.errorResponseContent") - .setEventData(edgeResponseData) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleEdgeErrorResponse(any(Event.class)); - } -} diff --git a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerEdgeResponseContentTests.java b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerEdgeResponseContentTests.java deleted file mode 100644 index 46ca803e..00000000 --- a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerEdgeResponseContentTests.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - Copyright 2021 Adobe. All rights reserved. - This file is licensed to you 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 REPRESENTATIONS - OF ANY KIND, either express or implied. See the License for the specific language - governing permissions and limitations under the License. - */ - -package com.adobe.marketing.mobile.optimize; - -import com.adobe.marketing.mobile.Event; -import com.adobe.marketing.mobile.ExtensionApi; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import java.util.HashMap; -import java.util.Map; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.verify; -import static org.powermock.api.mockito.PowerMockito.spy; -import static org.powermock.api.mockito.PowerMockito.when; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({OptimizeExtension.class, ExtensionApi.class}) -public class ListenerEdgeResponseContentTests { - @Mock - OptimizeExtension mockOptimizeExtension; - - @Mock - ExtensionApi mockExtensionApi; - - private ListenerEdgeResponseContent listener; - - @Before - public void setup() { - listener = spy(new ListenerEdgeResponseContent(mockExtensionApi, - "com.adobe.eventType.edge", "personalization:decisions")); - } - - @Test - public void testHear() throws Exception { - // setup - final Map edgeResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_RESPONSE_VALID.json"), new TypeReference>(){}); - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - final Event testEvent = new Event.Builder("AEP Response Event Handle", - "com.adobe.eventType.edge", - "personalization:decisions") - .setEventData(edgeResponseData) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.times(1)).handleEdgeResponse(testEvent); - } - - @Test - public void testHear_nullEvent() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - - // test - listener.hear(null); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleEdgeResponse(any(Event.class)); - } - - @Test - public void testHear_nullEventData() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - final Event testEvent = new Event.Builder("AEP Response Event Handle", - "com.adobe.eventType.edge", - "personalization:decisions") - .setEventData(null) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleEdgeResponse(any(Event.class)); - } - - @Test - public void testHear_emptyEventData() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - final Event testEvent = new Event.Builder("AEP Response Event Handle", - "com.adobe.eventType.edge", - "personalization:decisions") - .setEventData(new HashMap()) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleEdgeResponse(any(Event.class)); - } - - @Test - public void testHear_nullParentExtension() throws Exception { - // setup - final Map edgeResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_RESPONSE_VALID.json"), new TypeReference>(){}); - when(listener.getOptimizeExtension()).thenReturn(null); - final Event testEvent = new Event.Builder("AEP Response Event Handle", - "com.adobe.eventType.edge", - "personalization:decisions") - .setEventData(edgeResponseData) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleEdgeResponse(any(Event.class)); - } -} diff --git a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerGenericIdentityRequestResetTests.java b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerGenericIdentityRequestResetTests.java deleted file mode 100644 index 1509c13a..00000000 --- a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerGenericIdentityRequestResetTests.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - Copyright 2021 Adobe. All rights reserved. - This file is licensed to you 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 REPRESENTATIONS - OF ANY KIND, either express or implied. See the License for the specific language - governing permissions and limitations under the License. - */ - -package com.adobe.marketing.mobile.optimize; - -import com.adobe.marketing.mobile.Event; -import com.adobe.marketing.mobile.ExtensionApi; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import java.util.HashMap; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.verify; -import static org.powermock.api.mockito.PowerMockito.spy; -import static org.powermock.api.mockito.PowerMockito.when; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({OptimizeExtension.class, ExtensionApi.class}) -public class ListenerGenericIdentityRequestResetTests { - @Mock - OptimizeExtension mockOptimizeExtension; - - @Mock - ExtensionApi mockExtensionApi; - - private ListenerGenericIdentityRequestReset listener; - - @Before - public void setup() { - listener = spy(new ListenerGenericIdentityRequestReset(mockExtensionApi, - "com.adobe.eventType.generic.identity", "com.adobe.eventSource.requestReset")); - } - - @Test - public void testHear() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - final Event testEvent = new Event.Builder("Reset Identities Request", - "com.adobe.eventType.generic.identity", - "com.adobe.eventSource.requestReset") - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.times(1)).handleClearPropositions(testEvent); - } - - @Test - public void testHear_nullEvent() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - - // test - listener.hear(null); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleClearPropositions(any(Event.class)); - } - - @Test - public void testHear_nullEventData() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - final Event testEvent = new Event.Builder("Reset Identities Request", - "com.adobe.eventType.generic.identity", - "com.adobe.eventSource.requestReset") - .setEventData(null) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.times(1)).handleClearPropositions(testEvent); - } - - @Test - public void testHear_emptyEventData() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - final Event testEvent = new Event.Builder("Reset Identities Request", - "com.adobe.eventType.generic.identity", - "com.adobe.eventSource.requestReset") - .setEventData(new HashMap()) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.times(1)).handleClearPropositions(testEvent); - } - - @Test - public void testHear_nullParentExtension() { - // setup - when(listener.getOptimizeExtension()).thenReturn(null); - final Event testEvent = new Event.Builder("Reset Identities Request", - "com.adobe.eventType.generic.identity", - "com.adobe.eventSource.requestReset") - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleClearPropositions(any(Event.class)); - } -} diff --git a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestContentTests.java b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestContentTests.java deleted file mode 100644 index d5db0b8a..00000000 --- a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestContentTests.java +++ /dev/null @@ -1,224 +0,0 @@ -/* - Copyright 2021 Adobe. All rights reserved. - This file is licensed to you 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 REPRESENTATIONS - OF ANY KIND, either express or implied. See the License for the specific language - governing permissions and limitations under the License. - */ - -package com.adobe.marketing.mobile.optimize; - -import com.adobe.marketing.mobile.Event; -import com.adobe.marketing.mobile.ExtensionApi; -import com.adobe.marketing.mobile.MobileCore; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import java.util.HashMap; -import java.util.Map; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.verify; -import static org.powermock.api.mockito.PowerMockito.spy; -import static org.powermock.api.mockito.PowerMockito.when; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({OptimizeExtension.class, MobileCore.class, ExtensionApi.class}) -public class ListenerOptimizeRequestContentTests { - @Mock - OptimizeExtension mockOptimizeExtension; - - @Mock - ExtensionApi mockExtensionApi; - - private ListenerOptimizeRequestContent listener; - - @Before - public void setup() { - listener = spy(new ListenerOptimizeRequestContent(mockExtensionApi, - "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent")); - } - - @Test - public void testHear_requestTypeUpdatePropositions() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - Map eventData = new HashMap() { - { - put("requesttype", "updatepropositions"); - } - }; - Event testEvent = new Event.Builder("Optimize Update Propositions Request", - "com.adobe.eventType.optimize", - "com.adobe.eventSource.requestContent") - .setEventData(eventData) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.times(1)).handleUpdatePropositions(testEvent); - verify(mockOptimizeExtension, Mockito.never()).handleGetPropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleTrackPropositions(any(Event.class)); - } - - @Test - public void testHear_requestTypeGetPropositions() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - Map eventData = new HashMap() { - { - put("requesttype", "getpropositions"); - } - }; - Event testEvent = new Event.Builder("Optimize Get Propositions Request", - "com.adobe.eventType.optimize", - "com.adobe.eventSource.requestContent") - .setEventData(eventData) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.times(1)).handleGetPropositions(testEvent); - verify(mockOptimizeExtension, Mockito.never()).handleUpdatePropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleTrackPropositions(any(Event.class)); - } - - @Test - public void testHear_requestTypeTrackPropositions() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - Map eventData = new HashMap() { - { - put("requesttype", "trackpropositions"); - } - }; - Event testEvent = new Event.Builder("Optimize Track Propositions Request", - "com.adobe.eventType.optimize", - "com.adobe.eventSource.requestContent") - .setEventData(eventData) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.times(1)).handleTrackPropositions(testEvent); - verify(mockOptimizeExtension, Mockito.never()).handleUpdatePropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleGetPropositions(any(Event.class)); - } - - @Test - public void testHear_unsupportedRequestType() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - Map eventData = new HashMap() { - { - put("requesttype", "unknown"); - } - }; - Event testEvent = new Event.Builder("Optimize Get Propositions Request", - "com.adobe.eventType.optimize", - "com.adobe.eventSource.requestContent") - .setEventData(eventData) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleUpdatePropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleGetPropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleTrackPropositions(any(Event.class)); - } - - @Test - public void testHear_nullEvent() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - - // test - listener.hear(null); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleUpdatePropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleGetPropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleTrackPropositions(any(Event.class)); - } - - @Test - public void testHear_nullEventData() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - Event testEvent = new Event.Builder("Optimize Request Event", - "com.adobe.eventType.optimize", - "com.adobe.eventSource.requestContent") - .setEventData(null) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleUpdatePropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleGetPropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleTrackPropositions(any(Event.class)); - } - - @Test - public void testHear_emptyEventData() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - Event testEvent = new Event.Builder("Optimize Request Event", - "com.adobe.eventType.optimize", - "com.adobe.eventSource.requestContent") - .setEventData(new HashMap()) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleUpdatePropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleGetPropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleTrackPropositions(any(Event.class)); - } - - @Test - public void testHear_nullParentExtension() { - // setup - when(listener.getOptimizeExtension()).thenReturn(null); - - Map eventData = new HashMap() { - { - put("requesttype", "someRequestType"); - } - }; - Event testEvent = new Event.Builder("Optimize Request Event", - "com.adobe.eventType.optimize", - "com.adobe.eventSource.requestContent") - .setEventData(eventData) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleUpdatePropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleGetPropositions(any(Event.class)); - verify(mockOptimizeExtension, Mockito.never()).handleTrackPropositions(any(Event.class)); - } -} \ No newline at end of file diff --git a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestResetTests.java b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestResetTests.java deleted file mode 100644 index c2aa5909..00000000 --- a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/ListenerOptimizeRequestResetTests.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - Copyright 2021 Adobe. All rights reserved. - This file is licensed to you 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 REPRESENTATIONS - OF ANY KIND, either express or implied. See the License for the specific language - governing permissions and limitations under the License. - */ - -package com.adobe.marketing.mobile.optimize; - -import com.adobe.marketing.mobile.Event; -import com.adobe.marketing.mobile.ExtensionApi; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import java.util.HashMap; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.verify; -import static org.powermock.api.mockito.PowerMockito.spy; -import static org.powermock.api.mockito.PowerMockito.when; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({OptimizeExtension.class, ExtensionApi.class}) -public class ListenerOptimizeRequestResetTests { - @Mock - OptimizeExtension mockOptimizeExtension; - - @Mock - ExtensionApi mockExtensionApi; - - private ListenerOptimizeRequestReset listener; - - @Before - public void setup() { - listener = spy(new ListenerOptimizeRequestReset(mockExtensionApi, - "com.adobe.eventType.optimize", "com.adobe.eventSource.requestReset")); - } - - @Test - public void testHear() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - final Event testEvent = new Event.Builder("Optimize Clear Propositions Request", - "com.adobe.eventType.optimize", - "com.adobe.eventSource.requestReset") - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.times(1)).handleClearPropositions(testEvent); - } - - @Test - public void testHear_nullEvent() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - - // test - listener.hear(null); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleClearPropositions(any(Event.class)); - } - - @Test - public void testHear_nullEventData() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - final Event testEvent = new Event.Builder("Optimize Clear Propositions Request", - "com.adobe.eventType.optimize", - "com.adobe.eventSource.requestReset") - .setEventData(null) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.times(1)).handleClearPropositions(testEvent); - } - - @Test - public void testHear_emptyEventData() { - // setup - when(listener.getOptimizeExtension()).thenReturn(mockOptimizeExtension); - final Event testEvent = new Event.Builder("Optimize Clear Propositions Request", - "com.adobe.eventType.optimize", - "com.adobe.eventSource.requestReset") - .setEventData(new HashMap()) - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.times(1)).handleClearPropositions(testEvent); - } - - @Test - public void testHear_nullParentExtension() { - // setup - when(listener.getOptimizeExtension()).thenReturn(null); - final Event testEvent = new Event.Builder("Optimize Clear Propositions Request", - "com.adobe.eventType.optimize", - "com.adobe.eventSource.requestReset") - .build(); - - // test - listener.hear(testEvent); - - // verify - verify(mockOptimizeExtension, Mockito.never()).handleClearPropositions(any(Event.class)); - } -} \ No newline at end of file diff --git a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OfferTests.java b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OfferTests.java index 35ec874c..4963354a 100644 --- a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OfferTests.java +++ b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OfferTests.java @@ -13,40 +13,27 @@ package com.adobe.marketing.mobile.optimize; import com.adobe.marketing.mobile.Event; -import com.adobe.marketing.mobile.ExtensionErrorCallback; -import com.adobe.marketing.mobile.LoggingMode; import com.adobe.marketing.mobile.MobileCore; +import com.adobe.marketing.mobile.services.Log; import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Before; +import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; +import org.mockito.ArgumentMatchers; +import org.mockito.MockedStatic; import org.mockito.Mockito; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; +import org.mockito.junit.MockitoJUnitRunner; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({Event.class, MobileCore.class}) +@RunWith(MockitoJUnitRunner.Silent.class) @SuppressWarnings("unchecked") public class OfferTests { - @Before - public void setup() { - PowerMockito.mockStatic(MobileCore.class); - } @Test public void testBuilder_validOffer() { @@ -66,213 +53,213 @@ public void testBuilder_validOffer() { }) .build(); - assertEquals("xcore:personalized-offer:2222222222222222", offer.getId()); - assertEquals("7", offer.getEtag()); - assertEquals(2, offer.getScore()); - assertEquals("https://ns.adobe.com/experience/offer-management/content-component-text", offer.getSchema()); - assertEquals(OfferType.TEXT, offer.getType()); - assertEquals(1, offer.getLanguage().size()); - assertEquals("en-us", offer.getLanguage().get(0)); - assertEquals("This is a plain text content!", offer.getContent()); - assertEquals(1, offer.getCharacteristics().size()); - assertEquals("true", offer.getCharacteristics().get("mobile")); + Assert.assertEquals("xcore:personalized-offer:2222222222222222", offer.getId()); + Assert.assertEquals("7", offer.getEtag()); + Assert.assertEquals(2, offer.getScore()); + Assert.assertEquals("https://ns.adobe.com/experience/offer-management/content-component-text", offer.getSchema()); + Assert.assertEquals(OfferType.TEXT, offer.getType()); + Assert.assertEquals(1, offer.getLanguage().size()); + Assert.assertEquals("en-us", offer.getLanguage().get(0)); + Assert.assertEquals("This is a plain text content!", offer.getContent()); + Assert.assertEquals(1, offer.getCharacteristics().size()); + Assert.assertEquals("true", offer.getCharacteristics().get("mobile")); } @Test public void testFromEventData_validJsonOffer() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_VALID_JSON.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNotNull(offer); - - assertEquals("xcore:personalized-offer:1111111111111111", offer.getId()); - assertEquals("8", offer.getEtag()); - assertEquals(0, offer.getScore()); - assertEquals("https://ns.adobe.com/experience/offer-management/content-component-json", offer.getSchema()); - assertEquals(OfferType.JSON, offer.getType()); - assertEquals(1, offer.getLanguage().size()); - assertEquals("en-us", offer.getLanguage().get(0)); - assertEquals("{\"testing\":\"ho-ho\"}", offer.getContent()); - assertEquals(1, offer.getCharacteristics().size()); - assertEquals("true", offer.getCharacteristics().get("mobile")); + Assert.assertNotNull(offer); + + Assert.assertEquals("xcore:personalized-offer:1111111111111111", offer.getId()); + Assert.assertEquals("8", offer.getEtag()); + Assert.assertEquals(0, offer.getScore()); + Assert.assertEquals("https://ns.adobe.com/experience/offer-management/content-component-json", offer.getSchema()); + Assert.assertEquals(OfferType.JSON, offer.getType()); + Assert.assertEquals(1, offer.getLanguage().size()); + Assert.assertEquals("en-us", offer.getLanguage().get(0)); + Assert.assertEquals("{\"testing\":\"ho-ho\"}", offer.getContent()); + Assert.assertEquals(1, offer.getCharacteristics().size()); + Assert.assertEquals("true", offer.getCharacteristics().get("mobile")); } @Test public void testFromEventData_validTextOffer() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_VALID_TEXT.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNotNull(offer); - - assertEquals("xcore:personalized-offer:2222222222222222", offer.getId()); - assertEquals("7", offer.getEtag()); - assertEquals(0, offer.getScore()); - assertEquals("https://ns.adobe.com/experience/offer-management/content-component-text", offer.getSchema()); - assertEquals(OfferType.TEXT, offer.getType()); - assertEquals(1, offer.getLanguage().size()); - assertEquals("en-us", offer.getLanguage().get(0)); - assertEquals("This is a plain text content!", offer.getContent()); - assertEquals(1, offer.getCharacteristics().size()); - assertEquals("true", offer.getCharacteristics().get("mobile")); + Assert.assertNotNull(offer); + + Assert.assertEquals("xcore:personalized-offer:2222222222222222", offer.getId()); + Assert.assertEquals("7", offer.getEtag()); + Assert.assertEquals(0, offer.getScore()); + Assert.assertEquals("https://ns.adobe.com/experience/offer-management/content-component-text", offer.getSchema()); + Assert.assertEquals(OfferType.TEXT, offer.getType()); + Assert.assertEquals(1, offer.getLanguage().size()); + Assert.assertEquals("en-us", offer.getLanguage().get(0)); + Assert.assertEquals("This is a plain text content!", offer.getContent()); + Assert.assertEquals(1, offer.getCharacteristics().size()); + Assert.assertEquals("true", offer.getCharacteristics().get("mobile")); } @Test public void testFromEventData_validHtmlOffer() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_VALID_HTML.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNotNull(offer); - - assertEquals("xcore:personalized-offer:3333333333333333", offer.getId()); - assertEquals("8", offer.getEtag()); - assertEquals(0, offer.getScore()); - assertEquals("https://ns.adobe.com/experience/offer-management/content-component-html", offer.getSchema()); - assertEquals(OfferType.HTML, offer.getType()); - assertEquals(1, offer.getLanguage().size()); - assertEquals("en-us", offer.getLanguage().get(0)); - assertEquals("

    Hello, Welcome!

    ", offer.getContent()); - assertEquals(1, offer.getCharacteristics().size()); - assertEquals("true", offer.getCharacteristics().get("mobile")); + Assert.assertNotNull(offer); + + Assert.assertEquals("xcore:personalized-offer:3333333333333333", offer.getId()); + Assert.assertEquals("8", offer.getEtag()); + Assert.assertEquals(0, offer.getScore()); + Assert.assertEquals("https://ns.adobe.com/experience/offer-management/content-component-html", offer.getSchema()); + Assert.assertEquals(OfferType.HTML, offer.getType()); + Assert.assertEquals(1, offer.getLanguage().size()); + Assert.assertEquals("en-us", offer.getLanguage().get(0)); + Assert.assertEquals("

    Hello, Welcome!

    ", offer.getContent()); + Assert.assertEquals(1, offer.getCharacteristics().size()); + Assert.assertEquals("true", offer.getCharacteristics().get("mobile")); } @Test public void testFromEventData_validImageOffer() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_VALID_IMAGE.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNotNull(offer); - - assertEquals("xcore:personalized-offer:4444444444444444", offer.getId()); - assertEquals("8", offer.getEtag()); - assertEquals(0, offer.getScore()); - assertEquals("https://ns.adobe.com/experience/offer-management/content-component-imagelink", offer.getSchema()); - assertEquals(OfferType.IMAGE, offer.getType()); - assertEquals(1, offer.getLanguage().size()); - assertEquals("en-us", offer.getLanguage().get(0)); - assertEquals("https://example.com/avatar1.png?alt=media", offer.getContent()); - assertEquals(1, offer.getCharacteristics().size()); - assertEquals("true", offer.getCharacteristics().get("mobile")); + Assert.assertNotNull(offer); + + Assert.assertEquals("xcore:personalized-offer:4444444444444444", offer.getId()); + Assert.assertEquals("8", offer.getEtag()); + Assert.assertEquals(0, offer.getScore()); + Assert.assertEquals("https://ns.adobe.com/experience/offer-management/content-component-imagelink", offer.getSchema()); + Assert.assertEquals(OfferType.IMAGE, offer.getType()); + Assert.assertEquals(1, offer.getLanguage().size()); + Assert.assertEquals("en-us", offer.getLanguage().get(0)); + Assert.assertEquals("https://example.com/avatar1.png?alt=media", offer.getContent()); + Assert.assertEquals(1, offer.getCharacteristics().size()); + Assert.assertEquals("true", offer.getCharacteristics().get("mobile")); } @Test public void testFromEventData_validOfferWithScore() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_VALID_WITH_SCORE.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNotNull(offer); - - assertEquals("xcore:personalized-offer:2222222222222222", offer.getId()); - assertEquals("7", offer.getEtag()); - assertEquals(1, offer.getScore()); - assertEquals("https://ns.adobe.com/experience/offer-management/content-component-text", offer.getSchema()); - assertEquals(OfferType.TEXT, offer.getType()); - assertEquals(1, offer.getLanguage().size()); - assertEquals("en-us", offer.getLanguage().get(0)); - assertEquals("This is a plain text content!", offer.getContent()); - assertEquals(1, offer.getCharacteristics().size()); - assertEquals("true", offer.getCharacteristics().get("mobile")); + Assert.assertNotNull(offer); + + Assert.assertEquals("xcore:personalized-offer:2222222222222222", offer.getId()); + Assert.assertEquals("7", offer.getEtag()); + Assert.assertEquals(1, offer.getScore()); + Assert.assertEquals("https://ns.adobe.com/experience/offer-management/content-component-text", offer.getSchema()); + Assert.assertEquals(OfferType.TEXT, offer.getType()); + Assert.assertEquals(1, offer.getLanguage().size()); + Assert.assertEquals("en-us", offer.getLanguage().get(0)); + Assert.assertEquals("This is a plain text content!", offer.getContent()); + Assert.assertEquals(1, offer.getCharacteristics().size()); + Assert.assertEquals("true", offer.getCharacteristics().get("mobile")); } @Test public void testFromEventData_validJsonOfferFromTarget() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_VALID_JSON_TARGET.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNotNull(offer); + Assert.assertNotNull(offer); - assertEquals("222429", offer.getId()); - assertNull(offer.getEtag()); - assertEquals("https://ns.adobe.com/personalization/json-content-item", offer.getSchema()); + Assert.assertEquals("222429", offer.getId()); + Assert.assertNull(offer.getEtag()); + Assert.assertEquals("https://ns.adobe.com/personalization/json-content-item", offer.getSchema()); Map metadata = offer.getMeta(); - assertNotNull(metadata); - assertEquals(3, metadata.size()); - assertEquals("Demo AB Activity", (String)metadata.get("activity.name")); - assertEquals("Experience A", (String)metadata.get("experience.name")); - assertEquals("67706174319866856517739865618220416768", (String)metadata.get("profile.marketingCloudVisitorId")); - - assertEquals(OfferType.JSON, offer.getType()); - assertEquals("{\"testing\":\"ho-ho\"}", offer.getContent()); - assertNull(offer.getLanguage()); - assertNull(offer.getCharacteristics()); + Assert.assertNotNull(metadata); + Assert.assertEquals(3, metadata.size()); + Assert.assertEquals("Demo AB Activity", (String)metadata.get("activity.name")); + Assert.assertEquals("Experience A", (String)metadata.get("experience.name")); + Assert.assertEquals("67706174319866856517739865618220416768", (String)metadata.get("profile.marketingCloudVisitorId")); + + Assert.assertEquals(OfferType.JSON, offer.getType()); + Assert.assertEquals("{\"testing\":\"ho-ho\"}", offer.getContent()); + Assert.assertNull(offer.getLanguage()); + Assert.assertNull(offer.getCharacteristics()); } @Test public void testFromEventData_validHtmlOfferFromTarget() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_VALID_HTML_TARGET.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNotNull(offer); - - assertEquals("222428", offer.getId()); - assertNull(offer.getEtag()); - assertEquals("https://ns.adobe.com/personalization/html-content-item", offer.getSchema()); - assertEquals(OfferType.HTML, offer.getType()); - assertEquals("

    Hello, Welcome!

    ", offer.getContent()); - assertNull(offer.getLanguage()); - assertNull(offer.getCharacteristics()); + Assert.assertNotNull(offer); + + Assert.assertEquals("222428", offer.getId()); + Assert.assertNull(offer.getEtag()); + Assert.assertEquals("https://ns.adobe.com/personalization/html-content-item", offer.getSchema()); + Assert.assertEquals(OfferType.HTML, offer.getType()); + Assert.assertEquals("

    Hello, Welcome!

    ", offer.getContent()); + Assert.assertNull(offer.getLanguage()); + Assert.assertNull(offer.getCharacteristics()); } @Test public void testFromEventData_defaultContentOfferFromTarget() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_VALID_DEFAULT_CONTENT_TARGET.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNotNull(offer); - - assertEquals("222429", offer.getId()); - assertNull(offer.getEtag()); - assertEquals("https://ns.adobe.com/personalization/default-content-item", offer.getSchema()); - assertEquals(OfferType.UNKNOWN, offer.getType()); - assertEquals("", offer.getContent()); - assertNull(offer.getLanguage()); - assertNull(offer.getCharacteristics()); + Assert.assertNotNull(offer); + + Assert.assertEquals("222429", offer.getId()); + Assert.assertNull(offer.getEtag()); + Assert.assertEquals("https://ns.adobe.com/personalization/default-content-item", offer.getSchema()); + Assert.assertEquals(OfferType.UNKNOWN, offer.getType()); + Assert.assertEquals("", offer.getContent()); + Assert.assertNull(offer.getLanguage()); + Assert.assertNull(offer.getCharacteristics()); } @Test public void testFromEventData_emptyOffer() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_INVALID_EMPTY.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNull(offer); + Assert.assertNull(offer); } @Test public void testFromEventData_invalidOfferNoId() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_INVALID_MISSING_ID.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNull(offer); + Assert.assertNull(offer); } @Test public void testFromEventData_invalidOfferNoContent() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_INVALID_MISSING_CONTENT.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNull(offer); + Assert.assertNull(offer); } @Test public void testFromEventData_invalidOfferNoFormat() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_INVALID_MISSING_FORMAT.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNull(offer); + Assert.assertNull(offer); } @Test public void testFromEventData_invalidOfferNoItemData() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_INVALID_MISSING_ITEM_DATA.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNull(offer); + Assert.assertNull(offer); } @Test public void testFromEventData_invalidOfferIdMismatch() throws Exception { Map offerData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/OFFER_INVALID_ID_MISMATCH.json"), HashMap.class); final Offer offer = Offer.fromEventData(offerData); - assertNull(offer); + Assert.assertNull(offer); } @Test public void testFromEventData_nullData() { final Offer offer = Offer.fromEventData(null); - assertNull(offer); + Assert.assertNull(offer); } @Test public void testFromEventData_emptyData() { final Offer offer = Offer.fromEventData(new HashMap()); - assertNull(offer); + Assert.assertNull(offer); } @Test @@ -281,34 +268,34 @@ public void testGenerateDisplayInteractionXdm_validProposition() throws Exceptio Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - assertEquals(1, proposition.getOffers().size()); + Assert.assertNotNull(proposition); + Assert.assertEquals(1, proposition.getOffers().size()); Offer offer = proposition.getOffers().get(0); - assertNotNull(offer); + Assert.assertNotNull(offer); // test final Map propositionInteractionXdm = offer.generateDisplayInteractionXdm(); // verify - assertNotNull(propositionInteractionXdm); - assertEquals("decisioning.propositionDisplay", propositionInteractionXdm.get("eventType")); + Assert.assertNotNull(propositionInteractionXdm); + Assert.assertEquals("decisioning.propositionDisplay", propositionInteractionXdm.get("eventType")); final Map experience = (Map)propositionInteractionXdm.get("_experience"); - assertNotNull(experience); + Assert.assertNotNull(experience); final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); + Assert.assertNotNull(decisioning); final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions"); - assertNotNull(propositionInteractionDetailsList); - assertEquals(1, propositionInteractionDetailsList.size()); + Assert.assertNotNull(propositionInteractionDetailsList); + Assert.assertEquals(1, propositionInteractionDetailsList.size()); final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); - assertEquals("de03ac85-802a-4331-a905-a57053164d35", propositionInteractionDetailsMap.get("id")); - assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", propositionInteractionDetailsMap.get("scope")); + Assert.assertEquals("de03ac85-802a-4331-a905-a57053164d35", propositionInteractionDetailsMap.get("id")); + Assert.assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", propositionInteractionDetailsMap.get("scope")); final Map scopeDetails = (Map)propositionInteractionDetailsMap.get("scopeDetails"); - assertNotNull(scopeDetails); - assertTrue(scopeDetails.isEmpty()); + Assert.assertNotNull(scopeDetails); + Assert.assertTrue(scopeDetails.isEmpty()); final List> items = (List>)propositionInteractionDetailsMap.get("items"); - assertNotNull(items); - assertEquals(1, items.size()); - assertEquals("xcore:personalized-offer:1111111111111111", items.get(0).get("id")); + Assert.assertNotNull(items); + Assert.assertEquals(1, items.size()); + Assert.assertEquals("xcore:personalized-offer:1111111111111111", items.get(0).get("id")); } @Test @@ -316,45 +303,45 @@ public void testGenerateDisplayInteractionXdm_validPropositionFromTarget() throw // setup Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID_TARGET.json"), HashMap.class); final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - assertNotNull(proposition.getOffers()); - assertEquals(1, proposition.getOffers().size()); + Assert.assertNotNull(proposition); + Assert.assertNotNull(proposition.getOffers()); + Assert.assertEquals(1, proposition.getOffers().size()); Offer offer = proposition.getOffers().get(0); - assertNotNull(offer); + Assert.assertNotNull(offer); // test final Map propositionInteractionXdm = offer.generateDisplayInteractionXdm(); // verify - assertNotNull(propositionInteractionXdm); - assertEquals("decisioning.propositionDisplay", propositionInteractionXdm.get("eventType")); + Assert.assertNotNull(propositionInteractionXdm); + Assert.assertEquals("decisioning.propositionDisplay", propositionInteractionXdm.get("eventType")); final Map experience = (Map)propositionInteractionXdm.get("_experience"); - assertNotNull(experience); + Assert.assertNotNull(experience); final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); + Assert.assertNotNull(decisioning); final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions"); - assertNotNull(propositionInteractionDetailsList); - assertEquals(1, propositionInteractionDetailsList.size()); + Assert.assertNotNull(propositionInteractionDetailsList); + Assert.assertEquals(1, propositionInteractionDetailsList.size()); final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); - assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id")); - assertEquals("myMbox", propositionInteractionDetailsMap.get("scope")); + Assert.assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id")); + Assert.assertEquals("myMbox", propositionInteractionDetailsMap.get("scope")); final Map scopeDetails = (Map)propositionInteractionDetailsMap.get("scopeDetails"); - assertNotNull(scopeDetails); - assertEquals(4, scopeDetails.size()); - assertEquals("TGT", scopeDetails.get("decisionProvider")); + Assert.assertNotNull(scopeDetails); + Assert.assertEquals(4, scopeDetails.size()); + Assert.assertEquals("TGT", scopeDetails.get("decisionProvider")); final Map sdActivity = (Map)scopeDetails.get("activity"); - assertEquals("125589", sdActivity.get("id")); + Assert.assertEquals("125589", sdActivity.get("id")); final Map sdExperience = (Map)scopeDetails.get("experience"); - assertEquals("0", sdExperience.get("id")); + Assert.assertEquals("0", sdExperience.get("id")); final List> sdStrategies = (List>)scopeDetails.get("strategies"); - assertNotNull(sdStrategies); - assertEquals(1, sdStrategies.size()); - assertEquals("0", sdStrategies.get(0).get("algorithmID")); - assertEquals("0", sdStrategies.get(0).get("trafficType")); + Assert.assertNotNull(sdStrategies); + Assert.assertEquals(1, sdStrategies.size()); + Assert.assertEquals("0", sdStrategies.get(0).get("algorithmID")); + Assert.assertEquals("0", sdStrategies.get(0).get("trafficType")); final List> items = (List>)propositionInteractionDetailsMap.get("items"); - assertNotNull(items); - assertEquals(1, items.size()); - assertEquals("246315", items.get(0).get("id")); + Assert.assertNotNull(items); + Assert.assertEquals(1, items.size()); + Assert.assertEquals("246315", items.get(0).get("id")); } @Test @@ -362,18 +349,18 @@ public void testGenerateDisplayInteractionXdm_nullPropositionReference() throws // setup Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID_TARGET.json"), HashMap.class); final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - assertNotNull(proposition.getOffers()); - assertEquals(1, proposition.getOffers().size()); + Assert.assertNotNull(proposition); + Assert.assertNotNull(proposition.getOffers()); + Assert.assertEquals(1, proposition.getOffers().size()); Offer offer = proposition.getOffers().get(0); - assertNotNull(offer); + Assert.assertNotNull(offer); offer.propositionReference = null; // test final Map propositionInteractionXdm = offer.generateDisplayInteractionXdm(); // verify - assertNull(propositionInteractionXdm); + Assert.assertNull(propositionInteractionXdm); } @Test @@ -381,35 +368,35 @@ public void testGenerateTapInteractionXdm_validProposition() throws Exception { // setup Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - assertNotNull(proposition.getOffers()); - assertEquals(1, proposition.getOffers().size()); + Assert.assertNotNull(proposition); + Assert.assertNotNull(proposition.getOffers()); + Assert.assertEquals(1, proposition.getOffers().size()); Offer offer = proposition.getOffers().get(0); - assertNotNull(offer); + Assert.assertNotNull(offer); // test final Map propositionInteractionXdm = offer.generateTapInteractionXdm(); // verify - assertNotNull(propositionInteractionXdm); - assertEquals("decisioning.propositionInteract", propositionInteractionXdm.get("eventType")); + Assert.assertNotNull(propositionInteractionXdm); + Assert.assertEquals("decisioning.propositionInteract", propositionInteractionXdm.get("eventType")); final Map experience = (Map)propositionInteractionXdm.get("_experience"); - assertNotNull(experience); + Assert.assertNotNull(experience); final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); + Assert.assertNotNull(decisioning); final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions"); - assertNotNull(propositionInteractionDetailsList); - assertEquals(1, propositionInteractionDetailsList.size()); + Assert.assertNotNull(propositionInteractionDetailsList); + Assert.assertEquals(1, propositionInteractionDetailsList.size()); final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); - assertEquals("de03ac85-802a-4331-a905-a57053164d35", propositionInteractionDetailsMap.get("id")); - assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", propositionInteractionDetailsMap.get("scope")); + Assert.assertEquals("de03ac85-802a-4331-a905-a57053164d35", propositionInteractionDetailsMap.get("id")); + Assert.assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", propositionInteractionDetailsMap.get("scope")); final Map scopeDetails = (Map)propositionInteractionDetailsMap.get("scopeDetails"); - assertNotNull(scopeDetails); - assertTrue(scopeDetails.isEmpty()); + Assert.assertNotNull(scopeDetails); + Assert.assertTrue(scopeDetails.isEmpty()); final List> items = (List>)propositionInteractionDetailsMap.get("items"); - assertNotNull(items); - assertEquals(1, items.size()); - assertEquals("xcore:personalized-offer:1111111111111111", items.get(0).get("id")); + Assert.assertNotNull(items); + Assert.assertEquals(1, items.size()); + Assert.assertEquals("xcore:personalized-offer:1111111111111111", items.get(0).get("id")); } @Test @@ -417,45 +404,45 @@ public void testGenerateTapInteractionXdm_validPropositionFromTarget() throws Ex // setup Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID_TARGET.json"), HashMap.class); final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - assertNotNull(proposition.getOffers()); - assertEquals(1, proposition.getOffers().size()); + Assert.assertNotNull(proposition); + Assert.assertNotNull(proposition.getOffers()); + Assert.assertEquals(1, proposition.getOffers().size()); Offer offer = proposition.getOffers().get(0); - assertNotNull(offer); + Assert.assertNotNull(offer); // test final Map propositionInteractionXdm = offer.generateTapInteractionXdm(); // verify - assertNotNull(propositionInteractionXdm); - assertEquals("decisioning.propositionInteract", propositionInteractionXdm.get("eventType")); + Assert.assertNotNull(propositionInteractionXdm); + Assert.assertEquals("decisioning.propositionInteract", propositionInteractionXdm.get("eventType")); final Map experience = (Map)propositionInteractionXdm.get("_experience"); - assertNotNull(experience); + Assert.assertNotNull(experience); final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); + Assert.assertNotNull(decisioning); final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions"); - assertNotNull(propositionInteractionDetailsList); - assertEquals(1, propositionInteractionDetailsList.size()); + Assert.assertNotNull(propositionInteractionDetailsList); + Assert.assertEquals(1, propositionInteractionDetailsList.size()); final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); - assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id")); - assertEquals("myMbox", propositionInteractionDetailsMap.get("scope")); + Assert.assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id")); + Assert.assertEquals("myMbox", propositionInteractionDetailsMap.get("scope")); final Map scopeDetails = (Map)propositionInteractionDetailsMap.get("scopeDetails"); - assertNotNull(scopeDetails); - assertEquals(4, scopeDetails.size()); - assertEquals("TGT", scopeDetails.get("decisionProvider")); + Assert.assertNotNull(scopeDetails); + Assert.assertEquals(4, scopeDetails.size()); + Assert.assertEquals("TGT", scopeDetails.get("decisionProvider")); final Map sdActivity = (Map)scopeDetails.get("activity"); - assertEquals("125589", sdActivity.get("id")); + Assert.assertEquals("125589", sdActivity.get("id")); final Map sdExperience = (Map)scopeDetails.get("experience"); - assertEquals("0", sdExperience.get("id")); + Assert.assertEquals("0", sdExperience.get("id")); final List> sdStrategies = (List>)scopeDetails.get("strategies"); - assertNotNull(sdStrategies); - assertEquals(1, sdStrategies.size()); - assertEquals("0", sdStrategies.get(0).get("algorithmID")); - assertEquals("0", sdStrategies.get(0).get("trafficType")); + Assert.assertNotNull(sdStrategies); + Assert.assertEquals(1, sdStrategies.size()); + Assert.assertEquals("0", sdStrategies.get(0).get("algorithmID")); + Assert.assertEquals("0", sdStrategies.get(0).get("trafficType")); final List> items = (List>)propositionInteractionDetailsMap.get("items"); - assertNotNull(items); - assertEquals(1, items.size()); - assertEquals("246315", items.get(0).get("id")); + Assert.assertNotNull(items); + Assert.assertEquals(1, items.size()); + Assert.assertEquals("246315", items.get(0).get("id")); } @Test @@ -463,265 +450,271 @@ public void testGenerateTapInteractionXdm_nullPropositionReference() throws Exce // setup Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID_TARGET.json"), HashMap.class); final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - assertNotNull(proposition.getOffers()); - assertEquals(1, proposition.getOffers().size()); + Assert.assertNotNull(proposition); + Assert.assertNotNull(proposition.getOffers()); + Assert.assertEquals(1, proposition.getOffers().size()); Offer offer = proposition.getOffers().get(0); - assertNotNull(offer); + Assert.assertNotNull(offer); offer.propositionReference = null; // test final Map propositionInteractionXdm = offer.generateTapInteractionXdm(); // verify - assertNull(propositionInteractionXdm); + Assert.assertNull(propositionInteractionXdm); } @Test public void testDisplayed_validProposition() throws Exception { - // setup - Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); - final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - - assertEquals(1, proposition.getOffers().size()); - Offer offer = proposition.getOffers().get(0); - assertNotNull(offer); - - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - - // test - offer.displayed(); - - // verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), dispatchedEvent.getSource()); - final Map eventData = dispatchedEvent.getEventData(); - assertNotNull(eventData); - assertEquals("trackpropositions", eventData.get("requesttype")); - final Map propositionInteractions = (Map)eventData.get("propositioninteractions"); - assertNotNull(propositionInteractions); - assertEquals("decisioning.propositionDisplay", propositionInteractions.get("eventType")); - final Map experience = (Map)propositionInteractions.get("_experience"); - assertNotNull(experience); - final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); - final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions"); - assertNotNull(propositionInteractionDetailsList); - assertEquals(1, propositionInteractionDetailsList.size()); - final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); - assertEquals("de03ac85-802a-4331-a905-a57053164d35", propositionInteractionDetailsMap.get("id")); - assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", propositionInteractionDetailsMap.get("scope")); - final Map scopeDetails = (Map)propositionInteractionDetailsMap.get("scopeDetails"); - assertNotNull(scopeDetails); - assertTrue(scopeDetails.isEmpty()); - final List> items = (List>)propositionInteractionDetailsMap.get("items"); - assertNotNull(items); - assertEquals(1, items.size()); - assertEquals("xcore:personalized-offer:1111111111111111", items.get(0).get("id")); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class)) { + // setup + Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); + final Proposition proposition = Proposition.fromEventData(propositionData); + Assert.assertNotNull(proposition); + + Assert.assertEquals(1, proposition.getOffers().size()); + Offer offer = proposition.getOffers().get(0); + Assert.assertNotNull(offer); + + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + // test + offer.displayed(); + + // verify + mobileCoreMockedStatic.verify(() -> MobileCore.dispatchEvent(eventCaptor.capture())); + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.optimize", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", dispatchedEvent.getSource()); + final Map eventData = dispatchedEvent.getEventData(); + Assert.assertNotNull(eventData); + Assert.assertEquals("trackpropositions", eventData.get("requesttype")); + final Map propositionInteractions = (Map) eventData.get("propositioninteractions"); + Assert.assertNotNull(propositionInteractions); + Assert.assertEquals("decisioning.propositionDisplay", propositionInteractions.get("eventType")); + final Map experience = (Map) propositionInteractions.get("_experience"); + Assert.assertNotNull(experience); + final Map decisioning = (Map) experience.get("decisioning"); + Assert.assertNotNull(decisioning); + final List> propositionInteractionDetailsList = (List>) decisioning.get("propositions"); + Assert.assertNotNull(propositionInteractionDetailsList); + Assert.assertEquals(1, propositionInteractionDetailsList.size()); + final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); + Assert.assertEquals("de03ac85-802a-4331-a905-a57053164d35", propositionInteractionDetailsMap.get("id")); + Assert.assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", propositionInteractionDetailsMap.get("scope")); + final Map scopeDetails = (Map) propositionInteractionDetailsMap.get("scopeDetails"); + Assert.assertNotNull(scopeDetails); + Assert.assertTrue(scopeDetails.isEmpty()); + final List> items = (List>) propositionInteractionDetailsMap.get("items"); + Assert.assertNotNull(items); + Assert.assertEquals(1, items.size()); + Assert.assertEquals("xcore:personalized-offer:1111111111111111", items.get(0).get("id")); + } } @Test public void testDisplayed_validPropositionFromTarget() throws Exception { - // setup - Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID_TARGET.json"), HashMap.class); - final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - assertNotNull(proposition.getOffers()); - assertEquals(1, proposition.getOffers().size()); - Offer offer = proposition.getOffers().get(0); - assertNotNull(offer); - - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - - // test - offer.displayed(); - - // verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), dispatchedEvent.getSource()); - final Map eventData = dispatchedEvent.getEventData(); - assertNotNull(eventData); - assertEquals("trackpropositions", eventData.get("requesttype")); - final Map propositionInteractions = (Map)eventData.get("propositioninteractions"); - assertNotNull(propositionInteractions); - assertEquals("decisioning.propositionDisplay", propositionInteractions.get("eventType")); - final Map experience = (Map)propositionInteractions.get("_experience"); - assertNotNull(experience); - final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); - final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions"); - assertNotNull(propositionInteractionDetailsList); - assertEquals(1, propositionInteractionDetailsList.size()); - final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); - assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id")); - assertEquals("myMbox", propositionInteractionDetailsMap.get("scope")); - final Map scopeDetails = (Map)propositionInteractionDetailsMap.get("scopeDetails"); - assertNotNull(scopeDetails); - assertEquals(4, scopeDetails.size()); - assertEquals("TGT", scopeDetails.get("decisionProvider")); - final Map sdActivity = (Map)scopeDetails.get("activity"); - assertEquals("125589", sdActivity.get("id")); - final Map sdExperience = (Map)scopeDetails.get("experience"); - assertEquals("0", sdExperience.get("id")); - final List> sdStrategies = (List>)scopeDetails.get("strategies"); - assertNotNull(sdStrategies); - assertEquals(1, sdStrategies.size()); - assertEquals("0", sdStrategies.get(0).get("algorithmID")); - assertEquals("0", sdStrategies.get(0).get("trafficType")); - final List> items = (List>)propositionInteractionDetailsMap.get("items"); - assertNotNull(items); - assertEquals(1, items.size()); - assertEquals("246315", items.get(0).get("id")); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class)) { + // setup + Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID_TARGET.json"), HashMap.class); + final Proposition proposition = Proposition.fromEventData(propositionData); + Assert.assertNotNull(proposition); + Assert.assertNotNull(proposition.getOffers()); + Assert.assertEquals(1, proposition.getOffers().size()); + Offer offer = proposition.getOffers().get(0); + Assert.assertNotNull(offer); + + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + // test + offer.displayed(); + + // verify + mobileCoreMockedStatic.verify(() -> MobileCore.dispatchEvent(eventCaptor.capture())); + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.optimize", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", dispatchedEvent.getSource()); + final Map eventData = dispatchedEvent.getEventData(); + Assert.assertNotNull(eventData); + Assert.assertEquals("trackpropositions", eventData.get("requesttype")); + final Map propositionInteractions = (Map) eventData.get("propositioninteractions"); + Assert.assertNotNull(propositionInteractions); + Assert.assertEquals("decisioning.propositionDisplay", propositionInteractions.get("eventType")); + final Map experience = (Map) propositionInteractions.get("_experience"); + Assert.assertNotNull(experience); + final Map decisioning = (Map) experience.get("decisioning"); + Assert.assertNotNull(decisioning); + final List> propositionInteractionDetailsList = (List>) decisioning.get("propositions"); + Assert.assertNotNull(propositionInteractionDetailsList); + Assert.assertEquals(1, propositionInteractionDetailsList.size()); + final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); + Assert.assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id")); + Assert.assertEquals("myMbox", propositionInteractionDetailsMap.get("scope")); + final Map scopeDetails = (Map) propositionInteractionDetailsMap.get("scopeDetails"); + Assert.assertNotNull(scopeDetails); + Assert.assertEquals(4, scopeDetails.size()); + Assert.assertEquals("TGT", scopeDetails.get("decisionProvider")); + final Map sdActivity = (Map) scopeDetails.get("activity"); + Assert.assertEquals("125589", sdActivity.get("id")); + final Map sdExperience = (Map) scopeDetails.get("experience"); + Assert.assertEquals("0", sdExperience.get("id")); + final List> sdStrategies = (List>) scopeDetails.get("strategies"); + Assert.assertNotNull(sdStrategies); + Assert.assertEquals(1, sdStrategies.size()); + Assert.assertEquals("0", sdStrategies.get(0).get("algorithmID")); + Assert.assertEquals("0", sdStrategies.get(0).get("trafficType")); + final List> items = (List>) propositionInteractionDetailsMap.get("items"); + Assert.assertNotNull(items); + Assert.assertEquals(1, items.size()); + Assert.assertEquals("246315", items.get(0).get("id")); + } } @Test public void testDisplayed_nullPropositionReference() throws Exception { - // setup - Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); - final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - assertNotNull(proposition.getOffers()); - assertEquals(1, proposition.getOffers().size()); - Offer offer = proposition.getOffers().get(0); - assertNotNull(offer); - offer.propositionReference = null; - - // test - offer.displayed(); - - // verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); + final Proposition proposition = Proposition.fromEventData(propositionData); + Assert.assertNotNull(proposition); + Assert.assertNotNull(proposition.getOffers()); + Assert.assertEquals(1, proposition.getOffers().size()); + Offer offer = proposition.getOffers().get(0); + Assert.assertNotNull(offer); + offer.propositionReference = null; + + // test + offer.displayed(); + + // verify + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())); + } } @Test public void testTapped_validProposition() throws Exception { - // setup - Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); - final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - assertNotNull(proposition.getOffers()); - assertEquals(1, proposition.getOffers().size()); - Offer offer = proposition.getOffers().get(0); - assertNotNull(offer); - - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - - // test - offer.tapped(); - - // verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), dispatchedEvent.getSource()); - final Map eventData = dispatchedEvent.getEventData(); - assertNotNull(eventData); - assertEquals("trackpropositions", eventData.get("requesttype")); - final Map propositionInteractions = (Map)eventData.get("propositioninteractions"); - assertNotNull(propositionInteractions); - assertEquals("decisioning.propositionInteract", propositionInteractions.get("eventType")); - final Map experience = (Map)propositionInteractions.get("_experience"); - assertNotNull(experience); - final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); - final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions"); - assertNotNull(propositionInteractionDetailsList); - assertEquals(1, propositionInteractionDetailsList.size()); - final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); - assertEquals("de03ac85-802a-4331-a905-a57053164d35", propositionInteractionDetailsMap.get("id")); - assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", propositionInteractionDetailsMap.get("scope")); - final Map scopeDetails = (Map)propositionInteractionDetailsMap.get("scopeDetails"); - assertNotNull(scopeDetails); - assertTrue(scopeDetails.isEmpty()); - final List> items = (List>)propositionInteractionDetailsMap.get("items"); - assertNotNull(items); - assertEquals(1, items.size()); - assertEquals("xcore:personalized-offer:1111111111111111", items.get(0).get("id")); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class)) { + // setup + Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); + final Proposition proposition = Proposition.fromEventData(propositionData); + Assert.assertNotNull(proposition); + Assert.assertNotNull(proposition.getOffers()); + Assert.assertEquals(1, proposition.getOffers().size()); + Offer offer = proposition.getOffers().get(0); + Assert.assertNotNull(offer); + + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + // test + offer.tapped(); + + // verify + mobileCoreMockedStatic.verify(() -> MobileCore.dispatchEvent(eventCaptor.capture())); + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.optimize", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", dispatchedEvent.getSource()); + final Map eventData = dispatchedEvent.getEventData(); + Assert.assertNotNull(eventData); + Assert.assertEquals("trackpropositions", eventData.get("requesttype")); + final Map propositionInteractions = (Map) eventData.get("propositioninteractions"); + Assert.assertNotNull(propositionInteractions); + Assert.assertEquals("decisioning.propositionInteract", propositionInteractions.get("eventType")); + final Map experience = (Map) propositionInteractions.get("_experience"); + Assert.assertNotNull(experience); + final Map decisioning = (Map) experience.get("decisioning"); + Assert.assertNotNull(decisioning); + final List> propositionInteractionDetailsList = (List>) decisioning.get("propositions"); + Assert.assertNotNull(propositionInteractionDetailsList); + Assert.assertEquals(1, propositionInteractionDetailsList.size()); + final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); + Assert.assertEquals("de03ac85-802a-4331-a905-a57053164d35", propositionInteractionDetailsMap.get("id")); + Assert.assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", propositionInteractionDetailsMap.get("scope")); + final Map scopeDetails = (Map) propositionInteractionDetailsMap.get("scopeDetails"); + Assert.assertNotNull(scopeDetails); + Assert.assertTrue(scopeDetails.isEmpty()); + final List> items = (List>) propositionInteractionDetailsMap.get("items"); + Assert.assertNotNull(items); + Assert.assertEquals(1, items.size()); + Assert.assertEquals("xcore:personalized-offer:1111111111111111", items.get(0).get("id")); + } } @Test public void testTapped_validPropositionFromTarget() throws Exception { - // setup - Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID_TARGET.json"), HashMap.class); - final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - assertNotNull(proposition.getOffers()); - assertEquals(1, proposition.getOffers().size()); - Offer offer = proposition.getOffers().get(0); - assertNotNull(offer); - - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - - // test - offer.tapped(); - - // verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), dispatchedEvent.getSource()); - final Map eventData = dispatchedEvent.getEventData(); - assertNotNull(eventData); - assertEquals("trackpropositions", eventData.get("requesttype")); - final Map propositionInteractions = (Map)eventData.get("propositioninteractions"); - assertNotNull(propositionInteractions); - assertEquals("decisioning.propositionInteract", propositionInteractions.get("eventType")); - final Map experience = (Map)propositionInteractions.get("_experience"); - assertNotNull(experience); - final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); - final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions"); - assertNotNull(propositionInteractionDetailsList); - assertEquals(1, propositionInteractionDetailsList.size()); - final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); - assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id")); - assertEquals("myMbox", propositionInteractionDetailsMap.get("scope")); - final Map scopeDetails = (Map)propositionInteractionDetailsMap.get("scopeDetails"); - assertNotNull(scopeDetails); - assertEquals(4, scopeDetails.size()); - assertEquals("TGT", scopeDetails.get("decisionProvider")); - final Map sdActivity = (Map)scopeDetails.get("activity"); - assertEquals("125589", sdActivity.get("id")); - final Map sdExperience = (Map)scopeDetails.get("experience"); - assertEquals("0", sdExperience.get("id")); - final List> sdStrategies = (List>)scopeDetails.get("strategies"); - assertNotNull(sdStrategies); - assertEquals(1, sdStrategies.size()); - assertEquals("0", sdStrategies.get(0).get("algorithmID")); - assertEquals("0", sdStrategies.get(0).get("trafficType")); - final List> items = (List>)propositionInteractionDetailsMap.get("items"); - assertNotNull(items); - assertEquals(1, items.size()); - assertEquals("246315", items.get(0).get("id")); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class)) { + // setup + Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID_TARGET.json"), HashMap.class); + final Proposition proposition = Proposition.fromEventData(propositionData); + Assert.assertNotNull(proposition); + Assert.assertNotNull(proposition.getOffers()); + Assert.assertEquals(1, proposition.getOffers().size()); + Offer offer = proposition.getOffers().get(0); + Assert.assertNotNull(offer); + + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + // test + offer.tapped(); + + // verify + mobileCoreMockedStatic.verify(() -> MobileCore.dispatchEvent(eventCaptor.capture())); + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.optimize", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", dispatchedEvent.getSource()); + final Map eventData = dispatchedEvent.getEventData(); + Assert.assertNotNull(eventData); + Assert.assertEquals("trackpropositions", eventData.get("requesttype")); + final Map propositionInteractions = (Map) eventData.get("propositioninteractions"); + Assert.assertNotNull(propositionInteractions); + Assert.assertEquals("decisioning.propositionInteract", propositionInteractions.get("eventType")); + final Map experience = (Map) propositionInteractions.get("_experience"); + Assert.assertNotNull(experience); + final Map decisioning = (Map) experience.get("decisioning"); + Assert.assertNotNull(decisioning); + final List> propositionInteractionDetailsList = (List>) decisioning.get("propositions"); + Assert.assertNotNull(propositionInteractionDetailsList); + Assert.assertEquals(1, propositionInteractionDetailsList.size()); + final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); + Assert.assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id")); + Assert.assertEquals("myMbox", propositionInteractionDetailsMap.get("scope")); + final Map scopeDetails = (Map) propositionInteractionDetailsMap.get("scopeDetails"); + Assert.assertNotNull(scopeDetails); + Assert.assertEquals(4, scopeDetails.size()); + Assert.assertEquals("TGT", scopeDetails.get("decisionProvider")); + final Map sdActivity = (Map) scopeDetails.get("activity"); + Assert.assertEquals("125589", sdActivity.get("id")); + final Map sdExperience = (Map) scopeDetails.get("experience"); + Assert.assertEquals("0", sdExperience.get("id")); + final List> sdStrategies = (List>) scopeDetails.get("strategies"); + Assert.assertNotNull(sdStrategies); + Assert.assertEquals(1, sdStrategies.size()); + Assert.assertEquals("0", sdStrategies.get(0).get("algorithmID")); + Assert.assertEquals("0", sdStrategies.get(0).get("trafficType")); + final List> items = (List>) propositionInteractionDetailsMap.get("items"); + Assert.assertNotNull(items); + Assert.assertEquals(1, items.size()); + Assert.assertEquals("246315", items.get(0).get("id")); + } } @Test public void testTapped_nullPropositionReference() throws Exception { - // setup - Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); - final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - assertNotNull(proposition.getOffers()); - assertEquals(1, proposition.getOffers().size()); - Offer offer = proposition.getOffers().get(0); - assertNotNull(offer); - offer.propositionReference = null; - - // test - offer.tapped(); - - // verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); + final Proposition proposition = Proposition.fromEventData(propositionData); + Assert.assertNotNull(proposition); + Assert.assertNotNull(proposition.getOffers()); + Assert.assertEquals(1, proposition.getOffers().size()); + Offer offer = proposition.getOffers().get(0); + Assert.assertNotNull(offer); + offer.propositionReference = null; + + // test + offer.tapped(); + + // verify + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())); + } } } diff --git a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OfferTypeTests.java b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OfferTypeTests.java index c2cb01c3..b3b6313a 100644 --- a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OfferTypeTests.java +++ b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OfferTypeTests.java @@ -12,123 +12,122 @@ package com.adobe.marketing.mobile.optimize; +import org.junit.Assert; import org.junit.Test; -import static org.junit.Assert.assertEquals; - public class OfferTypeTests { @Test public void testOfferType_fromJson() { // test final OfferType offerType = OfferType.from("application/json"); - assertEquals(OfferType.JSON, offerType); + Assert.assertEquals(OfferType.JSON, offerType); } @Test public void testOfferType_fromText() { // test final OfferType offerType = OfferType.from("text/plain"); - assertEquals(OfferType.TEXT, offerType); + Assert.assertEquals(OfferType.TEXT, offerType); } @Test public void testOfferType_fromHtml() { // test final OfferType offerType = OfferType.from("text/html"); - assertEquals(OfferType.HTML, offerType); + Assert.assertEquals(OfferType.HTML, offerType); } @Test public void testOfferType_fromImage() { // test final OfferType offerType = OfferType.from("image/png"); - assertEquals(OfferType.IMAGE, offerType); + Assert.assertEquals(OfferType.IMAGE, offerType); } @Test public void testOfferType_fromUnknownString() { // test final OfferType offerType = OfferType.from("*/*"); - assertEquals(OfferType.UNKNOWN, offerType); + Assert.assertEquals(OfferType.UNKNOWN, offerType); } @Test public void testOfferType_fromEmptyString() { // test final OfferType offerType = OfferType.from(""); - assertEquals(OfferType.UNKNOWN, offerType); + Assert.assertEquals(OfferType.UNKNOWN, offerType); } @Test public void testOfferType_fromNullString() { // test final OfferType offerType = OfferType.from(null); - assertEquals(OfferType.UNKNOWN, offerType); + Assert.assertEquals(OfferType.UNKNOWN, offerType); } @Test public void testOfferType_unknownFromValues() { // test - assertEquals(OfferType.UNKNOWN, OfferType.values()[0]); + Assert.assertEquals(OfferType.UNKNOWN, OfferType.values()[0]); } @Test public void testOfferType_jsonFromValues() { // test - assertEquals(OfferType.JSON, OfferType.values()[1]); + Assert.assertEquals(OfferType.JSON, OfferType.values()[1]); } @Test public void testOfferType_textFromValues() { // test - assertEquals(OfferType.TEXT, OfferType.values()[2]); + Assert.assertEquals(OfferType.TEXT, OfferType.values()[2]); } @Test public void testOfferType_htmlFromValues() { // test - assertEquals(OfferType.HTML, OfferType.values()[3]); + Assert.assertEquals(OfferType.HTML, OfferType.values()[3]); } @Test public void testOfferType_imageFromValues() { // test - assertEquals(OfferType.IMAGE, OfferType.values()[4]); + Assert.assertEquals(OfferType.IMAGE, OfferType.values()[4]); } @Test(expected = ArrayIndexOutOfBoundsException.class) public void testOfferType_invalidFromValues() { // test - assertEquals(OfferType.UNKNOWN, OfferType.values()[100]); + Assert.assertEquals(OfferType.UNKNOWN, OfferType.values()[100]); } @Test public void testToString_jsonOfferType() { // test - assertEquals("application/json", OfferType.JSON.toString()); + Assert.assertEquals("application/json", OfferType.JSON.toString()); } @Test public void testToString_textOfferType() { // test - assertEquals("text/plain", OfferType.TEXT.toString()); + Assert.assertEquals("text/plain", OfferType.TEXT.toString()); } @Test public void testToString_htmlOfferType() { // test - assertEquals("text/html", OfferType.HTML.toString()); + Assert.assertEquals("text/html", OfferType.HTML.toString()); } @Test public void testToString_imageOfferType() { // test - assertEquals("image/*", OfferType.IMAGE.toString()); + Assert.assertEquals("image/*", OfferType.IMAGE.toString()); } @Test public void testToString_unknownOfferType() { // test - assertEquals("", OfferType.UNKNOWN.toString()); + Assert.assertEquals("", OfferType.UNKNOWN.toString()); } } diff --git a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OptimizeExtensionTests.java b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OptimizeExtensionTests.java index 8c426f9e..000696dc 100644 --- a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OptimizeExtensionTests.java +++ b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OptimizeExtensionTests.java @@ -12,155 +12,97 @@ package com.adobe.marketing.mobile.optimize; -import android.app.Application; -import android.content.Context; import android.util.Base64; import com.adobe.marketing.mobile.AdobeError; import com.adobe.marketing.mobile.Event; import com.adobe.marketing.mobile.ExtensionApi; -import com.adobe.marketing.mobile.ExtensionError; -import com.adobe.marketing.mobile.ExtensionErrorCallback; -import com.adobe.marketing.mobile.LoggingMode; -import com.adobe.marketing.mobile.MobileCore; +import com.adobe.marketing.mobile.ExtensionEventListener; +import com.adobe.marketing.mobile.SharedStateResolution; +import com.adobe.marketing.mobile.SharedStateResult; +import com.adobe.marketing.mobile.SharedStateStatus; +import com.adobe.marketing.mobile.services.Log; import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.After; +import org.junit.Assert; import org.junit.runner.RunWith; import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; +import org.mockito.ArgumentMatchers; import org.mockito.Mock; +import org.mockito.MockedStatic; import org.mockito.Mockito; -import org.mockito.invocation.InvocationOnMock; +import org.mockito.junit.MockitoJUnitRunner; import org.mockito.stubbing.Answer; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; -import org.powermock.reflect.Whitebox; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.clearInvocations; -import static org.mockito.Mockito.verify; -import static org.powermock.api.mockito.PowerMockito.spy; -import static org.powermock.api.mockito.PowerMockito.when; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({Base64.class, Event.class, ExtensionApi.class, MobileCore.class}) + +@RunWith(MockitoJUnitRunner.Silent.class) @SuppressWarnings("unchecked") public class OptimizeExtensionTests { private OptimizeExtension extension; - private ExecutorService testExecutor; // Mocks @Mock ExtensionApi mockExtensionApi; - @Mock - Application mockApplication; - - @Mock - Context mockContext; - @Before public void setup() { - PowerMockito.mockStatic(MobileCore.class); - Mockito.when(MobileCore.getApplication()).thenReturn(mockApplication); - Mockito.when(mockApplication.getApplicationContext()).thenReturn(mockContext); - - extension = spy(new OptimizeExtension(mockExtensionApi)); - testExecutor = Executors.newSingleThreadExecutor(); - when(extension.getExecutor()).thenReturn(testExecutor); - - PowerMockito.mockStatic(Base64.class); - Mockito.when(Base64.encodeToString((byte[]) any(), anyInt())).thenAnswer(new Answer() { - @Override - public String answer(InvocationOnMock invocation) { - return java.util.Base64.getEncoder().encodeToString((byte[]) invocation.getArguments()[0]); - } - }); - Mockito.when(Base64.decode(anyString(), anyInt())).thenAnswer(new Answer() { - @Override - public byte[] answer(InvocationOnMock invocation) throws Throwable { - return java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0]); - } - }); - } - - @After - public void teardown() { - if (!testExecutor.isShutdown()) { - testExecutor.shutdownNow(); - } + extension = new OptimizeExtension(mockExtensionApi); } @Test public void test_getName() { // test final String extensionName = extension.getName(); - assertEquals("getName should return the correct extension name.", "com.adobe.optimize", extensionName); + Assert.assertEquals("getName should return the correct extension name.", "com.adobe.optimize", extensionName); } @Test public void test_getVersion() { // test final String extensionVersion = extension.getVersion(); - assertEquals("getVersion should return the correct extension version.", "1.0.1", extensionVersion); + Assert.assertEquals("getVersion should return the correct extension version.", "2.0.0", extensionVersion); } @Test public void test_registration() { // setup - final ArgumentCaptor> callbackCaptor = ArgumentCaptor.forClass(ExtensionErrorCallback.class); - clearInvocations(mockExtensionApi); + Mockito.clearInvocations(mockExtensionApi); // test extension = new OptimizeExtension(mockExtensionApi); + extension.onRegistered(); // verify - verify(mockExtensionApi, Mockito.times(1)).registerEventListener(eq("com.adobe.eventType.optimize"), - eq("com.adobe.eventSource.requestContent"), eq(ListenerOptimizeRequestContent.class), - callbackCaptor.capture()); - - final ExtensionErrorCallback errorCallback = callbackCaptor.getValue(); - assertNotNull(errorCallback); + Mockito.verify(mockExtensionApi, Mockito.times(1)).registerEventListener( + ArgumentMatchers.eq("com.adobe.eventType.optimize"), + ArgumentMatchers.eq("com.adobe.eventSource.requestContent"), + ArgumentMatchers.any(ExtensionEventListener.class)); + Mockito.verify(mockExtensionApi, Mockito.times(1)).registerEventListener( + ArgumentMatchers.eq("com.adobe.eventType.edge"), + ArgumentMatchers.eq("personalization:decisions"), + ArgumentMatchers.any(ExtensionEventListener.class)); + Mockito.verify(mockExtensionApi, Mockito.times(1)).registerEventListener( + ArgumentMatchers.eq("com.adobe.eventType.edge"), + ArgumentMatchers.eq("com.adobe.eventSource.errorResponseContent"), + ArgumentMatchers.any(ExtensionEventListener.class)); + Mockito.verify(mockExtensionApi, Mockito.times(1)).registerEventListener( + ArgumentMatchers.eq("com.adobe.eventType.optimize"), + ArgumentMatchers.eq("com.adobe.eventSource.requestReset"), + ArgumentMatchers.any(ExtensionEventListener.class)); + Mockito.verify(mockExtensionApi, Mockito.times(1)).registerEventListener( + ArgumentMatchers.eq("com.adobe.eventType.generic.identity"), + ArgumentMatchers.eq("com.adobe.eventSource.requestReset"), + ArgumentMatchers.any(ExtensionEventListener.class)); } @Test - public void testHandleUpdatePropositions_nullEvent() throws Exception { - // test - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - extension.handleUpdatePropositions(null); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.never()); - MobileCore.dispatchEvent(any(Event.class), any(ExtensionErrorCallback.class)); - } - - @Test - public void testHandleUpdatePropositions_nullEventData() throws Exception { + public void testReadyForEvent_configurationSet() { // setup setConfigurationSharedState(new HashMap() { { @@ -169,252 +111,50 @@ public void testHandleUpdatePropositions_nullEventData() throws Exception { }); final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(null) .build(); - - // test - extension.handleUpdatePropositions(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.never()); - MobileCore.dispatchEvent(any(Event.class), any(ExtensionErrorCallback.class)); + Assert.assertTrue(extension.readyForEvent(testEvent)); } @Test - public void testHandleUpdatePropositions_emptyEventData() throws Exception { + public void testReadyForEvent_configurationNotSet() { // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(new HashMap()) .build(); - - // test - extension.handleUpdatePropositions(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.never()); - MobileCore.dispatchEvent(any(Event.class), any(ExtensionErrorCallback.class)); + Assert.assertFalse(extension.readyForEvent(testEvent)); } @Test - public void testHandleUpdatePropositions_validDecisionScope() throws Exception { + public void testReadyForEvent_invalidConfigurationSet() { // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - final DecisionScope testScope = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "updatepropositions"); - testEventData.put("decisionscopes", new ArrayList>() { - { - add(testScope.toEventData()); - } - }); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - + setConfigurationSharedState(null); final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) .build(); - - // test - extension.handleUpdatePropositions(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); - - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.edge".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), dispatchedEvent.getSource()); - - final Map query = (Map) dispatchedEvent.getEventData().get("query"); - assertNotNull(query); - final Map queryPersonalization = (Map) query.get("personalization"); - assertNotNull(queryPersonalization); - final List schemas = (List) queryPersonalization.get("schemas"); - assertNotNull(schemas); - assertEquals(7, schemas.size()); - assertEquals(OptimizeExtension.supportedSchemas, schemas); - final List scopes = (List) queryPersonalization.get("decisionScopes"); - assertNotNull(scopes); - assertEquals(1, scopes.size()); - assertEquals(testScope.getName(), scopes.get(0)); - - final Map xdm = (Map) dispatchedEvent.getEventData().get("xdm"); - assertNotNull(xdm); - assertEquals(1, xdm.size()); - assertEquals("personalization.request", xdm.get("eventType")); - - final Map data = (Map) dispatchedEvent.getEventData().get("data"); - assertNull(data); - - final String datasetId = (String) dispatchedEvent.getEventData().get("datasetId"); - assertNull(datasetId); + Assert.assertFalse(extension.readyForEvent(testEvent)); } @Test - public void testHandleUpdatePropositions_validDecisionScopeWithXdmAndDataAndDatasetId() throws Exception { + public void testReadyForEvent_OptimizeResetContentEvent() { // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - put("optimize.datasetId", "111111111111111111111111"); - } - }); - - final DecisionScope testScope = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "updatepropositions"); - testEventData.put("decisionscopes", new ArrayList>() { - { - add(testScope.toEventData()); - } - }); - testEventData.put("xdm", new HashMap(){ - { - put("myXdmKey", "myXdmValue"); - } - }); - testEventData.put("data", new HashMap(){ - { - put("myKey", "myValue"); - } - }); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - - final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) + final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestReset") .build(); - // test - extension.handleUpdatePropositions(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); - - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.edge".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), dispatchedEvent.getSource()); - - final Map query = (Map) dispatchedEvent.getEventData().get("query"); - assertNotNull(query); - final Map queryPersonalization = (Map) query.get("personalization"); - assertNotNull(queryPersonalization); - final List schemas = (List) queryPersonalization.get("schemas"); - assertNotNull(schemas); - assertEquals(7, schemas.size()); - assertEquals(OptimizeExtension.supportedSchemas, schemas); - final List scopes = (List) queryPersonalization.get("decisionScopes"); - assertNotNull(scopes); - assertEquals(1, scopes.size()); - assertEquals(testScope.getName(), scopes.get(0)); - - final Map xdm = (Map) dispatchedEvent.getEventData().get("xdm"); - assertNotNull(xdm); - assertEquals(2, xdm.size()); - assertEquals("personalization.request", xdm.get("eventType")); - assertEquals("myXdmValue", xdm.get("myXdmKey")); - - final Map data = (Map) dispatchedEvent.getEventData().get("data"); - assertNotNull(data); - assertEquals(1, data.size()); - assertEquals("myValue", data.get("myKey")); - - final String datasetId = (String) dispatchedEvent.getEventData().get("datasetId"); - assertEquals("111111111111111111111111", datasetId); + Assert.assertTrue(extension.readyForEvent(testEvent)); } @Test - public void testHandleUpdatePropositions_validDecisionScopeWithXdmAndDataAndNoDatasetId() throws Exception { + public void testReadyForEvent_EdgeEvent() { // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - final DecisionScope testScope = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "updatepropositions"); - testEventData.put("decisionscopes", new ArrayList>() { - { - add(testScope.toEventData()); - } - }); - testEventData.put("xdm", new HashMap(){ - { - put("myXdmKey", "myXdmValue"); - } - }); - testEventData.put("data", new HashMap(){ - { - put("myKey", "myValue"); - } - }); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - - final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) + final Event testEvent = new Event.Builder("AEP Response Event Handle", "com.adobe.eventType.edge", "personalization:decisions") .build(); - // test - extension.handleUpdatePropositions(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); - - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.edge".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), dispatchedEvent.getSource()); - - final Map query = (Map) dispatchedEvent.getEventData().get("query"); - assertNotNull(query); - final Map queryPersonalization = (Map) query.get("personalization"); - assertNotNull(queryPersonalization); - final List schemas = (List) queryPersonalization.get("schemas"); - assertNotNull(schemas); - assertEquals(7, schemas.size()); - assertEquals(OptimizeExtension.supportedSchemas, schemas); - final List scopes = (List) queryPersonalization.get("decisionScopes"); - assertNotNull(scopes); - assertEquals(1, scopes.size()); - assertEquals(testScope.getName(), scopes.get(0)); - - final Map xdm = (Map) dispatchedEvent.getEventData().get("xdm"); - assertNotNull(xdm); - assertEquals(2, xdm.size()); - assertEquals("personalization.request", xdm.get("eventType")); - assertEquals("myXdmValue", xdm.get("myXdmKey")); - - final Map data = (Map) dispatchedEvent.getEventData().get("data"); - assertNotNull(data); - assertEquals(1, data.size()); - assertEquals("myValue", data.get("myKey")); - - final String datasetId = (String) dispatchedEvent.getEventData().get("datasetId"); - assertNull(datasetId); + Assert.assertTrue(extension.readyForEvent(testEvent)); } @Test - public void testHandleUpdatePropositions_multipleValidDecisionScopes() throws Exception { + public void testHandleOptimizeRequestContent_nullEventData() { // setup setConfigurationSharedState(new HashMap() { { @@ -422,88 +162,21 @@ public void testHandleUpdatePropositions_multipleValidDecisionScopes() throws Ex } }); - final DecisionScope testScope1 = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); - final DecisionScope testScope2 = new DecisionScope("myMbox"); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "updatepropositions"); - testEventData.put("decisionscopes", new ArrayList>() { - { - add(testScope1.toEventData()); - add(testScope2.toEventData()); - } - }); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) + .setEventData(null) .build(); // test - extension.handleUpdatePropositions(testEvent); + extension.handleOptimizeRequestContent(testEvent); // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); - - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.edge".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), dispatchedEvent.getSource()); - - final Map query = (Map) dispatchedEvent.getEventData().get("query"); - assertNotNull(query); - final Map queryPersonalization = (Map) query.get("personalization"); - assertNotNull(queryPersonalization); - final List schemas = (List) queryPersonalization.get("schemas"); - assertNotNull(schemas); - assertEquals(7, schemas.size()); - assertEquals(OptimizeExtension.supportedSchemas, schemas); - final List scopes = (List) queryPersonalization.get("decisionScopes"); - assertNotNull(scopes); - assertEquals(2, scopes.size()); - assertEquals(testScope1.getName(), scopes.get(0)); - assertEquals(testScope2.getName(), scopes.get(1)); - - final Map xdm = (Map) dispatchedEvent.getEventData().get("xdm"); - assertNotNull(xdm); - assertEquals(1, xdm.size()); - assertEquals("personalization.request", xdm.get("eventType")); - - final Map data = (Map) dispatchedEvent.getEventData().get("data"); - assertNull(data); - - final String datasetId = (String) dispatchedEvent.getEventData().get("datasetId"); - assertNull(datasetId); - } - - @Test - public void testHandleUpdatePropositions_configurationNotAvailable() throws Exception { - // setup - final DecisionScope testScope = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "updatepropositions"); - testEventData.put("decisionscopes", new ArrayList() { - { - add(testScope); - } - }); - - final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) - .build(); - - // test - extension.handleUpdatePropositions(testEvent); - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); + Mockito.verifyNoInteractions(mockExtensionApi); } @Test - public void testHandleUpdatePropositions_noDecisionScopes() throws Exception { + public void testHandleOptimizeRequestContent_emptyEventData() { // setup setConfigurationSharedState(new HashMap() { { @@ -511,25 +184,20 @@ public void testHandleUpdatePropositions_noDecisionScopes() throws Exception { } }); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "updatepropositions"); - testEventData.put("decisionscopes", new ArrayList()); - final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) + .setEventData(new HashMap<>()) .build(); + // test - extension.handleUpdatePropositions(testEvent); + extension.handleOptimizeRequestContent(testEvent); // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(2)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); + Mockito.verifyNoInteractions(mockExtensionApi); } @Test - public void testHandleUpdatePropositions_invalidDecisionScope() throws Exception { + public void testHandleOptimizeRequestContent_invalidRequestType() { // setup setConfigurationSharedState(new HashMap() { { @@ -537,100 +205,472 @@ public void testHandleUpdatePropositions_invalidDecisionScope() throws Exception } }); - final DecisionScope testScope = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoiIn0="); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "updatepropositions"); - testEventData.put("decisionscopes", new ArrayList>() { + Map eventData = new HashMap() { { - add(testScope.toEventData()); + put("requesttype", "unknown"); } - }); - - final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) + }; + Event testEvent = new Event.Builder("Optimize Get Propositions Request", + "com.adobe.eventType.optimize", + "com.adobe.eventSource.requestContent") + .setEventData(eventData) .build(); // test - extension.handleUpdatePropositions(testEvent); + extension.handleOptimizeRequestContent(testEvent); // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(3)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); + Mockito.verifyNoInteractions(mockExtensionApi); } @Test - public void testHandleUpdatePropositions_validAndInvalidDecisionScopes() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); + public void testHandleOptimizeRequestContent_handleUpdatePropositions_validDecisionScope() { + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); + + final DecisionScope testScope = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "updatepropositions"); + testEventData.put("decisionscopes", new ArrayList>() { + { + add(testScope.toEventData()); + } + }); + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); + + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); + + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.edge", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", dispatchedEvent.getSource()); + + final Map query = (Map) dispatchedEvent.getEventData().get("query"); + Assert.assertNotNull(query); + final Map queryPersonalization = (Map) query.get("personalization"); + Assert.assertNotNull(queryPersonalization); + final List schemas = (List) queryPersonalization.get("schemas"); + Assert.assertNotNull(schemas); + Assert.assertEquals(7, schemas.size()); + Assert.assertEquals(OptimizeExtension.supportedSchemas, schemas); + final List scopes = (List) queryPersonalization.get("decisionScopes"); + Assert.assertNotNull(scopes); + Assert.assertEquals(1, scopes.size()); + Assert.assertEquals(testScope.getName(), scopes.get(0)); + + final Map xdm = (Map) dispatchedEvent.getEventData().get("xdm"); + Assert.assertNotNull(xdm); + Assert.assertEquals(1, xdm.size()); + Assert.assertEquals("personalization.request", xdm.get("eventType")); + + final Map data = (Map) dispatchedEvent.getEventData().get("data"); + Assert.assertNull(data); + + final String datasetId = (String) dispatchedEvent.getEventData().get("datasetId"); + Assert.assertNull(datasetId); + } + } - final DecisionScope testScope1 = new DecisionScope("eyJhY3Rpdml0eUlkIjoiIiwicGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSJ9"); - final DecisionScope testScope2 = new DecisionScope("myMbox"); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "updatepropositions"); - testEventData.put("decisionscopes", new ArrayList>() { - { - add(testScope1.toEventData()); - add(testScope2.toEventData()); - } - }); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + @Test + public void testHandleOptimizeRequestContent_HandleUpdatePropositions_validDecisionScopeWithXdmAndDataAndDatasetId() { + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + put("optimize.datasetId", "111111111111111111111111"); + } + }); + + final DecisionScope testScope = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "updatepropositions"); + testEventData.put("decisionscopes", new ArrayList>() { + { + add(testScope.toEventData()); + } + }); + testEventData.put("xdm", new HashMap() { + { + put("myXdmKey", "myXdmValue"); + } + }); + testEventData.put("data", new HashMap() { + { + put("myKey", "myValue"); + } + }); + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); + + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.edge", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", dispatchedEvent.getSource()); + + final Map query = (Map) dispatchedEvent.getEventData().get("query"); + Assert.assertNotNull(query); + final Map queryPersonalization = (Map) query.get("personalization"); + Assert.assertNotNull(queryPersonalization); + final List schemas = (List) queryPersonalization.get("schemas"); + Assert.assertNotNull(schemas); + Assert.assertEquals(7, schemas.size()); + Assert.assertEquals(OptimizeExtension.supportedSchemas, schemas); + final List scopes = (List) queryPersonalization.get("decisionScopes"); + Assert.assertNotNull(scopes); + Assert.assertEquals(1, scopes.size()); + Assert.assertEquals(testScope.getName(), scopes.get(0)); + + final Map xdm = (Map) dispatchedEvent.getEventData().get("xdm"); + Assert.assertNotNull(xdm); + Assert.assertEquals(2, xdm.size()); + Assert.assertEquals("personalization.request", xdm.get("eventType")); + Assert.assertEquals("myXdmValue", xdm.get("myXdmKey")); + + final Map data = (Map) dispatchedEvent.getEventData().get("data"); + Assert.assertNotNull(data); + Assert.assertEquals(1, data.size()); + Assert.assertEquals("myValue", data.get("myKey")); + + final String datasetId = (String) dispatchedEvent.getEventData().get("datasetId"); + Assert.assertEquals("111111111111111111111111", datasetId); + } + } - final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) - .build(); + @Test + public void testHandleOptimizeRequestContent_HandleUpdatePropositions_validDecisionScopeWithXdmAndDataAndNoDatasetId() { + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); + + final DecisionScope testScope = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "updatepropositions"); + testEventData.put("decisionscopes", new ArrayList>() { + { + add(testScope.toEventData()); + } + }); + testEventData.put("xdm", new HashMap() { + { + put("myXdmKey", "myXdmValue"); + } + }); + testEventData.put("data", new HashMap() { + { + put("myKey", "myValue"); + } + }); + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); + + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.edge", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", dispatchedEvent.getSource()); + + final Map query = (Map) dispatchedEvent.getEventData().get("query"); + Assert.assertNotNull(query); + final Map queryPersonalization = (Map) query.get("personalization"); + Assert.assertNotNull(queryPersonalization); + final List schemas = (List) queryPersonalization.get("schemas"); + Assert.assertNotNull(schemas); + Assert.assertEquals(7, schemas.size()); + Assert.assertEquals(OptimizeExtension.supportedSchemas, schemas); + final List scopes = (List) queryPersonalization.get("decisionScopes"); + Assert.assertNotNull(scopes); + Assert.assertEquals(1, scopes.size()); + Assert.assertEquals(testScope.getName(), scopes.get(0)); + + final Map xdm = (Map) dispatchedEvent.getEventData().get("xdm"); + Assert.assertNotNull(xdm); + Assert.assertEquals(2, xdm.size()); + Assert.assertEquals("personalization.request", xdm.get("eventType")); + Assert.assertEquals("myXdmValue", xdm.get("myXdmKey")); + + final Map data = (Map) dispatchedEvent.getEventData().get("data"); + Assert.assertNotNull(data); + Assert.assertEquals(1, data.size()); + Assert.assertEquals("myValue", data.get("myKey")); + + final String datasetId = (String) dispatchedEvent.getEventData().get("datasetId"); + Assert.assertNull(datasetId); + } + } + @Test + public void testHandleOptimizeRequestContent_HandleUpdatePropositions_multipleValidDecisionScopes() { + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); + + final DecisionScope testScope1 = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); + final DecisionScope testScope2 = new DecisionScope("myMbox"); + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "updatepropositions"); + testEventData.put("decisionscopes", new ArrayList>() { + { + add(testScope1.toEventData()); + add(testScope2.toEventData()); + } + }); + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); + + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); + + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.edge", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", dispatchedEvent.getSource()); + + final Map query = (Map) dispatchedEvent.getEventData().get("query"); + Assert.assertNotNull(query); + final Map queryPersonalization = (Map) query.get("personalization"); + Assert.assertNotNull(queryPersonalization); + final List schemas = (List) queryPersonalization.get("schemas"); + Assert.assertNotNull(schemas); + Assert.assertEquals(7, schemas.size()); + Assert.assertEquals(OptimizeExtension.supportedSchemas, schemas); + final List scopes = (List) queryPersonalization.get("decisionScopes"); + Assert.assertNotNull(scopes); + Assert.assertEquals(2, scopes.size()); + Assert.assertEquals(testScope1.getName(), scopes.get(0)); + Assert.assertEquals(testScope2.getName(), scopes.get(1)); + + final Map xdm = (Map) dispatchedEvent.getEventData().get("xdm"); + Assert.assertNotNull(xdm); + Assert.assertEquals(1, xdm.size()); + Assert.assertEquals("personalization.request", xdm.get("eventType")); + + final Map data = (Map) dispatchedEvent.getEventData().get("data"); + Assert.assertNull(data); + + final String datasetId = (String) dispatchedEvent.getEventData().get("datasetId"); + Assert.assertNull(datasetId); + } + } - // test - extension.handleUpdatePropositions(testEvent); + @Test + public void testHandleOptimizeRequestContent_UpdatePropositions_configurationNotAvailable() { + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + + // setup + final DecisionScope testScope = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "updatepropositions"); + testEventData.put("decisionscopes", new ArrayList>() { + { + add(testScope.toEventData()); + } + }); + + final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(0)).dispatch(ArgumentMatchers.any()); + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())); + } + } - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); + @Test + public void testHandleOptimizeRequestContent_HandleUpdatePropositions_noDecisionScopes() { + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class); + MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); + + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "updatepropositions"); + testEventData.put("decisionscopes", new ArrayList>()); + + final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(0)).dispatch(ArgumentMatchers.any()); + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString()), Mockito.times(2)); + } + } - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.edge".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), dispatchedEvent.getSource()); - - final Map query = (Map) dispatchedEvent.getEventData().get("query"); - assertNotNull(query); - final Map queryPersonalization = (Map) query.get("personalization"); - assertNotNull(queryPersonalization); - final List schemas = (List) queryPersonalization.get("schemas"); - assertNotNull(schemas); - assertEquals(7, schemas.size()); - assertEquals(OptimizeExtension.supportedSchemas, schemas); - final List scopes = (List) queryPersonalization.get("decisionScopes"); - assertNotNull(scopes); - assertEquals(1, scopes.size()); - assertEquals(testScope2.getName(), scopes.get(0)); - - final Map xdm = (Map) dispatchedEvent.getEventData().get("xdm"); - assertNotNull(xdm); - assertEquals(1, xdm.size()); - assertEquals("personalization.request", xdm.get("eventType")); - - final Map data = (Map) dispatchedEvent.getEventData().get("data"); - assertNull(data); - - final String datasetId = (String) dispatchedEvent.getEventData().get("datasetId"); - assertNull(datasetId); + @Test + public void testHandleOptimizeRequestContent_HandleUpdatePropositions_invalidDecisionScope() { + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class); + MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); + + final DecisionScope testScope = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoiIn0="); + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "updatepropositions"); + testEventData.put("decisionscopes", new ArrayList>() { + { + add(testScope.toEventData()); + } + }); + + final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(0)).dispatch(ArgumentMatchers.any()); + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.any()), Mockito.times(2)); + logMockedStatic.verify(() -> Log.warning(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())); + } } @Test - public void testHandleEdgeResponse_validProposition() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); + public void testHandleOptimizeRequestContent_HandleUpdatePropositions_validAndInvalidDecisionScopes() { + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); + + final DecisionScope testScope1 = new DecisionScope("eyJhY3Rpdml0eUlkIjoiIiwicGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSJ9"); + final DecisionScope testScope2 = new DecisionScope("myMbox"); + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "updatepropositions"); + testEventData.put("decisionscopes", new ArrayList>() { + { + add(testScope1.toEventData()); + add(testScope2.toEventData()); + } + }); + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + final Event testEvent = new Event.Builder("Optimize Update Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); + + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); + + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.edge", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", dispatchedEvent.getSource()); + + final Map query = (Map) dispatchedEvent.getEventData().get("query"); + Assert.assertNotNull(query); + final Map queryPersonalization = (Map) query.get("personalization"); + Assert.assertNotNull(queryPersonalization); + final List schemas = (List) queryPersonalization.get("schemas"); + Assert.assertNotNull(schemas); + Assert.assertEquals(7, schemas.size()); + Assert.assertEquals(OptimizeExtension.supportedSchemas, schemas); + final List scopes = (List) queryPersonalization.get("decisionScopes"); + Assert.assertNotNull(scopes); + Assert.assertEquals(1, scopes.size()); + Assert.assertEquals(testScope2.getName(), scopes.get(0)); + + final Map xdm = (Map) dispatchedEvent.getEventData().get("xdm"); + Assert.assertNotNull(xdm); + Assert.assertEquals(1, xdm.size()); + Assert.assertEquals("personalization.request", xdm.get("eventType")); + + final Map data = (Map) dispatchedEvent.getEventData().get("data"); + Assert.assertNull(data); + + final String datasetId = (String) dispatchedEvent.getEventData().get("datasetId"); + Assert.assertNull(datasetId); + } + } + @Test + public void testHandleEdgeResponse_validProposition() throws Exception{ + // setup final Map edgeResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_RESPONSE_VALID.json"), HashMap.class); final Event testEvent = new Event.Builder("AEP Response Event Handle", "com.adobe.eventType.edge", "personalization:decisions") .setEventData(edgeResponseData) @@ -642,53 +682,46 @@ public void testHandleEdgeResponse_validProposition() throws Exception { extension.handleEdgeResponse(testEvent); // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.notification".toLowerCase(), dispatchedEvent.getSource()); + Assert.assertEquals("com.adobe.eventType.optimize", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.notification", dispatchedEvent.getSource()); final List> propositionsList = (List>) dispatchedEvent.getEventData().get("propositions"); - assertNotNull(propositionsList); - assertEquals(1, propositionsList.size()); + Assert.assertNotNull(propositionsList); + Assert.assertEquals(1, propositionsList.size()); final Map propositionsData = propositionsList.get(0); - assertNotNull(propositionsData); + Assert.assertNotNull(propositionsData); final Proposition proposition = Proposition.fromEventData(propositionsData); - assertNotNull(proposition); + Assert.assertNotNull(proposition); - assertEquals("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", proposition.getId()); - assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", proposition.getScope()); - assertTrue(proposition.getScopeDetails().isEmpty()); - assertEquals(1, proposition.getOffers().size()); + Assert.assertEquals("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", proposition.getId()); + Assert.assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", proposition.getScope()); + Assert.assertTrue(proposition.getScopeDetails().isEmpty()); + Assert.assertEquals(1, proposition.getOffers().size()); final Offer offer = proposition.getOffers().get(0); - assertEquals("xcore:personalized-offer:1111111111111111", offer.getId()); - assertEquals("10", offer.getEtag()); - assertEquals("https://ns.adobe.com/experience/offer-management/content-component-html", offer.getSchema()); - assertEquals(OfferType.HTML, offer.getType()); - assertEquals("

    This is a HTML content

    ", offer.getContent()); - assertEquals(1, offer.getCharacteristics().size()); - assertEquals("true", offer.getCharacteristics().get("testing")); - assertNull(offer.getLanguage()); - - final Map cachedPropositions = Whitebox.getInternalState(extension, "cachedPropositions"); - assertEquals(1, cachedPropositions.size()); + Assert.assertEquals("xcore:personalized-offer:1111111111111111", offer.getId()); + Assert.assertEquals("10", offer.getEtag()); + Assert.assertEquals("https://ns.adobe.com/experience/offer-management/content-component-html", offer.getSchema()); + Assert.assertEquals(OfferType.HTML, offer.getType()); + Assert.assertEquals("

    This is a HTML content

    ", offer.getContent()); + Assert.assertEquals(1, offer.getCharacteristics().size()); + Assert.assertEquals("true", offer.getCharacteristics().get("testing")); + Assert.assertNull(offer.getLanguage()); + + final Map cachedPropositions = extension.getCachedPropositions(); + Assert.assertNotNull(cachedPropositions); + Assert.assertEquals(1, cachedPropositions.size()); final DecisionScope cachedScope = new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); - assertEquals(proposition, cachedPropositions.get(cachedScope)); + Assert.assertEquals(proposition, cachedPropositions.get(cachedScope)); } @Test public void testHandleEdgeResponse_validPropositionFromTargetWithClickTracking() throws Exception { // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - final Map edgeResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_RESPONSE_VALID_TARGET_WITH_CLICK_TRACKING.json"), HashMap.class); final Event testEvent = new Event.Builder("AEP Response Event Handle", "com.adobe.eventType.edge", "personalization:decisions") .setEventData(edgeResponseData) @@ -700,475 +733,534 @@ public void testHandleEdgeResponse_validPropositionFromTargetWithClickTracking() extension.handleEdgeResponse(testEvent); // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.notification".toLowerCase(), dispatchedEvent.getSource()); + Assert.assertEquals("com.adobe.eventType.optimize", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.notification", dispatchedEvent.getSource()); final List> propositionsList = (List>) dispatchedEvent.getEventData().get("propositions"); - assertNotNull(propositionsList); - assertEquals(1, propositionsList.size()); + Assert.assertNotNull(propositionsList); + Assert.assertEquals(1, propositionsList.size()); final Map propositionsData = propositionsList.get(0); - assertNotNull(propositionsData); + Assert.assertNotNull(propositionsData); final Proposition proposition = Proposition.fromEventData(propositionsData); - assertNotNull(proposition); + Assert.assertNotNull(proposition); - assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTExMTExIiwiZXhwZXJpZW5jZUlkIjoiMCJ9", proposition.getId()); - assertEquals("myMbox", proposition.getScope()); - assertNotNull(proposition.getScopeDetails()); + Assert.assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTExMTExIiwiZXhwZXJpZW5jZUlkIjoiMCJ9", proposition.getId()); + Assert.assertEquals("myMbox", proposition.getScope()); + Assert.assertNotNull(proposition.getScopeDetails()); final Map scopeDetails = proposition.getScopeDetails(); - assertNotNull(scopeDetails); - assertEquals(5, scopeDetails.size()); - assertEquals("TGT", scopeDetails.get("decisionProvider")); + Assert.assertNotNull(scopeDetails); + Assert.assertEquals(5, scopeDetails.size()); + Assert.assertEquals("TGT", scopeDetails.get("decisionProvider")); final Map activity = (Map)scopeDetails.get("activity"); - assertNotNull(activity); - assertEquals(1, activity.size()); - assertEquals("111111", activity.get("id")); + Assert.assertNotNull(activity); + Assert.assertEquals(1, activity.size()); + Assert.assertEquals("111111", activity.get("id")); Map experience = (Map)scopeDetails.get("experience"); - assertNotNull(experience); - assertEquals(1, experience.size()); - assertEquals("0", experience.get("id")); + Assert.assertNotNull(experience); + Assert.assertEquals(1, experience.size()); + Assert.assertEquals("0", experience.get("id")); final List> strategies = (List>)scopeDetails.get("strategies"); - assertNotNull(strategies); - assertEquals(2, strategies.size()); + Assert.assertNotNull(strategies); + Assert.assertEquals(2, strategies.size()); final Map strategy0 = strategies.get(0); - assertNotNull(strategy0); - assertEquals(3, strategy0.size()); - assertEquals("entry", strategy0.get("step")); - assertEquals("0", strategy0.get("algorithmID")); - assertEquals("0", strategy0.get("trafficType")); + Assert.assertNotNull(strategy0); + Assert.assertEquals(3, strategy0.size()); + Assert.assertEquals("entry", strategy0.get("step")); + Assert.assertEquals("0", strategy0.get("algorithmID")); + Assert.assertEquals("0", strategy0.get("trafficType")); final Map strategy1 = strategies.get(1); - assertNotNull(strategy1); - assertEquals(3, strategy1.size()); - assertEquals("display", strategy1.get("step")); - assertEquals("0", strategy1.get("algorithmID")); - assertEquals("0", strategy1.get("trafficType")); + Assert.assertNotNull(strategy1); + Assert.assertEquals(3, strategy1.size()); + Assert.assertEquals("display", strategy1.get("step")); + Assert.assertEquals("0", strategy1.get("algorithmID")); + Assert.assertEquals("0", strategy1.get("trafficType")); final Map characteristics = (Map)scopeDetails.get("characteristics"); - assertNotNull(characteristics); - assertEquals(2, characteristics.size()); - assertEquals("SGFZpwAqaqFTayhAT2xsgzG3+2fw4m+O9FK8c0QoOHfxVkH1ttT1PGBX3/jV8a5uFF0fAox6CXpjJ1PGRVQBjHl9Zc6mRxY9NQeM7rs/3Es1RHPkzBzyhpVS6eg9q+kw", characteristics.get("stateToken")); + Assert.assertNotNull(characteristics); + Assert.assertEquals(2, characteristics.size()); + Assert.assertEquals("SGFZpwAqaqFTayhAT2xsgzG3+2fw4m+O9FK8c0QoOHfxVkH1ttT1PGBX3/jV8a5uFF0fAox6CXpjJ1PGRVQBjHl9Zc6mRxY9NQeM7rs/3Es1RHPkzBzyhpVS6eg9q+kw", characteristics.get("stateToken")); final Map eventTokens = (Map)characteristics.get("eventTokens"); - assertNotNull(eventTokens); - assertEquals(2, eventTokens.size()); - assertEquals("MmvRrL5aB4Jz36JappRYg2qipfsIHvVzTQxHolz2IpSCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==", eventTokens.get("display")); - assertEquals("EZDMbI2wmAyGcUYLr3VpmA==", eventTokens.get("click")); + Assert.assertNotNull(eventTokens); + Assert.assertEquals(2, eventTokens.size()); + Assert.assertEquals("MmvRrL5aB4Jz36JappRYg2qipfsIHvVzTQxHolz2IpSCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==", eventTokens.get("display")); + Assert.assertEquals("EZDMbI2wmAyGcUYLr3VpmA==", eventTokens.get("click")); - assertEquals(1, proposition.getOffers().size()); + Assert.assertEquals(1, proposition.getOffers().size()); final Offer offer = proposition.getOffers().get(0); - assertEquals("0", offer.getId()); - assertNull(offer.getEtag()); - assertEquals("https://ns.adobe.com/personalization/json-content-item", offer.getSchema()); - assertEquals(OfferType.JSON, offer.getType()); - assertEquals("{\"device\":\"mobile\"}", offer.getContent()); - assertNull(offer.getCharacteristics()); - assertNull(offer.getLanguage()); - - final Map cachedPropositions = Whitebox.getInternalState(extension, "cachedPropositions"); - assertEquals(1, cachedPropositions.size()); + Assert.assertEquals("0", offer.getId()); + Assert.assertNull(offer.getEtag()); + Assert.assertEquals("https://ns.adobe.com/personalization/json-content-item", offer.getSchema()); + Assert.assertEquals(OfferType.JSON, offer.getType()); + Assert.assertEquals("{\"device\":\"mobile\"}", offer.getContent()); + Assert.assertNull(offer.getCharacteristics()); + Assert.assertNull(offer.getLanguage()); + + final Map cachedPropositions = extension.getCachedPropositions(); + Assert.assertNotNull(cachedPropositions); + Assert.assertEquals(1, cachedPropositions.size()); final DecisionScope cachedScope = new DecisionScope("myMbox"); - assertEquals(proposition, cachedPropositions.get(cachedScope)); + Assert.assertEquals(proposition, cachedPropositions.get(cachedScope)); } @Test - public void testHandleEdgeResponse_emptyProposition() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - final Map edgeResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_RESPONSE_EMPTY_PAYLOAD.json"), HashMap.class); - final Event testEvent = new Event.Builder("AEP Response Event Handle", "com.adobe.eventType.edge", "personalization:decisions") - .setEventData(edgeResponseData) - .build(); - - // test - extension.handleEdgeResponse(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); - final Map cachedPropositions = Whitebox.getInternalState(extension, "cachedPropositions"); - assertTrue(cachedPropositions.isEmpty()); + public void testHandleEdgeResponse_emptyProposition() throws Exception{ + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + final Map edgeResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_RESPONSE_EMPTY_PAYLOAD.json"), HashMap.class); + final Event testEvent = new Event.Builder("AEP Response Event Handle", "com.adobe.eventType.edge", "personalization:decisions") + .setEventData(edgeResponseData) + .build(); + + // test + extension.handleEdgeResponse(testEvent); + + // verify + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())); + + final Map cachedPropositions = extension.getCachedPropositions(); + Assert.assertNotNull(cachedPropositions); + Assert.assertTrue(cachedPropositions.isEmpty()); + } } @Test - public void testHandleEdgeResponse_unsupportedItemInProposition() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - final Map edgeResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_RESPONSE_UNSUPPORTED_ITEM_IN_PAYLOAD.json"), HashMap.class); - final Event testEvent = new Event.Builder("AEP Response Event Handle", "com.adobe.eventType.edge", "personalization:decisions") - .setEventData(edgeResponseData) - .build(); - - // test - extension.handleEdgeResponse(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(2)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); - final Map cachedPropositions = Whitebox.getInternalState(extension, "cachedPropositions"); - assertTrue(cachedPropositions.isEmpty()); + public void testHandleEdgeResponse_unsupportedItemInProposition() throws Exception{ + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + final Map edgeResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_RESPONSE_UNSUPPORTED_ITEM_IN_PAYLOAD.json"), HashMap.class); + final Event testEvent = new Event.Builder("AEP Response Event Handle", "com.adobe.eventType.edge", "personalization:decisions") + .setEventData(edgeResponseData) + .build(); + + // test + extension.handleEdgeResponse(testEvent); + + // verify + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString()), Mockito.times(2)); + + final Map cachedPropositions = extension.getCachedPropositions(); + Assert.assertNotNull(cachedPropositions); + Assert.assertTrue(cachedPropositions.isEmpty()); + } } @Test - public void testHandleEdgeResponse_missingEventHandleInData() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - final Map edgeResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_RESPONSE_MISSING_EVENT_HANDLE.json"), HashMap.class); - final Event testEvent = new Event.Builder("AEP Response Event Handle", "com.adobe.eventType.edge", "personalization:decisions") - .setEventData(edgeResponseData) - .build(); - - // test - extension.handleEdgeResponse(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); - final Map cachedPropositions = Whitebox.getInternalState(extension, "cachedPropositions"); - assertTrue(cachedPropositions.isEmpty()); + public void testHandleEdgeResponse_missingEventHandleInData() throws Exception{ + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + final Map edgeResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_RESPONSE_MISSING_EVENT_HANDLE.json"), HashMap.class); + final Event testEvent = new Event.Builder("AEP Response Event Handle", "com.adobe.eventType.edge", "personalization:decisions") + .setEventData(edgeResponseData) + .build(); + + // test + extension.handleEdgeResponse(testEvent); + + // verify + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())); + + final Map cachedPropositions = extension.getCachedPropositions(); + Assert.assertNotNull(cachedPropositions); + Assert.assertTrue(cachedPropositions.isEmpty()); + } } @Test - public void testHandleEdgeErrorResponse() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - final Map edgeErrorResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_ERROR_RESPONSE.json"), HashMap.class); - final Event testEvent = new Event.Builder("AEP Error Response", "com.adobe.eventType.edge", "com.adobe.eventSource.errorResponseContent") - .setEventData(edgeErrorResponseData) - .build(); - - // test - extension.handleEdgeErrorResponse(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); - final Map cachedPropositions = Whitebox.getInternalState(extension, "cachedPropositions"); - assertTrue(cachedPropositions.isEmpty()); + public void testHandleEdgeResponse_nullEventData(){ + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + final Event testEvent = new Event.Builder("AEP Response Event Handle", "com.adobe.eventType.edge", "personalization:decisions") + .setEventData(null) + .build(); + + // test + extension.handleEdgeResponse(testEvent); + + // verify + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.any())); + + final Map cachedPropositions = extension.getCachedPropositions(); + Assert.assertNotNull(cachedPropositions); + Assert.assertTrue(cachedPropositions.isEmpty()); + } } @Test - public void testHandleGetPropositions_decisionScopeInCache() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - final Map testPropositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); - final Proposition testProposition = Proposition.fromEventData(testPropositionData); - assertNotNull(testProposition); - final Map cachedPropositions = new HashMap<>(); - cachedPropositions.put(new DecisionScope(testProposition.getScope()), testProposition); - Whitebox.setInternalState(extension, "cachedPropositions", cachedPropositions); - - final DecisionScope testScope = new DecisionScope("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "getpropositions"); - testEventData.put("decisionscopes", new ArrayList>() { - { - add(testScope.toEventData()); - } - }); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - final ArgumentCaptor triggerEventCaptor = ArgumentCaptor.forClass(Event.class); - - final Event testEvent = new Event.Builder("Optimize Get Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) - .build(); - - // test - extension.handleGetPropositions(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchResponseEvent(eventCaptor.capture(), triggerEventCaptor.capture(), any(ExtensionErrorCallback.class)); - - final Event triggerEvent = triggerEventCaptor.getValue(); - assertEquals(testEvent, triggerEvent); - - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.responseContent".toLowerCase(), dispatchedEvent.getSource()); - - final List> propositionsList = (List>) dispatchedEvent.getEventData().get("propositions"); - assertNotNull(propositionsList); - assertEquals(1, propositionsList.size()); - - final Map propositionData = propositionsList.get(0); - assertNotNull(propositionData); - final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - - assertEquals("de03ac85-802a-4331-a905-a57053164d35", proposition.getId()); - assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", proposition.getScope()); - assertTrue(proposition.getScopeDetails().isEmpty()); - assertEquals(1, proposition.getOffers().size()); - - Offer offer = proposition.getOffers().get(0); - assertEquals("xcore:personalized-offer:1111111111111111", offer.getId()); - assertEquals("10", offer.getEtag()); - assertEquals("https://ns.adobe.com/experience/offer-management/content-component-html", offer.getSchema()); - assertEquals(OfferType.HTML, offer.getType()); - assertEquals("

    This is a HTML content

    ", offer.getContent()); - assertNull(offer.getLanguage()); - assertNull(offer.getCharacteristics()); + public void testHandleEdgeResponse_emptyEventData() { + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + final Event testEvent = new Event.Builder("AEP Response Event Handle", "com.adobe.eventType.edge", "personalization:decisions") + .setEventData(new HashMap<>()) + .build(); + + // test + extension.handleEdgeResponse(testEvent); + + // verify + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.any())); + + final Map cachedPropositions = extension.getCachedPropositions(); + Assert.assertNotNull(cachedPropositions); + Assert.assertTrue(cachedPropositions.isEmpty()); + } } @Test - public void testHandleGetPropositions_notAllDecisionScopesInCache() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - final Map testPropositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); - final Proposition testProposition = Proposition.fromEventData(testPropositionData); - assertNotNull(testProposition); - final Map cachedPropositions = new HashMap<>(); - cachedPropositions.put(new DecisionScope(testProposition.getScope()), testProposition); - Whitebox.setInternalState(extension, "cachedPropositions", cachedPropositions); - - final DecisionScope testScope1 = new DecisionScope("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); - final DecisionScope testScope2 = new DecisionScope("myMbox"); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "getpropositions"); - testEventData.put("decisionscopes", new ArrayList>() { - { - add(testScope1.toEventData()); - add(testScope2.toEventData()); - } - }); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - final ArgumentCaptor triggerEventCaptor = ArgumentCaptor.forClass(Event.class); - - final Event testEvent = new Event.Builder("Optimize Get Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) - .build(); - - // test - extension.handleGetPropositions(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchResponseEvent(eventCaptor.capture(), triggerEventCaptor.capture(), any(ExtensionErrorCallback.class)); - - final Event triggerEvent = triggerEventCaptor.getValue(); - assertEquals(testEvent, triggerEvent); - - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.responseContent".toLowerCase(), dispatchedEvent.getSource()); - - final List> propositionsList = (List>) dispatchedEvent.getEventData().get("propositions"); - assertNotNull(propositionsList); - assertEquals(1, propositionsList.size()); - - final Map propositionData = propositionsList.get(0); - assertNotNull(propositionData); - final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - - assertEquals("de03ac85-802a-4331-a905-a57053164d35", proposition.getId()); - assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", proposition.getScope()); - assertTrue(proposition.getScopeDetails().isEmpty()); - assertEquals(1, proposition.getOffers().size()); - - Offer offer = proposition.getOffers().get(0); - assertEquals("xcore:personalized-offer:1111111111111111", offer.getId()); - assertEquals("10", offer.getEtag()); - assertEquals("https://ns.adobe.com/experience/offer-management/content-component-html", offer.getSchema()); - assertEquals(OfferType.HTML, offer.getType()); - assertEquals("

    This is a HTML content

    ", offer.getContent()); - assertNull(offer.getLanguage()); - assertNull(offer.getCharacteristics()); + public void testHandleEdgeErrorResponse() throws Exception{ + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + final Map edgeErrorResponseData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_EDGE_ERROR_RESPONSE.json"), HashMap.class); + final Event testEvent = new Event.Builder("AEP Error Response", "com.adobe.eventType.edge", "com.adobe.eventSource.errorResponseContent") + .setEventData(edgeErrorResponseData) + .build(); + + // test + extension.handleEdgeErrorResponse(testEvent); + + // verify + logMockedStatic.verify(() -> Log.warning(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.any())); + + final Map cachedPropositions = extension.getCachedPropositions(); + Assert.assertNotNull(cachedPropositions); + Assert.assertTrue(cachedPropositions.isEmpty()); + } } @Test - public void testHandleGetPropositions_noDecisionScopeInCache() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - final Map testPropositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); - final Proposition testProposition = Proposition.fromEventData(testPropositionData); - assertNotNull(testProposition); - final Map cachedPropositions = new HashMap<>(); - cachedPropositions.put(new DecisionScope(testProposition.getScope()), testProposition); - Whitebox.setInternalState(extension, "cachedPropositions", cachedPropositions); - - final DecisionScope testScope1 = new DecisionScope("myMbox1"); - final DecisionScope testScope2 = new DecisionScope("myMbox2"); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "getpropositions"); - testEventData.put("decisionscopes", new ArrayList>() { - { - add(testScope1.toEventData()); - add(testScope2.toEventData()); - } - }); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - final ArgumentCaptor triggerEventCaptor = ArgumentCaptor.forClass(Event.class); - - final Event testEvent = new Event.Builder("Optimize Get Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) - .build(); - - // test - extension.handleGetPropositions(testEvent); + public void testHandleEdgeErrorResponse_nullEventData() { + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + final Event testEvent = new Event.Builder("AEP Error Response", "com.adobe.eventType.edge", "com.adobe.eventSource.errorResponseContent") + .setEventData(null) + .build(); + + // test + extension.handleEdgeErrorResponse(testEvent); + + // verify + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.any())); + + final Map cachedPropositions = extension.getCachedPropositions(); + Assert.assertNotNull(cachedPropositions); + Assert.assertTrue(cachedPropositions.isEmpty()); + } + } - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchResponseEvent(eventCaptor.capture(), triggerEventCaptor.capture(), any(ExtensionErrorCallback.class)); + @Test + public void testHandleEdgeErrorResponse_emptyEventData(){ + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + final Event testEvent = new Event.Builder("AEP Error Response", "com.adobe.eventType.edge", "com.adobe.eventSource.errorResponseContent") + .setEventData(new HashMap<>()) + .build(); + + // test + extension.handleEdgeErrorResponse(testEvent); + + // verify + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.any())); + + final Map cachedPropositions = extension.getCachedPropositions(); + Assert.assertNotNull(cachedPropositions); + Assert.assertTrue(cachedPropositions.isEmpty()); + } + } - final Event triggerEvent = triggerEventCaptor.getValue(); - assertEquals(testEvent, triggerEvent); + @Test + public void testHandleOptimizeRequestContent_HandleGetPropositions_decisionScopeInCache() throws Exception{ + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); + + final Map testPropositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); + final Proposition testProposition = Proposition.fromEventData(testPropositionData); + Assert.assertNotNull(testProposition); + final Map cachedPropositions = new HashMap<>(); + cachedPropositions.put(new DecisionScope(testProposition.getScope()), testProposition); + extension.setCachedPropositions(cachedPropositions); + + final DecisionScope testScope = new DecisionScope("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "getpropositions"); + testEventData.put("decisionscopes", new ArrayList>() { + { + add(testScope.toEventData()); + } + }); + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + final Event testEvent = new Event.Builder("Optimize Get Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); + + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.optimize", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.responseContent", dispatchedEvent.getSource()); + Assert.assertEquals(testEvent.getUniqueIdentifier(), dispatchedEvent.getResponseID()); + + final List> propositionsList = (List>) dispatchedEvent.getEventData().get("propositions"); + Assert.assertNotNull(propositionsList); + Assert.assertEquals(1, propositionsList.size()); + + final Map propositionData = propositionsList.get(0); + Assert.assertNotNull(propositionData); + final Proposition proposition = Proposition.fromEventData(propositionData); + Assert.assertNotNull(proposition); + + Assert.assertEquals("de03ac85-802a-4331-a905-a57053164d35", proposition.getId()); + Assert.assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", proposition.getScope()); + Assert.assertTrue(proposition.getScopeDetails().isEmpty()); + Assert.assertEquals(1, proposition.getOffers().size()); + + Offer offer = proposition.getOffers().get(0); + Assert.assertEquals("xcore:personalized-offer:1111111111111111", offer.getId()); + Assert.assertEquals("10", offer.getEtag()); + Assert.assertEquals("https://ns.adobe.com/experience/offer-management/content-component-html", offer.getSchema()); + Assert.assertEquals(OfferType.HTML, offer.getType()); + Assert.assertEquals("

    This is a HTML content

    ", offer.getContent()); + Assert.assertNull(offer.getLanguage()); + Assert.assertNull(offer.getCharacteristics()); + } + } - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.responseContent".toLowerCase(), dispatchedEvent.getSource()); + @Test + public void testHandleOptimizeRequestContent_HandleGetPropositions_notAllDecisionScopesInCache() throws Exception{ + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); + + final Map testPropositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); + final Proposition testProposition = Proposition.fromEventData(testPropositionData); + Assert.assertNotNull(testProposition); + final Map cachedPropositions = new HashMap<>(); + cachedPropositions.put(new DecisionScope(testProposition.getScope()), testProposition); + extension.setCachedPropositions(cachedPropositions); + + final DecisionScope testScope1 = new DecisionScope("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); + final DecisionScope testScope2 = new DecisionScope("myMbox"); + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "getpropositions"); + testEventData.put("decisionscopes", new ArrayList>() { + { + add(testScope1.toEventData()); + add(testScope2.toEventData()); + } + }); + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + final Event testEvent = new Event.Builder("Optimize Get Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); + + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.optimize", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.responseContent", dispatchedEvent.getSource()); + Assert.assertEquals(testEvent.getUniqueIdentifier(), dispatchedEvent.getResponseID()); + + final List> propositionsList = (List>) dispatchedEvent.getEventData().get("propositions"); + Assert.assertNotNull(propositionsList); + Assert.assertEquals(1, propositionsList.size()); + + final Map propositionData = propositionsList.get(0); + Assert.assertNotNull(propositionData); + final Proposition proposition = Proposition.fromEventData(propositionData); + Assert.assertNotNull(proposition); + + Assert.assertEquals("de03ac85-802a-4331-a905-a57053164d35", proposition.getId()); + Assert.assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", proposition.getScope()); + Assert.assertTrue(proposition.getScopeDetails().isEmpty()); + Assert.assertEquals(1, proposition.getOffers().size()); + + Offer offer = proposition.getOffers().get(0); + Assert.assertEquals("xcore:personalized-offer:1111111111111111", offer.getId()); + Assert.assertEquals("10", offer.getEtag()); + Assert.assertEquals("https://ns.adobe.com/experience/offer-management/content-component-html", offer.getSchema()); + Assert.assertEquals(OfferType.HTML, offer.getType()); + Assert.assertEquals("

    This is a HTML content

    ", offer.getContent()); + Assert.assertNull(offer.getLanguage()); + Assert.assertNull(offer.getCharacteristics()); + } + } - final List> propositionsList = (List>) dispatchedEvent.getEventData().get("propositions"); - assertNotNull(propositionsList); - assertEquals(0, propositionsList.size()); + @Test + public void testHandleOptimizeRequestContent_HandleGetPropositions_noDecisionScopeInCache() throws Exception { + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); + + final Map testPropositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); + final Proposition testProposition = Proposition.fromEventData(testPropositionData); + Assert.assertNotNull(testProposition); + final Map cachedPropositions = new HashMap<>(); + cachedPropositions.put(new DecisionScope(testProposition.getScope()), testProposition); + extension.setCachedPropositions(cachedPropositions); + + final DecisionScope testScope1 = new DecisionScope("myMbox1"); + final DecisionScope testScope2 = new DecisionScope("myMbox2"); + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "getpropositions"); + testEventData.put("decisionscopes", new ArrayList>() { + { + add(testScope1.toEventData()); + add(testScope2.toEventData()); + } + }); + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + final Event testEvent = new Event.Builder("Optimize Get Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); + + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.optimize", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.responseContent", dispatchedEvent.getSource()); + Assert.assertEquals(testEvent.getUniqueIdentifier(), dispatchedEvent.getResponseID()); + + final List> propositionsList = (List>) dispatchedEvent.getEventData().get("propositions"); + Assert.assertNotNull(propositionsList); + Assert.assertEquals(0, propositionsList.size()); + } } @Test - public void testHandleGetPropositions_missingDecisionScopesList() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); + public void testHandleOptimizeRequestContent_HandleGetPropositions_missingDecisionScopesList() throws Exception { + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); - final Map testPropositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); - final Proposition testProposition = Proposition.fromEventData(testPropositionData); - assertNotNull(testProposition); - final Map cachedPropositions = new HashMap<>(); - cachedPropositions.put(new DecisionScope(testProposition.getScope()), testProposition); - Whitebox.setInternalState(extension, "cachedPropositions", cachedPropositions); + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "getpropositions"); + final Map testPropositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); + final Proposition testProposition = Proposition.fromEventData(testPropositionData); + Assert.assertNotNull(testProposition); + final Map cachedPropositions = new HashMap<>(); + cachedPropositions.put(new DecisionScope(testProposition.getScope()), testProposition); + extension.setCachedPropositions(cachedPropositions); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - final ArgumentCaptor triggerEventCaptor = ArgumentCaptor.forClass(Event.class); + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "getpropositions"); - final Event testEvent = new Event.Builder("Optimize Get Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) - .build(); + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - // test - extension.handleGetPropositions(testEvent); + final Event testEvent = new Event.Builder("Optimize Get Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchResponseEvent(eventCaptor.capture(), triggerEventCaptor.capture(), any(ExtensionErrorCallback.class)); + // test + extension.handleOptimizeRequestContent(testEvent); - final Event triggerEvent = triggerEventCaptor.getValue(); - assertEquals(testEvent, triggerEvent); + // verify + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.responseContent".toLowerCase(), dispatchedEvent.getSource()); + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.optimize", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.responseContent", dispatchedEvent.getSource()); + Assert.assertEquals(testEvent.getUniqueIdentifier(), dispatchedEvent.getResponseID()); - final List> propositionsList = (List>) dispatchedEvent.getEventData().get("propositions"); - assertNull(propositionsList); + final List> propositionsList = (List>) dispatchedEvent.getEventData().get("propositions"); + Assert.assertNull(propositionsList); - final AdobeError error = (AdobeError) dispatchedEvent.getEventData().get("responseerror"); - assertNotNull(error); - assertEquals(AdobeError.UNEXPECTED_ERROR, error); + Assert.assertEquals(0, dispatchedEvent.getEventData().get("responseerror")); + } } @Test - public void testHandleGetPropositions_emptyCachedPropositions() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - final Map cachedPropositions = new HashMap<>(); - Whitebox.setInternalState(extension, "cachedPropositions", cachedPropositions); - - final DecisionScope testScope = new DecisionScope("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); - final Map testEventData = new HashMap<>(); - testEventData.put("requesttype", "getpropositions"); - testEventData.put("decisionscopes", new ArrayList>() { - { - add(testScope.toEventData()); - } - }); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - final ArgumentCaptor triggerEventCaptor = ArgumentCaptor.forClass(Event.class); - - final Event testEvent = new Event.Builder("Optimize Get Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(testEventData) - .build(); - - // test - extension.handleGetPropositions(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchResponseEvent(eventCaptor.capture(), triggerEventCaptor.capture(), any(ExtensionErrorCallback.class)); - - final Event triggerEvent = triggerEventCaptor.getValue(); - assertEquals(testEvent, triggerEvent); - - final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.responseContent".toLowerCase(), dispatchedEvent.getSource()); - - final List> propositionsList = (List>) dispatchedEvent.getEventData().get("propositions"); - assertNotNull(propositionsList); - assertEquals(0, propositionsList.size()); + public void testHandleOptimizeRequestContent_HandleGetPropositions_emptyCachedPropositions(){ + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); + + final Map cachedPropositions = new HashMap<>(); + extension.setCachedPropositions(cachedPropositions); + + final DecisionScope testScope = new DecisionScope("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ=="); + final Map testEventData = new HashMap<>(); + testEventData.put("requesttype", "getpropositions"); + testEventData.put("decisionscopes", new ArrayList>() { + { + add(testScope.toEventData()); + } + }); + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + + final Event testEvent = new Event.Builder("Optimize Get Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(testEventData) + .build(); + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); + + final Event dispatchedEvent = eventCaptor.getValue(); + Assert.assertEquals("com.adobe.eventType.optimize", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.responseContent", dispatchedEvent.getSource()); + Assert.assertEquals(testEvent.getUniqueIdentifier(), dispatchedEvent.getResponseID()); + + final List> propositionsList = (List>) dispatchedEvent.getEventData().get("propositions"); + Assert.assertNotNull(propositionsList); + Assert.assertEquals(0, propositionsList.size()); + } } @Test - public void testHandleTrackPropositions_validPropositionInteractionsForDisplay() throws Exception { + public void testHandleOptimizeRequestContent_HandleTrackPropositions_validPropositionInteractionsForDisplay() throws Exception{ // setup setConfigurationSharedState(new HashMap() { { @@ -1184,42 +1276,40 @@ public void testHandleTrackPropositions_validPropositionInteractionsForDisplay() final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); // test - extension.handleTrackPropositions(testEvent); + extension.handleOptimizeRequestContent(testEvent); // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.edge".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), dispatchedEvent.getSource()); + Assert.assertEquals("com.adobe.eventType.edge", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", dispatchedEvent.getSource()); final Map eventData = dispatchedEvent.getEventData(); - assertNotNull(eventData); + Assert.assertNotNull(eventData); final Map propositionInteractionsXdm = (Map)eventData.get("xdm"); - assertNotNull(propositionInteractionsXdm); - assertEquals("decisioning.propositionDisplay", propositionInteractionsXdm.get("eventType")); + Assert.assertNotNull(propositionInteractionsXdm); + Assert.assertEquals("decisioning.propositionDisplay", propositionInteractionsXdm.get("eventType")); final Map experience = (Map)propositionInteractionsXdm.get("_experience"); - assertNotNull(experience); + Assert.assertNotNull(experience); final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); + Assert.assertNotNull(decisioning); final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions"); - assertNotNull(propositionInteractionDetailsList); - assertEquals(1, propositionInteractionDetailsList.size()); + Assert.assertNotNull(propositionInteractionDetailsList); + Assert.assertEquals(1, propositionInteractionDetailsList.size()); final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); - assertEquals("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", propositionInteractionDetailsMap.get("id")); - assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", propositionInteractionDetailsMap.get("scope")); + Assert.assertEquals("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", propositionInteractionDetailsMap.get("id")); + Assert.assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", propositionInteractionDetailsMap.get("scope")); final Map scopeDetails = (Map)propositionInteractionDetailsMap.get("scopeDetails"); - assertNotNull(scopeDetails); - assertTrue(scopeDetails.isEmpty()); + Assert.assertNotNull(scopeDetails); + Assert.assertTrue(scopeDetails.isEmpty()); final List> items = (List>)propositionInteractionDetailsMap.get("items"); - assertNotNull(items); - assertEquals(1, items.size()); - assertEquals("xcore:personalized-offer:1111111111111111", items.get(0).get("id")); + Assert.assertNotNull(items); + Assert.assertEquals(1, items.size()); + Assert.assertEquals("xcore:personalized-offer:1111111111111111", items.get(0).get("id")); } @Test - public void testHandleTrackPropositions_validPropositionInteractionsForTap() throws Exception { + public void testHandleOptimizeRequestContent_HandleTrackPropositions_validPropositionInteractionsForTap() throws Exception{ // setup setConfigurationSharedState(new HashMap() { { @@ -1235,51 +1325,50 @@ public void testHandleTrackPropositions_validPropositionInteractionsForTap() thr final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); // test - extension.handleTrackPropositions(testEvent); + extension.handleOptimizeRequestContent(testEvent); // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); + final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.edge".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), dispatchedEvent.getSource()); + Assert.assertEquals("com.adobe.eventType.edge", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", dispatchedEvent.getSource()); final Map eventData = dispatchedEvent.getEventData(); - assertNotNull(eventData); + Assert.assertNotNull(eventData); final Map propositionInteractionsXdm = (Map)eventData.get("xdm"); - assertNotNull(propositionInteractionsXdm); - assertEquals("decisioning.propositionInteract", propositionInteractionsXdm.get("eventType")); + Assert.assertNotNull(propositionInteractionsXdm); + Assert.assertEquals("decisioning.propositionInteract", propositionInteractionsXdm.get("eventType")); final Map experience = (Map)propositionInteractionsXdm.get("_experience"); - assertNotNull(experience); + Assert.assertNotNull(experience); final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); + Assert.assertNotNull(decisioning); final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions"); - assertNotNull(propositionInteractionDetailsList); - assertEquals(1, propositionInteractionDetailsList.size()); + Assert.assertNotNull(propositionInteractionDetailsList); + Assert.assertEquals(1, propositionInteractionDetailsList.size()); final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); - assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id")); - assertEquals("myMbox", propositionInteractionDetailsMap.get("scope")); + Assert.assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id")); + Assert.assertEquals("myMbox", propositionInteractionDetailsMap.get("scope")); final Map scopeDetails = (Map)propositionInteractionDetailsMap.get("scopeDetails"); - assertNotNull(scopeDetails); - assertEquals(4, scopeDetails.size()); - assertEquals("TGT", scopeDetails.get("decisionProvider")); + Assert.assertNotNull(scopeDetails); + Assert.assertEquals(4, scopeDetails.size()); + Assert.assertEquals("TGT", scopeDetails.get("decisionProvider")); final Map sdActivity = (Map)scopeDetails.get("activity"); - assertEquals("125589", sdActivity.get("id")); + Assert.assertEquals("125589", sdActivity.get("id")); final Map sdExperience = (Map)scopeDetails.get("experience"); - assertEquals("0", sdExperience.get("id")); + Assert.assertEquals("0", sdExperience.get("id")); final List> sdStrategies = (List>)scopeDetails.get("strategies"); - assertNotNull(sdStrategies); - assertEquals(1, sdStrategies.size()); - assertEquals("0", sdStrategies.get(0).get("algorithmID")); - assertEquals("0", sdStrategies.get(0).get("trafficType")); + Assert.assertNotNull(sdStrategies); + Assert.assertEquals(1, sdStrategies.size()); + Assert.assertEquals("0", sdStrategies.get(0).get("algorithmID")); + Assert.assertEquals("0", sdStrategies.get(0).get("trafficType")); final List> items = (List>)propositionInteractionDetailsMap.get("items"); - assertNotNull(items); - assertEquals(1, items.size()); - assertEquals("246315", items.get(0).get("id")); + Assert.assertNotNull(items); + Assert.assertEquals(1, items.size()); + Assert.assertEquals("246315", items.get(0).get("id")); } @Test - public void testHandleTrackPropositions_validPropositionInteractionsWithDatasetIdInConfig() throws Exception { + public void testHandleOptimizeRequestContent_HandleTrackPropositions_validPropositionInteractionsWithDatasetIdInConfig() throws Exception{ // setup setConfigurationSharedState(new HashMap() { { @@ -1296,129 +1385,128 @@ public void testHandleTrackPropositions_validPropositionInteractionsWithDatasetI final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); // test - extension.handleTrackPropositions(testEvent); + extension.handleOptimizeRequestContent(testEvent); // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); + Mockito.verify(mockExtensionApi, Mockito.times(1)).dispatch(eventCaptor.capture()); + final Event dispatchedEvent = eventCaptor.getValue(); - assertEquals("com.adobe.eventType.edge".toLowerCase(), dispatchedEvent.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), dispatchedEvent.getSource()); + Assert.assertEquals("com.adobe.eventType.edge", dispatchedEvent.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", dispatchedEvent.getSource()); final Map eventData = dispatchedEvent.getEventData(); - assertNotNull(eventData); + Assert.assertNotNull(eventData); final String datasetId = (String)eventData.get("datasetId"); - assertEquals("111111111111111111111111", datasetId); + Assert.assertEquals("111111111111111111111111", datasetId); final Map propositionInteractionsXdm = (Map)eventData.get("xdm"); - assertNotNull(propositionInteractionsXdm); - assertEquals("decisioning.propositionInteract", propositionInteractionsXdm.get("eventType")); + Assert.assertNotNull(propositionInteractionsXdm); + Assert.assertEquals("decisioning.propositionInteract", propositionInteractionsXdm.get("eventType")); final Map experience = (Map)propositionInteractionsXdm.get("_experience"); - assertNotNull(experience); + Assert.assertNotNull(experience); final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); + Assert.assertNotNull(decisioning); final List> propositionInteractionDetailsList = (List>)decisioning.get("propositions"); - assertNotNull(propositionInteractionDetailsList); - assertEquals(1, propositionInteractionDetailsList.size()); + Assert.assertNotNull(propositionInteractionDetailsList); + Assert.assertEquals(1, propositionInteractionDetailsList.size()); final Map propositionInteractionDetailsMap = propositionInteractionDetailsList.get(0); - assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id")); - assertEquals("myMbox", propositionInteractionDetailsMap.get("scope")); + Assert.assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", propositionInteractionDetailsMap.get("id")); + Assert.assertEquals("myMbox", propositionInteractionDetailsMap.get("scope")); final Map scopeDetails = (Map)propositionInteractionDetailsMap.get("scopeDetails"); - assertNotNull(scopeDetails); - assertEquals(4, scopeDetails.size()); - assertEquals("TGT", scopeDetails.get("decisionProvider")); + Assert.assertNotNull(scopeDetails); + Assert.assertEquals(4, scopeDetails.size()); + Assert.assertEquals("TGT", scopeDetails.get("decisionProvider")); final Map sdActivity = (Map)scopeDetails.get("activity"); - assertEquals("125589", sdActivity.get("id")); + Assert.assertEquals("125589", sdActivity.get("id")); final Map sdExperience = (Map)scopeDetails.get("experience"); - assertEquals("0", sdExperience.get("id")); + Assert.assertEquals("0", sdExperience.get("id")); final List> sdStrategies = (List>)scopeDetails.get("strategies"); - assertNotNull(sdStrategies); - assertEquals(1, sdStrategies.size()); - assertEquals("0", sdStrategies.get(0).get("algorithmID")); - assertEquals("0", sdStrategies.get(0).get("trafficType")); + Assert.assertNotNull(sdStrategies); + Assert.assertEquals(1, sdStrategies.size()); + Assert.assertEquals("0", sdStrategies.get(0).get("algorithmID")); + Assert.assertEquals("0", sdStrategies.get(0).get("trafficType")); final List> items = (List>)propositionInteractionDetailsMap.get("items"); - assertNotNull(items); - assertEquals(1, items.size()); - assertEquals("246315", items.get(0).get("id")); + Assert.assertNotNull(items); + Assert.assertEquals(1, items.size()); + Assert.assertEquals("246315", items.get(0).get("id")); } @Test - public void testHandleTrackPropositions_configurationNotAvailable() throws Exception { - // setup - final Map optimizeTrackRequestData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_OPTIMIZE_TRACK_REQUEST_VALID_DISPLAY.json"), HashMap.class); - final Event testEvent = new Event.Builder("Optimize Track Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(optimizeTrackRequestData) - .build(); + public void testHandleOptimizeRequestContent_HandleTrackPropositions_configurationNotAvailable() throws Exception{ + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + final Map optimizeTrackRequestData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_OPTIMIZE_TRACK_REQUEST_VALID_DISPLAY.json"), HashMap.class); + final Event testEvent = new Event.Builder("Optimize Track Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(optimizeTrackRequestData) + .build(); - // test - extension.handleTrackPropositions(testEvent); + // test + extension.handleOptimizeRequestContent(testEvent); - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); + // verify + Mockito.verify(mockExtensionApi, Mockito.times(0)).dispatch(ArgumentMatchers.any()); + + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.any())); + } } @Test - public void testHandleTrackPropositions_missingPropositionInteractions() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - final Map optimizeTrackRequestData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_OPTIMIZE_TRACK_REQUEST_MISSING_PROPOSITION_INTERACTIONS.json"), HashMap.class); - final Event testEvent = new Event.Builder("Optimize Track Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(optimizeTrackRequestData) - .build(); - - // test - extension.handleTrackPropositions(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); + public void testHandleOptimizeRequestContent_HandleTrackPropositions_missingPropositionInteractions() throws Exception{ + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); + + final Map optimizeTrackRequestData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_OPTIMIZE_TRACK_REQUEST_MISSING_PROPOSITION_INTERACTIONS.json"), HashMap.class); + final Event testEvent = new Event.Builder("Optimize Track Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(optimizeTrackRequestData) + .build(); + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(0)).dispatch(ArgumentMatchers.any()); + + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.any())); + } } @Test - public void testHandleTrackPropositions_emptyPropositionInteractions() throws Exception { - // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - - final Map optimizeTrackRequestData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_OPTIMIZE_TRACK_REQUEST_EMPTY_PROPOSITION_INTERACTIONS.json"), HashMap.class); - final Event testEvent = new Event.Builder("Optimize Track Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") - .setEventData(optimizeTrackRequestData) - .build(); - - // test - extension.handleTrackPropositions(testEvent); - - // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); + public void testHandleOptimizeRequestContent_HandleTrackPropositions_emptyPropositionInteractions() throws Exception{ + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + setConfigurationSharedState(new HashMap() { + { + put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); + } + }); + + final Map optimizeTrackRequestData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/EVENT_DATA_OPTIMIZE_TRACK_REQUEST_EMPTY_PROPOSITION_INTERACTIONS.json"), HashMap.class); + final Event testEvent = new Event.Builder("Optimize Track Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestContent") + .setEventData(optimizeTrackRequestData) + .build(); + + // test + extension.handleOptimizeRequestContent(testEvent); + + // verify + Mockito.verify(mockExtensionApi, Mockito.times(0)).dispatch(ArgumentMatchers.any()); + + logMockedStatic.verify(() -> Log.debug(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.any())); + } } @Test - public void testHandleClearPropositions() throws Exception { + public void testHandleClearPropositions() throws Exception{ // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - final Map testPropositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); final Proposition testProposition = Proposition.fromEventData(testPropositionData); - assertNotNull(testProposition); + Assert.assertNotNull(testProposition); final Map cachedPropositions = new HashMap<>(); cachedPropositions.put(new DecisionScope(testProposition.getScope()), testProposition); - Whitebox.setInternalState(extension, "cachedPropositions", cachedPropositions); + extension.setCachedPropositions(cachedPropositions); final Event testEvent = new Event.Builder("Optimize Clear Propositions Request", "com.adobe.eventType.optimize", "com.adobe.eventSource.requestReset") .build(); @@ -1427,26 +1515,19 @@ public void testHandleClearPropositions() throws Exception { extension.handleClearPropositions(testEvent); // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - final Map actualCachedPropositions = Whitebox.getInternalState(extension, "cachedPropositions"); - assertTrue(actualCachedPropositions.isEmpty()); + final Map actualCachedPropositions = extension.getCachedPropositions(); + Assert.assertTrue(actualCachedPropositions.isEmpty()); } @Test - public void testHandleClearPropositions_coreResetIdentities() throws Exception { + public void testHandleClearPropositions_coreResetIdentities() throws Exception{ // setup - setConfigurationSharedState(new HashMap() { - { - put("edge.configId", "ffffffff-ffff-ffff-ffff-ffffffffffff"); - } - }); - final Map testPropositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); final Proposition testProposition = Proposition.fromEventData(testPropositionData); - assertNotNull(testProposition); + Assert.assertNotNull(testProposition); final Map cachedPropositions = new HashMap<>(); cachedPropositions.put(new DecisionScope(testProposition.getScope()), testProposition); - Whitebox.setInternalState(extension, "cachedPropositions", cachedPropositions); + extension.setCachedPropositions(cachedPropositions); final Event testEvent = new Event.Builder("Reset Identities Request", "com.adobe.eventType.generic.identity", "com.adobe.eventSource.requestReset") .build(); @@ -1455,15 +1536,19 @@ public void testHandleClearPropositions_coreResetIdentities() throws Exception { extension.handleClearPropositions(testEvent); // verify - testExecutor.awaitTermination(1, TimeUnit.SECONDS); - final Map actualCachedPropositions = Whitebox.getInternalState(extension, "cachedPropositions"); - assertTrue(actualCachedPropositions.isEmpty()); + final Map actualCachedPropositions = extension.getCachedPropositions(); + Assert.assertTrue(actualCachedPropositions.isEmpty()); } + // Helper methods private void setConfigurationSharedState(final Map data) { - when(mockExtensionApi.getSharedEventState(eq("com.adobe.module.configuration"), any(Event.class), any(ExtensionErrorCallback.class))) - .thenReturn(data); + Mockito.when(mockExtensionApi.getSharedState( + ArgumentMatchers.eq(OptimizeConstants.Configuration.EXTENSION_NAME), + ArgumentMatchers.any(), + ArgumentMatchers.eq(false), + ArgumentMatchers.eq(SharedStateResolution.ANY) + )).thenReturn(new SharedStateResult(SharedStateStatus.SET, data)); } } diff --git a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OptimizeTests.java b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OptimizeTests.java index 1fab063b..1c4fcf5a 100644 --- a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OptimizeTests.java +++ b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OptimizeTests.java @@ -19,61 +19,32 @@ import com.adobe.marketing.mobile.Event; import com.adobe.marketing.mobile.ExtensionError; import com.adobe.marketing.mobile.ExtensionErrorCallback; -import com.adobe.marketing.mobile.LoggingMode; import com.adobe.marketing.mobile.MobileCore; +import com.adobe.marketing.mobile.services.Log; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.After; +import org.junit.Assert; import org.junit.runner.RunWith; -import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; +import org.mockito.ArgumentMatchers; +import org.mockito.MockedStatic; import org.mockito.Mockito; -import org.mockito.invocation.InvocationOnMock; +import org.mockito.junit.MockitoJUnitRunner; import org.mockito.stubbing.Answer; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({MobileCore.class, Base64.class}) -@SuppressWarnings("unchecked") +@RunWith(MockitoJUnitRunner.Silent.class) +@SuppressWarnings({"rawtypes", "unchecked"}) public class OptimizeTests { private Map responseMap; private AdobeError responseError; - @Before - public void setup() { - PowerMockito.mockStatic(MobileCore.class); - PowerMockito.mockStatic(Base64.class); - Mockito.when(Base64.encodeToString((byte[]) any(), anyInt())).thenAnswer(new Answer() { - @Override - public String answer(InvocationOnMock invocation) { - return java.util.Base64.getEncoder().encodeToString((byte[]) invocation.getArguments()[0]); - } - }); - Mockito.when(Base64.decode(anyString(), anyInt())).thenAnswer(new Answer() { - @Override - public byte[] answer(InvocationOnMock invocation) throws Throwable { - return java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0]); - } - }); - } - @After public void teardown() { responseMap = null; @@ -84,481 +55,557 @@ public void teardown() { public void test_extensionVersion() { // test final String extensionVersion = Optimize.extensionVersion(); - assertEquals("extensionVersion API should return the correct version string.", "1.0.1", + Assert.assertEquals("extensionVersion API should return the correct version string.", "2.0.0", extensionVersion); } @Test public void test_registerExtension() { - // test - Optimize.registerExtension(); - final ArgumentCaptor> callbackCaptor = ArgumentCaptor.forClass(ExtensionErrorCallback.class); - - // The Optimize extension should successfully register with Mobile Core - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.registerExtension(eq(OptimizeExtension.class), callbackCaptor.capture()); - - // verify the callback - ExtensionErrorCallback extensionErrorCallback = callbackCaptor.getValue(); - assertNotNull("The extension error callback should not be null.", extensionErrorCallback); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class)) { + // setup + final ArgumentCaptor extensionClassCaptor = ArgumentCaptor.forClass(Class.class); + final ArgumentCaptor callbackCaptor = ArgumentCaptor.forClass( + ExtensionErrorCallback.class + ); + mobileCoreMockedStatic + .when(() -> MobileCore.registerExtension(extensionClassCaptor.capture(), callbackCaptor.capture())) + .thenReturn(true); + // test + Optimize.registerExtension(); + + // verify: happy + Assert.assertNotNull(callbackCaptor.getValue()); + Assert.assertEquals(OptimizeExtension.class, extensionClassCaptor.getValue()); + // verify: error callback was called + callbackCaptor.getValue().error(null); + } + } - // should be able to invoke the callback - // extensionErrorCallback.error(ExtensionError.UNEXPECTED_ERROR); + @Test + public void test_registerExtension_extensionError() { + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class); + MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // setup + final ArgumentCaptor extensionClassCaptor = ArgumentCaptor.forClass(Class.class); + final ArgumentCaptor callbackCaptor = ArgumentCaptor.forClass( + ExtensionErrorCallback.class + ); + mobileCoreMockedStatic + .when(() -> MobileCore.registerExtension(extensionClassCaptor.capture(), callbackCaptor.capture())) + .thenReturn(true); + // test + Optimize.registerExtension(); + + // verify: happy + Assert.assertNotNull(callbackCaptor.getValue()); + Assert.assertEquals(OptimizeExtension.class, extensionClassCaptor.getValue()); + + callbackCaptor.getValue().error(ExtensionError.UNEXPECTED_ERROR); + logMockedStatic.verify(() -> Log.error(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.any())); + } } @Test public void testUpdatePropositions_validDecisionScope() { - // test - final List scopes = new ArrayList<>(); - scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); - - Optimize.updatePropositions(scopes, null, null); - - //verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); - final Event event = eventCaptor.getValue(); - - assertNotNull(event); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), event.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), event.getSource()); - - final Map eventData = event.getEventData(); - assertEquals("updatepropositions", eventData.get("requesttype")); - assertNull(eventData.get("xdm")); - assertNull(eventData.get("data")); - - final List> scopesList = (List>)eventData.get("decisionscopes"); - assertEquals(1, scopesList.size()); - - final Map scopeData = scopesList.get(0); - assertNotNull(scopeData); - assertEquals(1, scopeData.size()); - assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", scopeData.get("name")); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class); + MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + // setup + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // test + final List scopes = new ArrayList<>(); + scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); + + Optimize.updatePropositions(scopes, null, null); + + //verify + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + mobileCoreMockedStatic.verify(() -> MobileCore.dispatchEvent(eventCaptor.capture())); + final Event event = eventCaptor.getValue(); + + Assert.assertNotNull(event); + Assert.assertEquals("com.adobe.eventType.optimize", event.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", event.getSource()); + + final Map eventData = event.getEventData(); + Assert.assertEquals("updatepropositions", eventData.get("requesttype")); + Assert.assertNull(eventData.get("xdm")); + Assert.assertNull(eventData.get("data")); + + final List> scopesList = (List>) eventData.get("decisionscopes"); + Assert.assertEquals(1, scopesList.size()); + + final Map scopeData = scopesList.get(0); + Assert.assertNotNull(scopeData); + Assert.assertEquals(1, scopeData.size()); + Assert.assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", scopeData.get("name")); + } } @Test public void testUpdatePropositions_validDecisionScopeWithXDMAndData() { - // test - final List scopes = new ArrayList<>(); - scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); - - Optimize.updatePropositions(scopes, - new HashMap() { - { - put("myXdmKey", "myXdmValue"); - } - }, - new HashMap() { - { - put("myKey", "myValue"); - } - }); - - - //verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); - final Event event = eventCaptor.getValue(); - - assertNotNull(event); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), event.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), event.getSource()); - - final Map eventData = event.getEventData(); - assertEquals("updatepropositions", eventData.get("requesttype")); - - Map xdm = (Map) eventData.get("xdm"); - assertNotNull(xdm); - assertEquals(1, xdm.size()); - assertEquals("myXdmValue", xdm.get("myXdmKey")); - - Map data = (Map) eventData.get("data"); - assertNotNull(data); - assertEquals(1, data.size()); - assertEquals("myValue", data.get("myKey")); - - final List> scopesList = (List>)eventData.get("decisionscopes"); - assertEquals(1, scopesList.size()); - - final Map scopeData = scopesList.get(0); - assertNotNull(scopeData); - assertEquals(1, scopeData.size()); - assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", scopeData.get("name")); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class); + MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + // setup + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // test + final List scopes = new ArrayList<>(); + scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); + + Optimize.updatePropositions(scopes, + new HashMap() { + { + put("myXdmKey", "myXdmValue"); + } + }, + new HashMap() { + { + put("myKey", "myValue"); + } + }); + + + //verify + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + mobileCoreMockedStatic.verify(() -> MobileCore.dispatchEvent(eventCaptor.capture())); + final Event event = eventCaptor.getValue(); + + Assert.assertNotNull(event); + Assert.assertEquals("com.adobe.eventType.optimize", event.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", event.getSource()); + + final Map eventData = event.getEventData(); + Assert.assertEquals("updatepropositions", eventData.get("requesttype")); + + Map xdm = (Map) eventData.get("xdm"); + Assert.assertNotNull(xdm); + Assert.assertEquals(1, xdm.size()); + Assert.assertEquals("myXdmValue", xdm.get("myXdmKey")); + + Map data = (Map) eventData.get("data"); + Assert.assertNotNull(data); + Assert.assertEquals(1, data.size()); + Assert.assertEquals("myValue", data.get("myKey")); + + final List> scopesList = (List>) eventData.get("decisionscopes"); + Assert.assertEquals(1, scopesList.size()); + + final Map scopeData = scopesList.get(0); + Assert.assertNotNull(scopeData); + Assert.assertEquals(1, scopeData.size()); + Assert.assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", scopeData.get("name")); + } } @Test public void testUpdatePropositions_multipleValidDecisionScopes() { - // test - final List scopes = new ArrayList<>(); - scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); - scopes.add(new DecisionScope("myMbox")); - - Optimize.updatePropositions(scopes, null, null); - - //verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); - final Event event = eventCaptor.getValue(); - - assertNotNull(event); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), event.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), event.getSource()); - - final Map eventData = event.getEventData(); - assertEquals("updatepropositions", eventData.get("requesttype")); - assertNull(eventData.get("xdm")); - assertNull(eventData.get("data")); - - final List> scopesList = (List>)eventData.get("decisionscopes"); - assertEquals(2, scopesList.size()); - - final Map scopeData = scopesList.get(0); - assertNotNull(scopeData); - assertEquals(1, scopeData.size()); - assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", scopeData.get("name")); - - final Map scopeData2 = scopesList.get(1); - assertNotNull(scopeData2); - assertEquals(1, scopeData2.size()); - assertEquals("myMbox", scopeData2.get("name")); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class); + MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + // setup + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // test + final List scopes = new ArrayList<>(); + scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); + scopes.add(new DecisionScope("myMbox")); + + Optimize.updatePropositions(scopes, null, null); + + //verify + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + mobileCoreMockedStatic.verify(() -> MobileCore.dispatchEvent(eventCaptor.capture())); + final Event event = eventCaptor.getValue(); + + Assert.assertNotNull(event); + Assert.assertEquals("com.adobe.eventType.optimize", event.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", event.getSource()); + + final Map eventData = event.getEventData(); + Assert.assertEquals("updatepropositions", eventData.get("requesttype")); + Assert.assertNull(eventData.get("xdm")); + Assert.assertNull(eventData.get("data")); + + final List> scopesList = (List>) eventData.get("decisionscopes"); + Assert.assertEquals(2, scopesList.size()); + + final Map scopeData = scopesList.get(0); + Assert.assertNotNull(scopeData); + Assert.assertEquals(1, scopeData.size()); + Assert.assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", scopeData.get("name")); + + final Map scopeData2 = scopesList.get(1); + Assert.assertNotNull(scopeData2); + Assert.assertEquals(1, scopeData2.size()); + Assert.assertEquals("myMbox", scopeData2.get("name")); + } } @Test public void testUpdatePropositions_emptyDecisionScopesList() { - // test - Optimize.updatePropositions(new ArrayList(), null, null); + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // test + Optimize.updatePropositions(new ArrayList(), null, null); - //verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); + //verify + logMockedStatic.verify(() -> Log.warning(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())); + } } @Test public void testUpdatePropositions_nullDecisionScopesList() { - // test - Optimize.updatePropositions(null, null, null); + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // test + Optimize.updatePropositions(null, null, null); - //verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); + //verify + logMockedStatic.verify(() -> Log.warning(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())); + } } @Test public void testUpdatePropositions_invalidDecisionScopeInList() { - // test - final List scopes = new ArrayList<>(); - scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoiIiwicGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSJ9")); + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class); + MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); - Optimize.updatePropositions(scopes, null, null); + // test + final List scopes = new ArrayList<>(); + scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoiIiwicGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSJ9")); - //verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(2)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); + Optimize.updatePropositions(scopes, null, null); + + //verify + logMockedStatic.verify(() -> Log.warning(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())); + } } @Test public void testGetPropositions_validDecisionScope() throws Exception { - // test - final List scopes = new ArrayList<>(); - scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); - - Optimize.getPropositions(scopes, new AdobeCallbackWithError>() { - @Override - public void fail(AdobeError adobeError) { - responseError = adobeError; - } - - @Override - public void call(Map propositionsMap) { - responseMap = propositionsMap; - } - }); - - // verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - final ArgumentCaptor> callbackCaptor = ArgumentCaptor.forClass(AdobeCallbackWithError.class); - MobileCore.dispatchEventWithResponseCallback(eventCaptor.capture(), callbackCaptor.capture(), any(ExtensionErrorCallback.class)); - final Event event = eventCaptor.getValue(); - final AdobeCallbackWithError callbackWithError = callbackCaptor.getValue(); - - // verify dispatched event - assertNotNull(event); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), event.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), event.getSource()); - final Map eventData = event.getEventData(); - assertEquals("getpropositions", eventData.get("requesttype")); - - final List> scopesList = (List>)eventData.get("decisionscopes"); - assertEquals(1, scopesList.size()); - - final Map scopeData1 = scopesList.get(0); - assertNotNull(scopeData1); - assertEquals(1, scopeData1.size()); - assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", scopeData1.get("name")); - - // verify callback response - final Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); - final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - - final List> propositionsList = new ArrayList<>(); - propositionsList.add(proposition.toEventData()); - - final Map responseEventData = new HashMap<>(); - responseEventData.put("propositions", propositionsList); - final Event responseEvent = new Event.Builder("Optimize Response", "com.adobe.eventType.optimize", "com.adobe.eventSource.responseContent") - .setEventData(responseEventData).build(); - callbackWithError.call(responseEvent); - - assertNull(responseError); - assertNotNull(responseMap); - assertEquals(1, responseMap.size()); - Proposition actualProposition = responseMap.get(new DecisionScope("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); - assertEquals(proposition, actualProposition); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class); + MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + // setup + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // test + final List scopes = new ArrayList<>(); + scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); + + Optimize.getPropositions(scopes, new AdobeCallbackWithError>() { + @Override + public void fail(AdobeError adobeError) { + responseError = adobeError; + } + + @Override + public void call(Map propositionsMap) { + responseMap = propositionsMap; + } + }); + + // verify + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + final ArgumentCaptor> callbackCaptor = ArgumentCaptor.forClass(AdobeCallbackWithError.class); + mobileCoreMockedStatic.verify(() -> MobileCore.dispatchEventWithResponseCallback(eventCaptor.capture(), ArgumentMatchers.anyLong(), callbackCaptor.capture())); + final Event event = eventCaptor.getValue(); + final AdobeCallbackWithError callbackWithError = callbackCaptor.getValue(); + + // verify dispatched event + Assert.assertNotNull(event); + Assert.assertEquals("com.adobe.eventType.optimize", event.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", event.getSource()); + final Map eventData = event.getEventData(); + Assert.assertEquals("getpropositions", eventData.get("requesttype")); + + final List> scopesList = (List>) eventData.get("decisionscopes"); + Assert.assertEquals(1, scopesList.size()); + + final Map scopeData1 = scopesList.get(0); + Assert.assertNotNull(scopeData1); + Assert.assertEquals(1, scopeData1.size()); + Assert.assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", scopeData1.get("name")); + + // verify callback response + final Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); + final Proposition proposition = Proposition.fromEventData(propositionData); + Assert.assertNotNull(proposition); + + final List> propositionsList = new ArrayList<>(); + propositionsList.add(proposition.toEventData()); + + final Map responseEventData = new HashMap<>(); + responseEventData.put("propositions", propositionsList); + final Event responseEvent = new Event.Builder("Optimize Response", "com.adobe.eventType.optimize", "com.adobe.eventSource.responseContent") + .setEventData(responseEventData).build(); + callbackWithError.call(responseEvent); + + Assert.assertNull(responseError); + Assert.assertNotNull(responseMap); + Assert.assertEquals(1, responseMap.size()); + Proposition actualProposition = responseMap.get(new DecisionScope("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); + Assert.assertEquals(proposition, actualProposition); + } } @Test public void testGetPropositions_multipleValidDecisionScopes() { - // test - final List scopes = new ArrayList<>(); - scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); - scopes.add(new DecisionScope("myMbox")); - - Optimize.getPropositions(scopes, new AdobeCallbackWithError>() { - @Override - public void fail(AdobeError adobeError) { - responseError = adobeError; - } - - @Override - public void call(Map propositionsMap) { - responseMap = propositionsMap; - } - }); - - // verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - MobileCore.dispatchEventWithResponseCallback(eventCaptor.capture(), any(AdobeCallbackWithError.class), any(ExtensionErrorCallback.class)); - final Event event = eventCaptor.getValue(); - assertNotNull(event); - - assertEquals("com.adobe.eventType.optimize".toLowerCase(), event.getType()); - assertEquals("com.adobe.eventSource.requestContent".toLowerCase(), event.getSource()); - final Map eventData = event.getEventData(); - assertEquals("getpropositions", eventData.get("requesttype")); - - final List> scopesList = (List>)eventData.get("decisionscopes"); - assertEquals(2, scopesList.size()); - - final Map scopeData1 = scopesList.get(0); - assertNotNull(scopeData1); - assertEquals(1, scopeData1.size()); - assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", scopeData1.get("name")); - - final Map scopeData2 = scopesList.get(1); - assertNotNull(scopeData2); - assertEquals(1, scopeData2.size()); - assertEquals("myMbox", scopeData2.get("name")); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class); + MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + // setup + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // test + final List scopes = new ArrayList<>(); + scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); + scopes.add(new DecisionScope("myMbox")); + + Optimize.getPropositions(scopes, new AdobeCallbackWithError>() { + @Override + public void fail(AdobeError adobeError) { + responseError = adobeError; + } + + @Override + public void call(Map propositionsMap) { + responseMap = propositionsMap; + } + }); + + // verify + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + mobileCoreMockedStatic.verify(() -> MobileCore.dispatchEventWithResponseCallback(eventCaptor.capture(), ArgumentMatchers.anyLong(), ArgumentMatchers.any(AdobeCallbackWithError.class))); + final Event event = eventCaptor.getValue(); + Assert.assertNotNull(event); + + Assert.assertEquals("com.adobe.eventType.optimize", event.getType()); + Assert.assertEquals("com.adobe.eventSource.requestContent", event.getSource()); + final Map eventData = event.getEventData(); + Assert.assertEquals("getpropositions", eventData.get("requesttype")); + + final List> scopesList = (List>) eventData.get("decisionscopes"); + Assert.assertEquals(2, scopesList.size()); + + final Map scopeData1 = scopesList.get(0); + Assert.assertNotNull(scopeData1); + Assert.assertEquals(1, scopeData1.size()); + Assert.assertEquals("eyJhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", scopeData1.get("name")); + + final Map scopeData2 = scopesList.get(1); + Assert.assertNotNull(scopeData2); + Assert.assertEquals(1, scopeData2.size()); + Assert.assertEquals("myMbox", scopeData2.get("name")); + } } @Test public void testGetPropositions_invalidDecisionScopeInList() { - // test - final List scopes = new ArrayList<>(); - scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoiIiwicGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSJ9")); - - Optimize.getPropositions(scopes, new AdobeCallbackWithError>() { - @Override - public void fail(AdobeError adobeError) { - responseError = adobeError; - } - - @Override - public void call(Map propositionsMap) { - responseMap = propositionsMap; - } - }); - - // verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(2)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); - assertEquals(AdobeError.UNEXPECTED_ERROR, responseError); + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class); + MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + + // test + final List scopes = new ArrayList<>(); + scopes.add(new DecisionScope("eyJhY3Rpdml0eUlkIjoiIiwicGxhY2VtZW50SWQiOiJ4Y29yZTpvZmZlci1wbGFjZW1lbnQ6MTExMTExMTExMTExMTExMSJ9")); + + Optimize.getPropositions(scopes, new AdobeCallbackWithError>() { + @Override + public void fail(AdobeError adobeError) { + responseError = adobeError; + } + + @Override + public void call(Map propositionsMap) { + responseMap = propositionsMap; + } + }); + + // verify + logMockedStatic.verify(() -> Log.warning(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())); + Assert.assertEquals(AdobeError.UNEXPECTED_ERROR, responseError); + } } @Test public void testGetPropositions_emptyDecisionScopesList() { - // test - Optimize.getPropositions(new ArrayList(), new AdobeCallbackWithError>() { - @Override - public void fail(AdobeError adobeError) { - responseError = adobeError; - } - - @Override - public void call(Map propositionsMap) { - responseMap = propositionsMap; - } - }); - - // verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); - assertEquals(AdobeError.UNEXPECTED_ERROR, responseError); + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // test + Optimize.getPropositions(new ArrayList(), new AdobeCallbackWithError>() { + @Override + public void fail(AdobeError adobeError) { + responseError = adobeError; + } + + @Override + public void call(Map propositionsMap) { + responseMap = propositionsMap; + } + }); + + // verify + logMockedStatic.verify(() -> Log.warning(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())); + Assert.assertEquals(AdobeError.UNEXPECTED_ERROR, responseError); + } } @Test public void testGetPropositions_nullDecisionScopesList() { - // test - Optimize.getPropositions(null, new AdobeCallbackWithError>() { - @Override - public void fail(AdobeError adobeError) { - responseError = adobeError; - } - - @Override - public void call(Map propositionsMap) { - responseMap = propositionsMap; - } - }); - - // verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - MobileCore.log(any(LoggingMode.class), anyString(), anyString()); - assertEquals(AdobeError.UNEXPECTED_ERROR, responseError); + try (MockedStatic logMockedStatic = Mockito.mockStatic(Log.class)) { + // test + Optimize.getPropositions(null, new AdobeCallbackWithError>() { + @Override + public void fail(AdobeError adobeError) { + responseError = adobeError; + } + + @Override + public void call(Map propositionsMap) { + responseMap = propositionsMap; + } + }); + + // verify + logMockedStatic.verify(() -> Log.warning(ArgumentMatchers.anyString(), ArgumentMatchers.anyString(), ArgumentMatchers.anyString())); + Assert.assertEquals(AdobeError.UNEXPECTED_ERROR, responseError); + } } @Test public void testOnPropositionsUpdate_validProposition() throws Exception { - // test - Optimize.onPropositionsUpdate(new AdobeCallbackWithError>() { - @Override - public void fail(final AdobeError adobeError) { - responseError = adobeError; - } - - @Override - public void call(final Map propositionsMap) { - responseMap = propositionsMap; - } - }); - - //verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - final ArgumentCaptor> callbackCaptor = ArgumentCaptor.forClass(AdobeCallbackWithError.class); - MobileCore.registerEventListener(eq("com.adobe.eventType.optimize"), eq("com.adobe.eventSource.notification"), - callbackCaptor.capture()); - final AdobeCallbackWithError callbackWithError = callbackCaptor.getValue(); - - final Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); - final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); - - final List> propositionsList = new ArrayList<>(); - propositionsList.add(proposition.toEventData()); - - final Map eventData = new HashMap<>(); - eventData.put("propositions", propositionsList); - final Event event = new Event.Builder("Optimize Notification", "com.adobe.eventType.optimize", "com.adobe.eventSource.notification") - .setEventData(eventData).build(); - callbackWithError.call(event); - - assertNull(responseError); - assertNotNull(responseMap); - assertEquals(1, responseMap.size()); - Proposition actualProposition = responseMap.get(new DecisionScope("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); - assertEquals(proposition, actualProposition); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class)) { + // test + Optimize.onPropositionsUpdate(new AdobeCallbackWithError>() { + @Override + public void fail(final AdobeError adobeError) { + responseError = adobeError; + } + + @Override + public void call(final Map propositionsMap) { + responseMap = propositionsMap; + } + }); + + //verify + final ArgumentCaptor> callbackCaptor = ArgumentCaptor.forClass(AdobeCallbackWithError.class); + mobileCoreMockedStatic.verify(() -> MobileCore.registerEventListener(ArgumentMatchers.eq("com.adobe.eventType.optimize"), ArgumentMatchers.eq("com.adobe.eventSource.notification"), + callbackCaptor.capture())); + final AdobeCallbackWithError callbackWithError = callbackCaptor.getValue(); + + final Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); + final Proposition proposition = Proposition.fromEventData(propositionData); + Assert.assertNotNull(proposition); + + final List> propositionsList = new ArrayList<>(); + propositionsList.add(proposition.toEventData()); + + final Map eventData = new HashMap<>(); + eventData.put("propositions", propositionsList); + final Event event = new Event.Builder("Optimize Notification", "com.adobe.eventType.optimize", "com.adobe.eventSource.notification") + .setEventData(eventData).build(); + callbackWithError.call(event); + + Assert.assertNull(responseError); + Assert.assertNotNull(responseMap); + Assert.assertEquals(1, responseMap.size()); + Proposition actualProposition = responseMap.get(new DecisionScope("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==")); + Assert.assertEquals(proposition, actualProposition); + } } @Test public void testOnPropositionsUpdate_emptyPropositionData() { - // test - Optimize.onPropositionsUpdate(new AdobeCallbackWithError>() { - @Override - public void fail(final AdobeError adobeError) { - responseError = adobeError; - } - - @Override - public void call(final Map propositionsMap) { - responseMap = propositionsMap; - } - }); - - //verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - final ArgumentCaptor> callbackCaptor = ArgumentCaptor.forClass(AdobeCallbackWithError.class); - MobileCore.registerEventListener(eq("com.adobe.eventType.optimize"), eq("com.adobe.eventSource.notification"), - callbackCaptor.capture()); - final AdobeCallbackWithError callbackWithError = callbackCaptor.getValue(); - - final List> propositionsList = new ArrayList<>(); - propositionsList.add(new HashMap()); - - final Map eventData = new HashMap<>(); - eventData.put("propositions", propositionsList); - final Event event = new Event.Builder("Optimize Notification", "com.adobe.eventType.optimize", "com.adobe.eventSource.notification") - .setEventData(eventData).build(); - callbackWithError.call(event); - - assertNull(responseError); - assertNull(responseMap); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class)) { + // test + Optimize.onPropositionsUpdate(new AdobeCallbackWithError>() { + @Override + public void fail(final AdobeError adobeError) { + responseError = adobeError; + } + + @Override + public void call(final Map propositionsMap) { + responseMap = propositionsMap; + } + }); + + //verify + final ArgumentCaptor> callbackCaptor = ArgumentCaptor.forClass(AdobeCallbackWithError.class); + mobileCoreMockedStatic.verify(() -> MobileCore.registerEventListener(ArgumentMatchers.eq("com.adobe.eventType.optimize"), ArgumentMatchers.eq("com.adobe.eventSource.notification"), + callbackCaptor.capture())); + final AdobeCallbackWithError callbackWithError = callbackCaptor.getValue(); + + final List> propositionsList = new ArrayList<>(); + propositionsList.add(new HashMap()); + + final Map eventData = new HashMap<>(); + eventData.put("propositions", propositionsList); + final Event event = new Event.Builder("Optimize Notification", "com.adobe.eventType.optimize", "com.adobe.eventSource.notification") + .setEventData(eventData).build(); + callbackWithError.call(event); + + Assert.assertNull(responseError); + Assert.assertNull(responseMap); + } } @Test public void testOnPropositionsUpdate_nullPropositionData() { - // test - Optimize.onPropositionsUpdate(new AdobeCallbackWithError>() { - @Override - public void fail(final AdobeError adobeError) { - responseError = adobeError; - } - - @Override - public void call(final Map propositionsMap) { - responseMap = propositionsMap; - } - }); - - //verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - final ArgumentCaptor> callbackCaptor = ArgumentCaptor.forClass(AdobeCallbackWithError.class); - MobileCore.registerEventListener(eq("com.adobe.eventType.optimize"), eq("com.adobe.eventSource.notification"), - callbackCaptor.capture()); - final AdobeCallbackWithError callbackWithError = callbackCaptor.getValue(); - - final List> propositionsList = new ArrayList<>(); - propositionsList.add(null); - - final Map eventData = new HashMap<>(); - eventData.put("propositions", propositionsList); - final Event event = new Event.Builder("Optimize Notification", "com.adobe.eventType.optimize", "com.adobe.eventSource.notification") - .setEventData(eventData).build(); - callbackWithError.call(event); - - assertNull(responseError); - assertNull(responseMap); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class)) { + // test + Optimize.onPropositionsUpdate(new AdobeCallbackWithError>() { + @Override + public void fail(final AdobeError adobeError) { + responseError = adobeError; + } + + @Override + public void call(final Map propositionsMap) { + responseMap = propositionsMap; + } + }); + + //verify + final ArgumentCaptor> callbackCaptor = ArgumentCaptor.forClass(AdobeCallbackWithError.class); + mobileCoreMockedStatic.verify(() -> MobileCore.registerEventListener(ArgumentMatchers.eq("com.adobe.eventType.optimize"), ArgumentMatchers.eq("com.adobe.eventSource.notification"), + callbackCaptor.capture())); + final AdobeCallbackWithError callbackWithError = callbackCaptor.getValue(); + + final List> propositionsList = new ArrayList<>(); + propositionsList.add(null); + + final Map eventData = new HashMap<>(); + eventData.put("propositions", propositionsList); + final Event event = new Event.Builder("Optimize Notification", "com.adobe.eventType.optimize", "com.adobe.eventSource.notification") + .setEventData(eventData).build(); + callbackWithError.call(event); + + Assert.assertNull(responseError); + Assert.assertNull(responseMap); + } } @Test public void test_clearCachedPropositions() { - // test - Optimize.clearCachedPropositions(); - - //verify - PowerMockito.verifyStatic(MobileCore.class, Mockito.times(1)); - final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); - MobileCore.dispatchEvent(eventCaptor.capture(), any(ExtensionErrorCallback.class)); - final Event event = eventCaptor.getValue(); - - assertNotNull(event); - assertEquals("com.adobe.eventType.optimize".toLowerCase(), event.getType()); - assertEquals("com.adobe.eventSource.requestReset".toLowerCase(), event.getSource()); - assertTrue(event.getEventData().isEmpty()); + try (MockedStatic mobileCoreMockedStatic = Mockito.mockStatic(MobileCore.class)) { + // test + Optimize.clearCachedPropositions(); + + //verify + final ArgumentCaptor eventCaptor = ArgumentCaptor.forClass(Event.class); + mobileCoreMockedStatic.verify(() -> MobileCore.dispatchEvent(eventCaptor.capture())); + final Event event = eventCaptor.getValue(); + + Assert.assertNotNull(event); + Assert.assertEquals("com.adobe.eventType.optimize", event.getType()); + Assert.assertEquals("com.adobe.eventSource.requestReset", event.getSource()); + Assert.assertNull(event.getEventData()); + } } } diff --git a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OptimizeUtilsTest.java b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OptimizeUtilsTest.java index 5cd9ef61..5ea62c58 100644 --- a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OptimizeUtilsTest.java +++ b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/OptimizeUtilsTest.java @@ -14,59 +14,36 @@ import android.util.Base64; -import org.junit.Before; +import com.adobe.marketing.mobile.AdobeError; + +import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentMatchers; +import org.mockito.MockedStatic; import org.mockito.Mockito; -import org.mockito.invocation.InvocationOnMock; +import org.mockito.junit.MockitoJUnitRunner; import org.mockito.stubbing.Answer; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.ArgumentMatchers.anyString; - -@RunWith(PowerMockRunner.class) -@PrepareForTest(Base64.class) +@RunWith(MockitoJUnitRunner.Silent.class) +@SuppressWarnings({"rawtypes"}) public class OptimizeUtilsTest { - @Before - public void setup() { - PowerMockito.mockStatic(Base64.class); - Mockito.when(Base64.encodeToString((byte[]) any(), anyInt())).thenAnswer(new Answer() { - @Override - public String answer(InvocationOnMock invocation) { - return java.util.Base64.getEncoder().encodeToString((byte[]) invocation.getArguments()[0]); - } - }); - Mockito.when(Base64.decode(anyString(), anyInt())).thenAnswer(new Answer() { - @Override - public byte[] answer(InvocationOnMock invocation) throws Throwable { - return java.util.Base64.getDecoder().decode((String)invocation.getArguments()[0]); - } - }); - } @Test public void testIsNullOrEmpty_nullMap() { // test - assertTrue(OptimizeUtils.isNullOrEmpty((Map)null)); + Assert.assertTrue(OptimizeUtils.isNullOrEmpty((Map)null)); } @Test public void testIsNullOrEmpty_emptyMap() { // test - assertTrue(OptimizeUtils.isNullOrEmpty(new HashMap<>())); + Assert.assertTrue(OptimizeUtils.isNullOrEmpty(new HashMap<>())); } @Test @@ -75,19 +52,19 @@ public void testIsNullOrEmpty_nonEmptyMap() { final Map map = new HashMap<>(); map.put("key", "value"); - assertFalse(OptimizeUtils.isNullOrEmpty(map)); + Assert.assertFalse(OptimizeUtils.isNullOrEmpty(map)); } @Test public void testIsNullOrEmpty_nullList() { // test - assertTrue(OptimizeUtils.isNullOrEmpty((List)null)); + Assert.assertTrue(OptimizeUtils.isNullOrEmpty((List)null)); } @Test public void testIsNullOrEmpty_emptyList() { // test - assertTrue(OptimizeUtils.isNullOrEmpty(new ArrayList<>())); + Assert.assertTrue(OptimizeUtils.isNullOrEmpty(new ArrayList<>())); } @Test @@ -96,35 +73,39 @@ public void testIsNullOrEmpty_nonEmptyList() { final List list = new ArrayList<>(); list.add("someString"); - assertFalse(OptimizeUtils.isNullOrEmpty(list)); + Assert.assertFalse(OptimizeUtils.isNullOrEmpty(list)); } @Test public void testIsNullOrEmpty_nullString() { // test final String input = null; - assertTrue(OptimizeUtils.isNullOrEmpty(input)); + Assert.assertTrue(OptimizeUtils.isNullOrEmpty(input)); } @Test public void testIsNullOrEmpty_emptyString() { // test final String input = ""; - assertTrue(OptimizeUtils.isNullOrEmpty(input)); + Assert.assertTrue(OptimizeUtils.isNullOrEmpty(input)); } @Test public void testIsNullOrEmpty_nonEmptyString() { // test final String input = "This is a test string!"; - assertFalse(OptimizeUtils.isNullOrEmpty(input)); + Assert.assertFalse(OptimizeUtils.isNullOrEmpty(input)); } @Test public void testBase64encode_validString() { - // test - final String input = "This is a test string!"; - assertEquals("VGhpcyBpcyBhIHRlc3Qgc3RyaW5nIQ==", OptimizeUtils.base64Encode(input)); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.encodeToString(ArgumentMatchers.any(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getEncoder().encodeToString((byte[]) invocation.getArguments()[0])); + // test + final String input = "This is a test string!"; + Assert.assertEquals("VGhpcyBpcyBhIHRlc3Qgc3RyaW5nIQ==", OptimizeUtils.base64Encode(input)); + } } @@ -132,30 +113,51 @@ public void testBase64encode_validString() { public void testBase64encode_emptyString() { // test final String input = ""; - assertEquals("", OptimizeUtils.base64Encode(input)); + Assert.assertEquals("", OptimizeUtils.base64Encode(input)); } @Test public void testBase64decode_validString() { - // test - final String input = "VGhpcyBpcyBhIHRlc3Qgc3RyaW5nIQ=="; - assertEquals("This is a test string!", OptimizeUtils.base64Decode(input)); - + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final String input = "VGhpcyBpcyBhIHRlc3Qgc3RyaW5nIQ=="; + Assert.assertEquals("This is a test string!", OptimizeUtils.base64Decode(input)); + } } @Test public void testBase64decode_emptyString() { // test final String input = ""; - assertEquals("", OptimizeUtils.base64Decode(input)); + Assert.assertEquals("", OptimizeUtils.base64Decode(input)); } @Test public void testBase64decode_invalidString() { - // test - final String input = "VGhp="; - assertNull(OptimizeUtils.base64Decode(input)); + try (MockedStatic base64MockedStatic = Mockito.mockStatic(Base64.class)) { + base64MockedStatic.when(() -> Base64.decode(ArgumentMatchers.anyString(), ArgumentMatchers.anyInt())) + .thenAnswer((Answer) invocation -> java.util.Base64.getDecoder().decode((String) invocation.getArguments()[0])); + // test + final String input = "VGhp="; + Assert.assertNull(OptimizeUtils.base64Decode(input)); + } + } + + @Test + public void testConvertToAdobeError_knownErrorCode() { + Assert.assertEquals(AdobeError.UNEXPECTED_ERROR, OptimizeUtils.convertToAdobeError(0)); + Assert.assertEquals(AdobeError.CALLBACK_TIMEOUT, OptimizeUtils.convertToAdobeError(1)); + Assert.assertEquals(AdobeError.CALLBACK_NULL, OptimizeUtils.convertToAdobeError(2)); + Assert.assertEquals(AdobeError.EXTENSION_NOT_INITIALIZED, OptimizeUtils.convertToAdobeError(11)); + } + + + @Test + public void testConvertToAdobeError_unknownErrorCode() { + Assert.assertEquals(AdobeError.UNEXPECTED_ERROR, OptimizeUtils.convertToAdobeError(123)); } } diff --git a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/PropositionTests.java b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/PropositionTests.java index cc656ba8..97cfb3d6 100644 --- a/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/PropositionTests.java +++ b/code/optimize/src/test/java/com/adobe/marketing/mobile/optimize/PropositionTests.java @@ -14,131 +14,127 @@ import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.Assert; import org.junit.Test; import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -@SuppressWarnings("unchecked") +@SuppressWarnings({"unchecked"}) public class PropositionTests { @Test public void testFromEventData_validProposition() throws Exception { Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); + Assert.assertNotNull(proposition); - assertEquals("de03ac85-802a-4331-a905-a57053164d35", proposition.getId()); - assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", proposition.getScope()); - assertTrue(proposition.getScopeDetails().isEmpty()); - assertEquals(1, proposition.getOffers().size()); + Assert.assertEquals("de03ac85-802a-4331-a905-a57053164d35", proposition.getId()); + Assert.assertEquals("eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==", proposition.getScope()); + Assert.assertTrue(proposition.getScopeDetails().isEmpty()); + Assert.assertEquals(1, proposition.getOffers().size()); Offer offer = proposition.getOffers().get(0); - assertEquals("xcore:personalized-offer:1111111111111111", offer.getId()); - assertEquals("10", offer.getEtag()); - assertEquals("https://ns.adobe.com/experience/offer-management/content-component-html", offer.getSchema()); - assertEquals(OfferType.HTML, offer.getType()); - assertEquals("

    This is a HTML content

    ", offer.getContent()); - assertNull(offer.getLanguage()); - assertNull(offer.getCharacteristics()); + Assert.assertEquals("xcore:personalized-offer:1111111111111111", offer.getId()); + Assert.assertEquals("10", offer.getEtag()); + Assert.assertEquals("https://ns.adobe.com/experience/offer-management/content-component-html", offer.getSchema()); + Assert.assertEquals(OfferType.HTML, offer.getType()); + Assert.assertEquals("

    This is a HTML content

    ", offer.getContent()); + Assert.assertNull(offer.getLanguage()); + Assert.assertNull(offer.getCharacteristics()); } @Test public void testFromEventData_validPropositionFromTarget() throws Exception { Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID_TARGET.json"), HashMap.class); final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); + Assert.assertNotNull(proposition); - assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", proposition.getId()); - assertEquals("myMbox", proposition.getScope()); + Assert.assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", proposition.getId()); + Assert.assertEquals("myMbox", proposition.getScope()); Map scopeDetails = proposition.getScopeDetails(); - assertNotNull(scopeDetails); - assertEquals(4, scopeDetails.size()); - assertEquals("TGT", scopeDetails.get("decisionProvider")); + Assert.assertNotNull(scopeDetails); + Assert.assertEquals(4, scopeDetails.size()); + Assert.assertEquals("TGT", scopeDetails.get("decisionProvider")); Map activity = (Map)scopeDetails.get("activity"); - assertNotNull(activity); - assertEquals(1, activity.size()); - assertEquals("125589", activity.get("id")); + Assert.assertNotNull(activity); + Assert.assertEquals(1, activity.size()); + Assert.assertEquals("125589", activity.get("id")); Map experience = (Map)scopeDetails.get("experience"); - assertNotNull(experience); - assertEquals(1, experience.size()); - assertEquals("0", experience.get("id")); + Assert.assertNotNull(experience); + Assert.assertEquals(1, experience.size()); + Assert.assertEquals("0", experience.get("id")); List> strategies = (List>)scopeDetails.get("strategies"); - assertNotNull(strategies); - assertEquals(1, strategies.size()); + Assert.assertNotNull(strategies); + Assert.assertEquals(1, strategies.size()); Map strategy = strategies.get(0); - assertNotNull(strategy); - assertEquals(2, strategy.size()); - assertEquals("0", strategy.get("algorithmID")); - assertEquals("0", strategy.get("trafficType")); + Assert.assertNotNull(strategy); + Assert.assertEquals(2, strategy.size()); + Assert.assertEquals("0", strategy.get("algorithmID")); + Assert.assertEquals("0", strategy.get("trafficType")); - assertEquals(1, proposition.getOffers().size()); + Assert.assertEquals(1, proposition.getOffers().size()); Offer offer = proposition.getOffers().get(0); - assertEquals("246315", offer.getId()); - assertNull(offer.getEtag()); - assertEquals("https://ns.adobe.com/personalization/json-content-item", offer.getSchema()); - assertEquals(OfferType.JSON, offer.getType()); - assertEquals("{\"testing\":\"ho-ho\"}", offer.getContent()); - assertNull(offer.getLanguage()); - assertNull(offer.getCharacteristics()); + Assert.assertEquals("246315", offer.getId()); + Assert.assertNull(offer.getEtag()); + Assert.assertEquals("https://ns.adobe.com/personalization/json-content-item", offer.getSchema()); + Assert.assertEquals(OfferType.JSON, offer.getType()); + Assert.assertEquals("{\"testing\":\"ho-ho\"}", offer.getContent()); + Assert.assertNull(offer.getLanguage()); + Assert.assertNull(offer.getCharacteristics()); } @Test public void testFromEventData_invalidPropositionNoId() throws Exception { Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_INVALID_MISSING_ID.json"), HashMap.class); final Proposition proposition = Proposition.fromEventData(propositionData); - assertNull(proposition); + Assert.assertNull(proposition); } @Test public void testFromEventData_invalidPropositionNoScope() throws Exception { Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_INVALID_MISSING_SCOPE.json"), HashMap.class); final Proposition proposition = Proposition.fromEventData(propositionData); - assertNull(proposition); + Assert.assertNull(proposition); } @Test public void testGenerateReferenceXdm_validProposition() throws Exception { Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID.json"), HashMap.class); final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); + Assert.assertNotNull(proposition); // test final Map propositionReferenceXdm = proposition.generateReferenceXdm(); // verify - assertNotNull(propositionReferenceXdm); - assertNull(propositionReferenceXdm.get("eventType")); + Assert.assertNotNull(propositionReferenceXdm); + Assert.assertNull(propositionReferenceXdm.get("eventType")); final Map experience = (Map)propositionReferenceXdm.get("_experience"); - assertNotNull(experience); + Assert.assertNotNull(experience); final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); - assertEquals("de03ac85-802a-4331-a905-a57053164d35", decisioning.get("propositionID")); + Assert.assertNotNull(decisioning); + Assert.assertEquals("de03ac85-802a-4331-a905-a57053164d35", decisioning.get("propositionID")); } @Test public void testGenerateReferenceXdm_validPropositionFromTarget() throws Exception { Map propositionData = new ObjectMapper().readValue(getClass().getClassLoader().getResource("json/PROPOSITION_VALID_TARGET.json"), HashMap.class); final Proposition proposition = Proposition.fromEventData(propositionData); - assertNotNull(proposition); + Assert.assertNotNull(proposition); // test final Map propositionReferenceXdm = proposition.generateReferenceXdm(); // verify - assertNotNull(propositionReferenceXdm); - assertNull(propositionReferenceXdm.get("eventType")); + Assert.assertNotNull(propositionReferenceXdm); + Assert.assertNull(propositionReferenceXdm.get("eventType")); final Map experience = (Map)propositionReferenceXdm.get("_experience"); - assertNotNull(experience); + Assert.assertNotNull(experience); final Map decisioning = (Map)experience.get("decisioning"); - assertNotNull(decisioning); - assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", decisioning.get("propositionID")); + Assert.assertNotNull(decisioning); + Assert.assertEquals("AT:eyJhY3Rpdml0eUlkIjoiMTI1NTg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9", decisioning.get("propositionID")); } }

    SC!StNI+;14 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