diff --git a/src/main/java/com/whatsapp/api/domain/messages/Parameter.java b/src/main/java/com/whatsapp/api/domain/messages/Parameter.java index 65e90e858..f14b6e275 100644 --- a/src/main/java/com/whatsapp/api/domain/messages/Parameter.java +++ b/src/main/java/com/whatsapp/api/domain/messages/Parameter.java @@ -13,6 +13,9 @@ public class Parameter { @JsonProperty("type") private final ParameterType type; + @JsonProperty("parameter_name") + private String parameterName; + /** * Instantiates a new Parameter. * @@ -30,4 +33,12 @@ protected Parameter(ParameterType type) { public ParameterType getType() { return type; } + + public String getParameterName() { + return parameterName; + } + + public void setParameterName(String parameterName) { + this.parameterName = parameterName; + } } diff --git a/src/test/java/com/whatsapp/api/domain/messages/MessageTest.java b/src/test/java/com/whatsapp/api/domain/messages/MessageTest.java index a5e0aac6c..683299722 100644 --- a/src/test/java/com/whatsapp/api/domain/messages/MessageTest.java +++ b/src/test/java/com/whatsapp/api/domain/messages/MessageTest.java @@ -30,4 +30,39 @@ public void testMessageWithoutContext() { assertEquals(null, message.getContext(), "Context should be null"); } + + @Test + public void testComponentWithNamedAndOrderedParameters() { + // Create named parameters + TextParameter namedParam1 = new TextParameter("John"); + namedParam1.setParameterName("customer_name"); + + TextParameter namedParam2 = new TextParameter("9128312831"); + namedParam2.setParameterName("order_id"); + + // Create ordered parameters + TextParameter orderedParam1 = new TextParameter("John"); + TextParameter orderedParam2 = new TextParameter("9128312831"); + + // Create a component and add parameters + Component component = new BodyComponent(); + component.addParameter(namedParam1) + .addParameter(namedParam2) + .addParameter(orderedParam1) + .addParameter(orderedParam2); + + // Verify named parameters + assertEquals("customer_name", component.getParameters().get(0).getParameterName()); + assertEquals("John", ((TextParameter) component.getParameters().get(0)).getText()); + + assertEquals("order_id", component.getParameters().get(1).getParameterName()); + assertEquals("9128312831", ((TextParameter) component.getParameters().get(1)).getText()); + + // Verify ordered parameters + assertEquals(null, component.getParameters().get(2).getParameterName()); + assertEquals("John", ((TextParameter) component.getParameters().get(2)).getText()); + + assertEquals(null, component.getParameters().get(3).getParameterName()); + assertEquals("9128312831", ((TextParameter) component.getParameters().get(3)).getText()); + } }