From 39fac3d3e294d25ee9635c9bea3e253534b1da56 Mon Sep 17 00:00:00 2001 From: "evan.greer@iterable.com" Date: Mon, 31 Jul 2023 14:32:45 -0600 Subject: [PATCH 1/4] adds IterableEmbeddedPlacement class --- .../iterableapi/IterableEmbeddedMessage.kt | 45 ++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/iterableapi/src/main/java/com/iterable/iterableapi/IterableEmbeddedMessage.kt b/iterableapi/src/main/java/com/iterable/iterableapi/IterableEmbeddedMessage.kt index cb584dd81..849dc9276 100644 --- a/iterableapi/src/main/java/com/iterable/iterableapi/IterableEmbeddedMessage.kt +++ b/iterableapi/src/main/java/com/iterable/iterableapi/IterableEmbeddedMessage.kt @@ -1,10 +1,53 @@ package com.iterable.iterableapi -import com.iterable.iterableapi.EmbeddedMessageElements.Companion.TAG import org.json.JSONArray import org.json.JSONException import org.json.JSONObject +data class IterableEmbeddedPlacement( + val placementId: String, + val messages: List +) { + companion object { + val TAG = "ItblEmbeddedPlacement" + fun toJSONObject(placement: IterableEmbeddedPlacement): JSONObject { + + val embeddedPlacementJson = JSONObject() + + try { + embeddedPlacementJson.put(IterableConstants.ITERABLE_EMBEDDED_MESSAGE_PLACEMENT_ID, placement.placementId) + + if(placement?.messages != null) { + val messagesJson = JSONArray() + for(i in 0 until placement.messages.size) { + messagesJson.put(IterableEmbeddedMessage.toJSONObject(placement.messages[i])) + } + embeddedPlacementJson.put(IterableConstants.ITERABLE_EMBEDDED_MESSAGE, messagesJson) + } + } catch(e: JSONException) { + IterableLogger.e(TAG, "Error while serializing flex message", e) + } + + return embeddedPlacementJson + } + + fun fromJSONObject(placementJson: JSONObject): IterableEmbeddedPlacement { + val placementId: String = placementJson.getString(IterableConstants.ITERABLE_EMBEDDED_MESSAGE_PLACEMENT_ID) + + val messagesJson: JSONArray = placementJson.getJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE) + var messages: MutableList = mutableListOf() + + for(i in 0 until messagesJson.length()) { + val messageJson: JSONObject = messagesJson.getJSONObject(i) + val message: IterableEmbeddedMessage = IterableEmbeddedMessage.fromJSONObject(messageJson) + messages.add(message) + } + + return IterableEmbeddedPlacement(placementId, messages) + } + } +} + data class IterableEmbeddedMessage ( val metadata: EmbeddedMessageMetadata, val elements: EmbeddedMessageElements? = null, From ae1c556c94b590042670d6a05e3169fca8d1a695 Mon Sep 17 00:00:00 2001 From: "evan.greer@iterable.com" Date: Mon, 31 Jul 2023 15:10:32 -0600 Subject: [PATCH 2/4] updates unit tests to include placements --- .../iterableapi/IterableConstants.java | 1 + .../IterableEmbeddedMessageTest.kt | 100 +++++++++++------- .../embedded_payload_no_buttons_no_text.json | 41 +++---- .../embedded_payload_no_custom_payload.json | 61 ++++++----- ...payload_no_elements_no_custom_payload.json | 19 ++-- ..._optional_elements_and_custom_payload.json | 67 ++++++------ 6 files changed, 168 insertions(+), 121 deletions(-) diff --git a/iterableapi/src/main/java/com/iterable/iterableapi/IterableConstants.java b/iterableapi/src/main/java/com/iterable/iterableapi/IterableConstants.java index 7ab0627cd..4b8fb9391 100644 --- a/iterableapi/src/main/java/com/iterable/iterableapi/IterableConstants.java +++ b/iterableapi/src/main/java/com/iterable/iterableapi/IterableConstants.java @@ -172,6 +172,7 @@ public final class IterableConstants { public static final String LOCATION_HEADER_FIELD = "Location"; //Embedded Message Constants + public static final String ITERABLE_EMBEDDED_MESSAGE_PLACEMENTS = "placements"; public static final String ITERABLE_EMBEDDED_MESSAGE = "embeddedMessages"; public static final String ITERABLE_EMBEDDED_MESSAGE_METADATA = "metadata"; public static final String ITERABLE_EMBEDDED_MESSAGE_ELEMENTS = "elements"; diff --git a/iterableapi/src/test/java/com/iterable/iterableapi/IterableEmbeddedMessageTest.kt b/iterableapi/src/test/java/com/iterable/iterableapi/IterableEmbeddedMessageTest.kt index 9a38efb8e..a66d3ec83 100644 --- a/iterableapi/src/test/java/com/iterable/iterableapi/IterableEmbeddedMessageTest.kt +++ b/iterableapi/src/test/java/com/iterable/iterableapi/IterableEmbeddedMessageTest.kt @@ -11,20 +11,24 @@ class IterableEmbeddedMessageTest { @Test fun embeddedMessageDeserialization_elementsAndCustomPayloadDefined() { val payload = JSONObject(IterableTestUtils.getResourceString("embedded_payload_optional_elements_and_custom_payload.json")) - val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE) + val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE_PLACEMENTS) if (jsonArray != null) { - // GIVEN an embedded message payload with optional elements - val messageJson = jsonArray.optJSONObject(0) + // GIVEN an embedded message placement payload + val placementJson = jsonArray.optJSONObject(0) + + // WHEN you deserialize the embedded message placement payload + val placement = IterableEmbeddedPlacement.fromJSONObject(placementJson) - // WHEN you deserialize the embedded message payload - val message = IterableEmbeddedMessage.fromJSONObject(messageJson) + val message = placement.messages[0] val payload = JSONObject() payload.put("someKey", "someValue") - // THEN we get appropriate embedded message object - assertNotNull(message) + // THEN we get appropriate embedded message object and associated placement id + assertNotNull(placement) + assertThat("0", `is` (placement.placementId)) + assertThat("doibjo4590340oidiobnw", `is` (message.metadata.messageId)) assertThat("mbn8489b7ehycy", `is` (message.metadata.placementId)) assertThat("noj9iyjthfvhs",`is` (message.metadata.campaignId)) @@ -53,17 +57,21 @@ class IterableEmbeddedMessageTest { @Test fun embeddedMessageDeserialization_noCustomPayloadDefined() { val payload = JSONObject(IterableTestUtils.getResourceString("embedded_payload_no_custom_payload.json")) - val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE) + val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE_PLACEMENTS) if (jsonArray != null) { - // GIVEN an embedded message payload with optional elements - val messageJson = jsonArray.optJSONObject(0) + // GIVEN an embedded message placement payload + val placementJson = jsonArray.optJSONObject(0) - // WHEN you deserialize the embedded message payload - val message = IterableEmbeddedMessage.fromJSONObject(messageJson) + // WHEN you deserialize the embedded message placement payload + val placement = IterableEmbeddedPlacement.fromJSONObject(placementJson) + + val message = placement.messages[0] + + // THEN we get appropriate embedded message object and associated placement id + assertNotNull(placement) + assertThat("0", `is` (placement.placementId)) - // THEN we get appropriate embedded message object - assertNotNull(message) assertThat("doibjo4590340oidiobnw", `is` (message.metadata.messageId)) assertThat("mbn8489b7ehycy", `is` (message.metadata.placementId)) assertThat("noj9iyjthfvhs",`is` (message.metadata.campaignId)) @@ -93,20 +101,24 @@ class IterableEmbeddedMessageTest { @Test fun embeddedMessageDeserialization_noButtonsOrText() { val payload = JSONObject(IterableTestUtils.getResourceString("embedded_payload_no_buttons_no_text.json")) - val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE) + val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE_PLACEMENTS) if (jsonArray != null) { - // GIVEN an embedded message payload with optional elements - val messageJson = jsonArray.optJSONObject(0) + // GIVEN an embedded message placement payload + val placementJson = jsonArray.optJSONObject(0) - // WHEN you deserialize the embedded message payload - val message = IterableEmbeddedMessage.fromJSONObject(messageJson) + // WHEN you deserialize the embedded message placement payload + val placement = IterableEmbeddedPlacement.fromJSONObject(placementJson) + + val message = placement.messages[0] val payload = JSONObject() payload.put("someKey", "someValue") - // THEN we get appropriate embedded message object - assertNotNull(message) + // THEN we get appropriate embedded message object and associated placement id + assertNotNull(placement) + assertThat("0", `is` (placement.placementId)) + assertThat("doibjo4590340oidiobnw", `is` (message.metadata.messageId)) assertThat("mbn8489b7ehycy", `is` (message.metadata.placementId)) assertThat("noj9iyjthfvhs",`is` (message.metadata.campaignId)) @@ -129,17 +141,21 @@ class IterableEmbeddedMessageTest { @Test fun embeddedMessageDeserialization_noElementsOrCustomPayloadDefined() { val payload = JSONObject(IterableTestUtils.getResourceString("embedded_payload_no_elements_no_custom_payload.json")) - val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE) + val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE_PLACEMENTS) if (jsonArray != null) { - // GIVEN an embedded message payload with optional elements - val messageJson = jsonArray.optJSONObject(0) + // GIVEN an embedded message placement payload with optional elements + val placementJson = jsonArray.optJSONObject(0) - // WHEN you deserialize the embedded message payload - val message = IterableEmbeddedMessage.fromJSONObject(messageJson) + // WHEN you deserialize the embedded message placement payload + val placement = IterableEmbeddedPlacement.fromJSONObject(placementJson) + + val message = placement.messages[0] + + // THEN we get appropriate embedded message object and associated placement id + assertNotNull(placement) + assertThat("0", `is` (placement.placementId)) - // THEN we get appropriate embedded message object - assertNotNull(message) assertThat("doibjo4590340oidiobnw", `is` (message.metadata.messageId)) assertThat("mbn8489b7ehycy", `is` (message.metadata.placementId)) assertThat("noj9iyjthfvhs",`is` (message.metadata.campaignId)) @@ -189,18 +205,23 @@ class IterableEmbeddedMessageTest { val embeddedMessage = IterableEmbeddedMessage(embeddedMessageMetadata, embeddedMessageElements, customPayload) + val placementId: String = "0" + val messages: List = listOf(embeddedMessage) + + val embeddedMessagePlacement = IterableEmbeddedPlacement(placementId, messages) + val payload = JSONObject(IterableTestUtils.getResourceString("embedded_payload_optional_elements_and_custom_payload.json")) - val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE) + val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE_PLACEMENTS) if (jsonArray != null) { - // GIVEN an embedded message payload with optional elements - val expectedMessageJson = jsonArray.optJSONObject(0) + // GIVEN an embedded message placement payload + val expectedPlacementJson = jsonArray.optJSONObject(0) // WHEN you serialize the embedded message payload - val messageJson = IterableEmbeddedMessage.toJSONObject(embeddedMessage) + val placementJson = IterableEmbeddedPlacement.toJSONObject(embeddedMessagePlacement) // THEN we get appropriate embedded message object - JSONAssert.assertEquals(expectedMessageJson, messageJson, JSONCompareMode.STRICT_ORDER) + JSONAssert.assertEquals(expectedPlacementJson, placementJson, JSONCompareMode.STRICT_ORDER) } } @@ -229,18 +250,23 @@ class IterableEmbeddedMessageTest { val embeddedMessage = IterableEmbeddedMessage(embeddedMessageMetadata, embeddedMessageElements, customPayload) + val placementId: String = "0" + val messages: List = listOf(embeddedMessage) + + val embeddedMessagePlacement = IterableEmbeddedPlacement(placementId, messages) + val payload = JSONObject(IterableTestUtils.getResourceString("embedded_payload_no_buttons_no_text.json")) val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE) if (jsonArray != null) { - // GIVEN an embedded message payload with optional elements - val expectedMessageJson = jsonArray.optJSONObject(0) + // GIVEN an embedded message placement payload + val expectedPlacementJson = jsonArray.optJSONObject(0) // WHEN you serialize the embedded message payload - val messageJson = IterableEmbeddedMessage.toJSONObject(embeddedMessage) + val placementJson = IterableEmbeddedPlacement.toJSONObject(embeddedMessagePlacement) // THEN we get appropriate embedded message object - JSONAssert.assertEquals(expectedMessageJson, messageJson, JSONCompareMode.STRICT_ORDER) + JSONAssert.assertEquals(expectedPlacementJson, placementJson, JSONCompareMode.STRICT_ORDER) } } } \ No newline at end of file diff --git a/iterableapi/src/test/resources/embedded_payload_no_buttons_no_text.json b/iterableapi/src/test/resources/embedded_payload_no_buttons_no_text.json index 0b8a50361..647c4b0f2 100644 --- a/iterableapi/src/test/resources/embedded_payload_no_buttons_no_text.json +++ b/iterableapi/src/test/resources/embedded_payload_no_buttons_no_text.json @@ -1,24 +1,29 @@ { - "embeddedMessages": [ + "placements": [ { - "metadata": { - "messageId": "doibjo4590340oidiobnw", - "placementId": "mbn8489b7ehycy", - "campaignId": "noj9iyjthfvhs", - "isProof": true - }, - "elements": { - "title": "Iterable Coffee Shoppe", - "body": "SAVE 15% OFF NOW", - "mediaUrl": "http://placekitten.com/200/300", - "defaultAction": { - "type": "someType", - "data": "someData" + "placementId": "0", + "embeddedMessages": [ + { + "metadata": { + "messageId": "doibjo4590340oidiobnw", + "placementId": "mbn8489b7ehycy", + "campaignId": "noj9iyjthfvhs", + "isProof": true + }, + "elements": { + "title": "Iterable Coffee Shoppe", + "body": "SAVE 15% OFF NOW", + "mediaUrl": "http://placekitten.com/200/300", + "defaultAction": { + "type": "someType", + "data": "someData" + } + }, + "payload": { + "someKey": "someValue" + } } - }, - "payload" : { - "someKey": "someValue" - } + ] } ] } \ No newline at end of file diff --git a/iterableapi/src/test/resources/embedded_payload_no_custom_payload.json b/iterableapi/src/test/resources/embedded_payload_no_custom_payload.json index 3fdef6dd0..06f9e8650 100644 --- a/iterableapi/src/test/resources/embedded_payload_no_custom_payload.json +++ b/iterableapi/src/test/resources/embedded_payload_no_custom_payload.json @@ -1,34 +1,39 @@ { - "embeddedMessages": [ + "placements": [ { - "metadata": { - "messageId": "doibjo4590340oidiobnw", - "placementId": "mbn8489b7ehycy", - "campaignId": "noj9iyjthfvhs", - "isProof": true - }, - "elements": { - "title": "Iterable Coffee Shoppe", - "body": "SAVE 15% OFF NOW", - "mediaUrl": "http://placekitten.com/200/300", - "defaultAction": { - "type": "someType", - "data": "someData" - }, - "buttons": [{ - "id": "reward-button", - "title": "REDEEM MEOW", - "action": { - "type": "openUrl", - "data": "https://www.google.com" + "placementId": "0", + "embeddedMessages": [ + { + "metadata": { + "messageId": "doibjo4590340oidiobnw", + "placementId": "mbn8489b7ehycy", + "campaignId": "noj9iyjthfvhs", + "isProof": true + }, + "elements": { + "title": "Iterable Coffee Shoppe", + "body": "SAVE 15% OFF NOW", + "mediaUrl": "http://placekitten.com/200/300", + "defaultAction": { + "type": "someType", + "data": "someData" + }, + "buttons": [{ + "id": "reward-button", + "title": "REDEEM MEOW", + "action": { + "type": "openUrl", + "data": "https://www.google.com" + } + }], + "text": [{ + "id": "body", + "text": "CATS RULE!!!", + "label": "label" + }] } - }], - "text": [{ - "id": "body", - "text": "CATS RULE!!!", - "label": "label" - }] - } + } + ] } ] } \ No newline at end of file diff --git a/iterableapi/src/test/resources/embedded_payload_no_elements_no_custom_payload.json b/iterableapi/src/test/resources/embedded_payload_no_elements_no_custom_payload.json index f66bec0b9..555a17089 100644 --- a/iterableapi/src/test/resources/embedded_payload_no_elements_no_custom_payload.json +++ b/iterableapi/src/test/resources/embedded_payload_no_elements_no_custom_payload.json @@ -1,12 +1,17 @@ { - "embeddedMessages": [ + "placements": [ { - "metadata": { - "messageId": "doibjo4590340oidiobnw", - "placementId": "mbn8489b7ehycy", - "campaignId": "noj9iyjthfvhs", - "isProof": true - } + "placementId": "0", + "embeddedMessages": [ + { + "metadata": { + "messageId": "doibjo4590340oidiobnw", + "placementId": "mbn8489b7ehycy", + "campaignId": "noj9iyjthfvhs", + "isProof": true + } + } + ] } ] } \ No newline at end of file diff --git a/iterableapi/src/test/resources/embedded_payload_optional_elements_and_custom_payload.json b/iterableapi/src/test/resources/embedded_payload_optional_elements_and_custom_payload.json index 0931961f4..425a969b8 100644 --- a/iterableapi/src/test/resources/embedded_payload_optional_elements_and_custom_payload.json +++ b/iterableapi/src/test/resources/embedded_payload_optional_elements_and_custom_payload.json @@ -1,37 +1,42 @@ { - "embeddedMessages": [ + "placements": [ { - "metadata": { - "messageId": "doibjo4590340oidiobnw", - "placementId": "mbn8489b7ehycy", - "campaignId": "noj9iyjthfvhs", - "isProof": true - }, - "elements": { - "title": "Iterable Coffee Shoppe", - "body": "SAVE 15% OFF NOW", - "mediaUrl": "http://placekitten.com/200/300", - "defaultAction": { - "type": "someType", - "data": "someData" - }, - "buttons": [{ - "id": "reward-button", - "title": "REDEEM MEOW", - "action": { - "type": "openUrl", - "data": "https://www.google.com" + "placementId": "0", + "embeddedMessages": [ + { + "metadata": { + "messageId": "doibjo4590340oidiobnw", + "placementId": "mbn8489b7ehycy", + "campaignId": "noj9iyjthfvhs", + "isProof": true + }, + "elements": { + "title": "Iterable Coffee Shoppe", + "body": "SAVE 15% OFF NOW", + "mediaUrl": "http://placekitten.com/200/300", + "defaultAction": { + "type": "someType", + "data": "someData" + }, + "buttons": [{ + "id": "reward-button", + "title": "REDEEM MEOW", + "action": { + "type": "openUrl", + "data": "https://www.google.com" + } + }], + "text": [{ + "id": "body", + "text": "CATS RULE!!!", + "label": "label" + }] + }, + "payload": { + "someKey": "someValue" } - }], - "text": [{ - "id": "body", - "text": "CATS RULE!!!", - "label": "label" - }] - }, - "payload": { - "someKey": "someValue" - } + } + ] } ] } \ No newline at end of file From f44f266bb9345fcaf0a2b5ae3072ac88cdb69e1e Mon Sep 17 00:00:00 2001 From: "evan.greer@iterable.com" Date: Mon, 31 Jul 2023 15:16:02 -0600 Subject: [PATCH 3/4] various refactors --- ...ddedMessage.kt => IterableEmbeddedPlacement.kt} | 0 ...ageTest.kt => IterableEmbeddedPlacementTest.kt} | 14 +++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) rename iterableapi/src/main/java/com/iterable/iterableapi/{IterableEmbeddedMessage.kt => IterableEmbeddedPlacement.kt} (100%) rename iterableapi/src/test/java/com/iterable/iterableapi/{IterableEmbeddedMessageTest.kt => IterableEmbeddedPlacementTest.kt} (96%) diff --git a/iterableapi/src/main/java/com/iterable/iterableapi/IterableEmbeddedMessage.kt b/iterableapi/src/main/java/com/iterable/iterableapi/IterableEmbeddedPlacement.kt similarity index 100% rename from iterableapi/src/main/java/com/iterable/iterableapi/IterableEmbeddedMessage.kt rename to iterableapi/src/main/java/com/iterable/iterableapi/IterableEmbeddedPlacement.kt diff --git a/iterableapi/src/test/java/com/iterable/iterableapi/IterableEmbeddedMessageTest.kt b/iterableapi/src/test/java/com/iterable/iterableapi/IterableEmbeddedPlacementTest.kt similarity index 96% rename from iterableapi/src/test/java/com/iterable/iterableapi/IterableEmbeddedMessageTest.kt rename to iterableapi/src/test/java/com/iterable/iterableapi/IterableEmbeddedPlacementTest.kt index a66d3ec83..76b248218 100644 --- a/iterableapi/src/test/java/com/iterable/iterableapi/IterableEmbeddedMessageTest.kt +++ b/iterableapi/src/test/java/com/iterable/iterableapi/IterableEmbeddedPlacementTest.kt @@ -7,9 +7,9 @@ import org.junit.Test import org.skyscreamer.jsonassert.JSONAssert import org.skyscreamer.jsonassert.JSONCompareMode -class IterableEmbeddedMessageTest { +class IterableEmbeddedPlacementTest { @Test - fun embeddedMessageDeserialization_elementsAndCustomPayloadDefined() { + fun embeddedPlacementDeserialization_elementsAndCustomPayloadDefined() { val payload = JSONObject(IterableTestUtils.getResourceString("embedded_payload_optional_elements_and_custom_payload.json")) val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE_PLACEMENTS) @@ -55,7 +55,7 @@ class IterableEmbeddedMessageTest { } @Test - fun embeddedMessageDeserialization_noCustomPayloadDefined() { + fun embeddedPlacementDeserialization_noCustomPayloadDefined() { val payload = JSONObject(IterableTestUtils.getResourceString("embedded_payload_no_custom_payload.json")) val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE_PLACEMENTS) @@ -99,7 +99,7 @@ class IterableEmbeddedMessageTest { } @Test - fun embeddedMessageDeserialization_noButtonsOrText() { + fun embeddedPlacementDeserialization_noButtonsOrText() { val payload = JSONObject(IterableTestUtils.getResourceString("embedded_payload_no_buttons_no_text.json")) val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE_PLACEMENTS) @@ -139,7 +139,7 @@ class IterableEmbeddedMessageTest { } @Test - fun embeddedMessageDeserialization_noElementsOrCustomPayloadDefined() { + fun embeddedPlacementDeserialization_noElementsOrCustomPayloadDefined() { val payload = JSONObject(IterableTestUtils.getResourceString("embedded_payload_no_elements_no_custom_payload.json")) val jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE_PLACEMENTS) @@ -167,7 +167,7 @@ class IterableEmbeddedMessageTest { } @Test - fun embeddedMessageSerialization_elementsAndCustomPayloadDefined() { + fun embeddedPlacementSerialization_elementsAndCustomPayloadDefined() { val embeddedMessageMetadata = EmbeddedMessageMetadata( "doibjo4590340oidiobnw", "mbn8489b7ehycy", @@ -226,7 +226,7 @@ class IterableEmbeddedMessageTest { } @Test - fun embeddedMessageSerialization_noButtons_noText() { + fun embeddedPlacementSerialization_noButtons_noText() { val embeddedMessageMetadata = EmbeddedMessageMetadata( "doibjo4590340oidiobnw", "mbn8489b7ehycy", From f743478ec2706e67fb00ca251cc28cd2d74d4e8f Mon Sep 17 00:00:00 2001 From: "evan.greer@iterable.com" Date: Mon, 31 Jul 2023 15:30:31 -0600 Subject: [PATCH 4/4] updates embedded test message deserialization --- .../java/com/iterable/iterableapi/EmbeddedTestUtils.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/iterableapi/src/test/java/com/iterable/iterableapi/EmbeddedTestUtils.java b/iterableapi/src/test/java/com/iterable/iterableapi/EmbeddedTestUtils.java index 0159efad4..1587e2c8b 100644 --- a/iterableapi/src/test/java/com/iterable/iterableapi/EmbeddedTestUtils.java +++ b/iterableapi/src/test/java/com/iterable/iterableapi/EmbeddedTestUtils.java @@ -6,7 +6,12 @@ public class EmbeddedTestUtils { public static IterableEmbeddedMessage getTestEmbeddedMessage() throws Exception { JSONObject payload = new JSONObject(IterableTestUtils.getResourceString("embedded_payload_optional_elements_and_custom_payload.json")); - JSONArray jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE); - return IterableEmbeddedMessage.Companion.fromJSONObject(jsonArray.getJSONObject(0)); + JSONArray jsonArray = payload.optJSONArray(IterableConstants.ITERABLE_EMBEDDED_MESSAGE_PLACEMENTS); + + JSONObject placementJson = jsonArray.optJSONObject(0); + IterableEmbeddedPlacement placement = IterableEmbeddedPlacement.Companion.fromJSONObject(placementJson); + IterableEmbeddedMessage message = placement.getMessages().get(0); + + return message; } }