diff options
Diffstat (limited to 'src/test/java/com')
-rw-r--r-- | src/test/java/com/p4square/ccbapi/CCBAPIClientTest.java | 65 | ||||
-rw-r--r-- | src/test/java/com/p4square/ccbapi/model/GetGroupProfilesResponseTest.java | 106 |
2 files changed, 171 insertions, 0 deletions
diff --git a/src/test/java/com/p4square/ccbapi/CCBAPIClientTest.java b/src/test/java/com/p4square/ccbapi/CCBAPIClientTest.java index 71427b5..9c7bbd6 100644 --- a/src/test/java/com/p4square/ccbapi/CCBAPIClientTest.java +++ b/src/test/java/com/p4square/ccbapi/CCBAPIClientTest.java @@ -283,6 +283,71 @@ public class CCBAPIClientTest { // Expect exception. } + @Test + public void testGetGroupProfilesById() throws Exception { + // Set expectation. + URI expectedURI = new URI("https://localhost:8080/api.php?srv=group_profile_from_id&id=750"); + InputStream is = getClass().getResourceAsStream("model/ccb_group_profile_from_id_response.xml"); + EasyMock.expect(mockHttpClient.sendPostRequest(expectedURI, null)) + .andReturn(is); + EasyMock.replay(mockHttpClient); + + // Test group_profile_from_id. + GetGroupProfilesRequest request = new GetGroupProfilesRequest().withGroupId(750); + GetGroupProfilesResponse response = client.getGroupProfiles(request); + + // Verify results. + EasyMock.verify(mockHttpClient); + assertNull(response.getErrors()); + assertEquals(1, response.getGroups().size()); + assertEquals(750, response.getGroups().get(0).getId()); + } + + @Test + public void testGetAllGroupProfiles() throws Exception { + // Set expectation. + URI expectedURI = new URI("https://localhost:8080/api.php?srv=group_profiles"); + InputStream is = getClass().getResourceAsStream("model/ccb_group_profile_from_id_response.xml"); + EasyMock.expect(mockHttpClient.sendPostRequest(expectedURI, null)) + .andReturn(is); + EasyMock.replay(mockHttpClient); + + // Test group_profile_from_id. + GetGroupProfilesRequest request = new GetGroupProfilesRequest(); + GetGroupProfilesResponse response = client.getGroupProfiles(request); + + // Verify results. + EasyMock.verify(mockHttpClient); + assertNull(response.getErrors()); + assertEquals(1, response.getGroups().size()); + assertEquals(750, response.getGroups().get(0).getId()); + } + + @Test + public void testGetAllGroupProfilesWithOptions() throws Exception { + // Set expectation. + URI expectedURI = new URI("https://localhost:8080/api.php?srv=group_profiles&per_page=2&modified_since=2018-07-08&page=1&include_participants=false&include_image_link=true"); + InputStream is = getClass().getResourceAsStream("model/ccb_group_profile_from_id_response.xml"); + EasyMock.expect(mockHttpClient.sendPostRequest(expectedURI, null)) + .andReturn(is); + EasyMock.replay(mockHttpClient); + + // Test group_profile_from_id. + GetGroupProfilesRequest request = new GetGroupProfilesRequest() + .withIncludeParticipants(false) + .withIncludeImageUrl(true) + .withModifiedSince(LocalDate.parse("2018-07-08")) + .withPage(1) + .withPerPage(2); + GetGroupProfilesResponse response = client.getGroupProfiles(request); + + // Verify results. + EasyMock.verify(mockHttpClient); + assertNull(response.getErrors()); + assertEquals(1, response.getGroups().size()); + assertEquals(750, response.getGroups().get(0).getId()); + } + /** * Simple extension of CCBAPIClient to swap out the HTTPInterface with a mock. */ diff --git a/src/test/java/com/p4square/ccbapi/model/GetGroupProfilesResponseTest.java b/src/test/java/com/p4square/ccbapi/model/GetGroupProfilesResponseTest.java new file mode 100644 index 0000000..c62844c --- /dev/null +++ b/src/test/java/com/p4square/ccbapi/model/GetGroupProfilesResponseTest.java @@ -0,0 +1,106 @@ +package com.p4square.ccbapi.model; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Tests for parsing GetGroupProfilesResponse. + */ +public class GetGroupProfilesResponseTest extends XmlBinderTestBase { + + /** + * Assert that all of the fields bind appropriately for a single profile response. + */ + @Test + public void testGetGroupProfilesResponse() throws Exception { + final GetGroupProfilesResponse response = parseFile("ccb_group_profile_from_id_response.xml", + GetGroupProfilesResponse.class); + + assertNull("Response should not have errors", response.getErrors()); + assertNotNull(response.getGroups()); + assertEquals(1, response.getGroups().size()); + + final GroupProfile group = response.getGroups().get(0); + + // IDs + assertEquals(750, group.getId()); + + assertEquals("Adamant by Lisa Bevere Book Study", group.getName()); + assertTrue(group.getDescription().startsWith("What is the truth?")); + assertTrue(group.getImageUrl().isEmpty()); + assertEquals("webcal://example.ccbchurch.com/group_calendar.ics?id=750&tk=764EFA883DDA1E11DB47671C4A3BBD9E", + group.getCalendarFeedUrl()); + + // Main Leader + assertEquals(26102, group.getMainLeader().getId()); + assertEquals("Jane", group.getMainLeader().getFirstName()); + assertEquals("Doe", group.getMainLeader().getLastName()); + assertEquals("Jane Doe", group.getMainLeader().getFullName()); + assertEquals("jane.doe@example.com", group.getMainLeader().getEmail()); + assertEquals(Phone.Type.CONTACT, group.getMainLeader().getPhones().get(0).getType()); + assertEquals("+12068675309", group.getMainLeader().getPhones().get(0).getNumber()); + + // Coach + assertEquals(29, group.getCoach().getId()); + assertEquals("John", group.getCoach().getFirstName()); + assertEquals("Doe", group.getCoach().getLastName()); + assertEquals("John Doe", group.getCoach().getFullName()); + assertEquals("john.doe@example.com", group.getCoach().getEmail()); + assertEquals("", group.getCoach().getPhones().get(0).getNumber()); + + // Director + assertEquals(33082, group.getDirector().getId()); + assertEquals("Jeff", group.getDirector().getFirstName()); + assertEquals("Doe", group.getDirector().getLastName()); + assertEquals("Jeff Doe", group.getDirector().getFullName()); + assertEquals("jeff.doe@example.com", group.getDirector().getEmail()); + assertEquals("", group.getDirector().getPhones().get(0).getNumber()); + + // Membership Capacity + assertEquals(0, group.getLeaders().size()); + assertEquals(0, group.getParticipants().size()); + assertEquals(1, group.getCurrentMembers()); + assertNull(group.getGroupCapacity()); + assertTrue(group.isGroupCapacityUnlimited()); + + // Address + assertEquals(Address.Type.MEETING, group.getAddresses().get(0).getType()); + assertEquals("1234 Example St", group.getAddresses().get(0).getStreetAddress()); + assertEquals("Puyallup", group.getAddresses().get(0).getCity()); + assertEquals("WA", group.getAddresses().get(0).getState()); + assertEquals("", group.getAddresses().get(0).getZip()); + assertEquals("-122.000000", group.getAddresses().get(0).getLongitude()); + assertEquals("47.000000", group.getAddresses().get(0).getLatitude()); + assertEquals("1234 Example St", group.getAddresses().get(0).getLine_1()); + assertEquals("Puyallup, WA", group.getAddresses().get(0).getLine_2()); + + // Attributes + assertEquals(false, group.isChildcareProvided()); + assertEquals(true, group.isListed()); + assertEquals(true, group.isPublicSearchListed()); + assertEquals(true, group.isActive()); + assertEquals(true, group.isNotification()); + assertEquals(InteractionType.MEMBERS_INTERACT, group.getInteractionType()); + assertEquals(MembershipType.MODERATED, group.getMembershipType()); + + // User Defined Fields + assertEquals("udf_1", group.getCustomPulldownFields().getByLabel("Gender").getName()); + assertEquals("Gender", group.getCustomPulldownFields().getByLabel("Gender").getLabel()); + assertEquals(2, group.getCustomPulldownFields().getByLabel("Gender").getSelection().getId()); + assertEquals("Female only", group.getCustomPulldownFields().getByLabel("Gender").getSelection().getLabel()); + assertEquals(false, group.getCustomPulldownFields().getByLabel("Gender").isAdminOnly()); + + // Reference Attributes + assertReferenceEquals(4, "Tuesday", group.getMeetingDay()); + assertReferenceEquals(33, "7:00 pm", group.getMeetingTime()); + assertReferenceEquals(4, "Community", group.getGroupType()); + assertReferenceEquals(13, "Adults", group.getDepartment()); + assertReferenceEquals(18, "Puyallup", group.getArea()); + } + + private void assertReferenceEquals(int id, String name, Reference ref) { + assertEquals(id, ref.getId()); + assertEquals(name, ref.getName()); + } +}
\ No newline at end of file |