diff --git a/.chronus/changes/add-e2e-test-alternate-initial-verb-2026-3-30.md b/.chronus/changes/add-e2e-test-alternate-initial-verb-2026-3-30.md new file mode 100644 index 00000000000..ab8752390ad --- /dev/null +++ b/.chronus/changes/add-e2e-test-alternate-initial-verb-2026-3-30.md @@ -0,0 +1,7 @@ +--- +changeKind: internal +packages: + - "@typespec/http-client-java" +--- + +Add e2e test for ServerDrivenPagination alternate initial verb (POST) scenario in clientcore tests diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/test/java/payload/pageable/PageableTests.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/test/java/payload/pageable/PageableTests.java index 25f50fc64af..a15bd8a6034 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/test/java/payload/pageable/PageableTests.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/test/java/payload/pageable/PageableTests.java @@ -9,6 +9,7 @@ import java.util.stream.Collectors; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import payload.pageable.serverdrivenpagination.alternateinitialverb.Filter; public class PageableTests { @@ -16,6 +17,8 @@ public class PageableTests { private final ServerDrivenPaginationClient client = new PageableClientBuilder().buildServerDrivenPaginationClient(); private final ServerDrivenPaginationContinuationTokenClient tokenClient = new PageableClientBuilder().buildServerDrivenPaginationContinuationTokenClient(); + private final ServerDrivenPaginationAlternateInitialVerbClient alternateInitialVerbClient + = new PageableClientBuilder().buildServerDrivenPaginationAlternateInitialVerbClient(); @Test public void testNextLink() { @@ -101,4 +104,13 @@ public void testLinkString() { Assertions.assertEquals(List.of("1", "2", "3", "4"), pagedIterable.stream().map(Pet::getId).collect(Collectors.toList())); } + + @Test + public void testAlternateInitialVerbPost() { + PagedIterable pagedIterable = alternateInitialVerbClient.post(new Filter("foo eq bar")); + + Assertions.assertEquals(4, pagedIterable.stream().count()); + Assertions.assertEquals(List.of("1", "2", "3", "4"), + pagedIterable.stream().map(Pet::getId).collect(Collectors.toList())); + } } diff --git a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/test/java/payload/xml/XmlTests.java b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/test/java/payload/xml/XmlTests.java index d2f5bcfbf70..090e3acdb7b 100644 --- a/packages/http-client-java/generator/http-client-generator-clientcore-test/src/test/java/payload/xml/XmlTests.java +++ b/packages/http-client-java/generator/http-client-generator-clientcore-test/src/test/java/payload/xml/XmlTests.java @@ -10,6 +10,7 @@ import java.util.List; import java.util.Map; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; public final class XmlTests { @@ -186,4 +187,149 @@ public void testXmlErrorValue() { Assertions.assertEquals("Something went wrong", errorBody.getMessage()); Assertions.assertEquals(400, errorBody.getCode()); } + + @Test + public void testModelWithRenamedProperty() { + ModelWithRenamedPropertyValueClient client = new XmlClientBuilder().buildModelWithRenamedPropertyValueClient(); + + client.put(new ModelWithRenamedProperty("foo", "bar")); + + ModelWithRenamedProperty model = client.get(); + Assertions.assertEquals("foo", model.getTitle()); + Assertions.assertEquals("bar", model.getAuthor()); + } + + @Test + public void testModelWithNestedModel() { + ModelWithNestedModelValueClient client = new XmlClientBuilder().buildModelWithNestedModelValueClient(); + + client.put(new ModelWithNestedModel(new SimpleModel("foo", 123))); + + ModelWithNestedModel model = client.get(); + Assertions.assertEquals("foo", model.getNested().getName()); + Assertions.assertEquals(123, model.getNested().getAge()); + } + + @Test + public void testModelWithRenamedNestedModel() { + ModelWithRenamedNestedModelValueClient client + = new XmlClientBuilder().buildModelWithRenamedNestedModelValueClient(); + + client.put(new ModelWithRenamedNestedModel(new Author("foo"))); + + ModelWithRenamedNestedModel model = client.get(); + Assertions.assertEquals("foo", model.getAuthor().getName()); + } + + @Disabled("items array mismatch") + @Test + public void testModelWithWrappedPrimitiveCustomItemNames() { + ModelWithWrappedPrimitiveCustomItemNamesValueClient client + = new XmlClientBuilder().buildModelWithWrappedPrimitiveCustomItemNamesValueClient(); + + client.put(new ModelWithWrappedPrimitiveCustomItemNames(List.of("fiction", "classic"))); + + ModelWithWrappedPrimitiveCustomItemNames model = client.get(); + Assertions.assertEquals(List.of("fiction", "classic"), model.getTags()); + } + + @Test + public void testModelWithUnwrappedModelArray() { + ModelWithUnwrappedModelArrayValueClient client + = new XmlClientBuilder().buildModelWithUnwrappedModelArrayValueClient(); + + client.put(new ModelWithUnwrappedModelArray(List.of(new SimpleModel("foo", 123), new SimpleModel("bar", 456)))); + + ModelWithUnwrappedModelArray model = client.get(); + Assertions.assertEquals(2, model.getItems().size()); + Assertions.assertEquals("foo", model.getItems().get(0).getName()); + Assertions.assertEquals(123, model.getItems().get(0).getAge()); + Assertions.assertEquals("bar", model.getItems().get(1).getName()); + Assertions.assertEquals(456, model.getItems().get(1).getAge()); + } + + @Test + public void testModelWithRenamedWrappedModelArray() { + ModelWithRenamedWrappedModelArrayValueClient client + = new XmlClientBuilder().buildModelWithRenamedWrappedModelArrayValueClient(); + + client.put( + new ModelWithRenamedWrappedModelArray(List.of(new SimpleModel("foo", 123), new SimpleModel("bar", 456)))); + + ModelWithRenamedWrappedModelArray model = client.get(); + Assertions.assertEquals(2, model.getItems().size()); + Assertions.assertEquals("foo", model.getItems().get(0).getName()); + Assertions.assertEquals(123, model.getItems().get(0).getAge()); + Assertions.assertEquals("bar", model.getItems().get(1).getName()); + Assertions.assertEquals(456, model.getItems().get(1).getAge()); + } + + @Test + public void testModelWithRenamedUnwrappedModelArray() { + ModelWithRenamedUnwrappedModelArrayValueClient client + = new XmlClientBuilder().buildModelWithRenamedUnwrappedModelArrayValueClient(); + + client.put( + new ModelWithRenamedUnwrappedModelArray(List.of(new SimpleModel("foo", 123), new SimpleModel("bar", 456)))); + + ModelWithRenamedUnwrappedModelArray model = client.get(); + Assertions.assertEquals(2, model.getItems().size()); + Assertions.assertEquals("foo", model.getItems().get(0).getName()); + Assertions.assertEquals(123, model.getItems().get(0).getAge()); + Assertions.assertEquals("bar", model.getItems().get(1).getName()); + Assertions.assertEquals(456, model.getItems().get(1).getAge()); + } + + @Test + public void testModelWithRenamedWrappedAndItemModelArray() { + ModelWithRenamedWrappedAndItemModelArrayValueClient client + = new XmlClientBuilder().buildModelWithRenamedWrappedAndItemModelArrayValueClient(); + + client.put(new ModelWithRenamedWrappedAndItemModelArray( + List.of(new Book("The Great Gatsby"), new Book("Les Miserables")))); + + ModelWithRenamedWrappedAndItemModelArray model = client.get(); + Assertions.assertEquals(2, model.getBooks().size()); + Assertions.assertEquals("The Great Gatsby", model.getBooks().get(0).getTitle()); + Assertions.assertEquals("Les Miserables", model.getBooks().get(1).getTitle()); + } + + @Test + public void testModelWithRenamedAttribute() { + ModelWithRenamedAttributeValueClient client + = new XmlClientBuilder().buildModelWithRenamedAttributeValueClient(); + + client.put(new ModelWithRenamedAttribute(123, "The Great Gatsby", "F. Scott Fitzgerald")); + + ModelWithRenamedAttribute model = client.get(); + Assertions.assertEquals(123, model.getId()); + Assertions.assertEquals("The Great Gatsby", model.getTitle()); + Assertions.assertEquals("F. Scott Fitzgerald", model.getAuthor()); + } + + @Disabled("namespace mismatch") + @Test + public void testModelWithNamespace() { + ModelWithNamespaceValueClient client = new XmlClientBuilder().buildModelWithNamespaceValueClient(); + + client.put(new ModelWithNamespace(123, "The Great Gatsby")); + + ModelWithNamespace model = client.get(); + Assertions.assertEquals(123, model.getId()); + Assertions.assertEquals("The Great Gatsby", model.getTitle()); + } + + @Disabled("namespace mismatch") + @Test + public void testModelWithNamespaceOnProperties() { + ModelWithNamespaceOnPropertiesValueClient client + = new XmlClientBuilder().buildModelWithNamespaceOnPropertiesValueClient(); + + client.put(new ModelWithNamespaceOnProperties(123, "The Great Gatsby", "F. Scott Fitzgerald")); + + ModelWithNamespaceOnProperties model = client.get(); + Assertions.assertEquals(123, model.getId()); + Assertions.assertEquals("The Great Gatsby", model.getTitle()); + Assertions.assertEquals("F. Scott Fitzgerald", model.getAuthor()); + } }