Search in sources :

Example 1 with UserGroup

use of com.github.jamesnetherton.zulip.client.api.user.UserGroup in project zulip-java-client by jamesnetherton.

the class ZulipIntegrationTestBase method afterEach.

@AfterEach
public void afterEach() throws Exception {
    if (zulip != null) {
        // Clean up messages
        List<Message> messages = zulip.messages().getMessages(100, 0, Anchor.NEWEST).execute();
        if (messages != null) {
            for (Message message : messages) {
                try {
                    zulip.messages().deleteMessage(message.getId()).execute();
                } catch (ZulipClientException e) {
                // Ignore
                }
            }
        }
        List<Message> privateMessages = zulip.messages().getMessages(100, 0, Anchor.NEWEST).withNarrows(Narrow.of("is", "private")).execute();
        if (privateMessages != null) {
            for (Message message : privateMessages) {
                try {
                    zulip.messages().deleteMessage(message.getId()).execute();
                } catch (ZulipClientException e) {
                // Ignore
                }
            }
        }
        // Clean up streams
        List<Stream> streams = zulip.streams().getAll().withIncludeDefault(false).execute();
        if (streams != null) {
            for (Stream stream : streams) {
                try {
                    zulip.streams().delete(stream.getStreamId()).execute();
                } catch (ZulipClientException e) {
                // Ignore
                }
            }
        }
        // Clean up user groups
        List<UserGroup> groups = zulip.users().getUserGroups().execute();
        if (groups != null) {
            for (UserGroup group : groups) {
                try {
                    zulip.users().deleteUserGroup(group.getId()).execute();
                } catch (ZulipClientException e) {
                // Ignore
                }
            }
        }
        // Clean up profile fields
        List<ProfileField> fields = zulip.server().getCustomProfileFields().execute();
        if (fields != null) {
            for (ProfileField field : fields) {
                try {
                    zulip.server().deleteCustomProfileField(field.getId()).execute();
                } catch (ZulipClientException e) {
                // Ignore
                }
            }
        }
    }
    // Clean up drafts
    List<Draft> drafts = zulip.drafts().getDrafts().execute();
    if (drafts != null) {
        for (Draft draft : drafts) {
            try {
                zulip.drafts().deleteDraft(draft.getId()).execute();
            } catch (ZulipClientException e) {
            // Ignore
            }
        }
    }
}
Also used : ZulipClientException(com.github.jamesnetherton.zulip.client.exception.ZulipClientException) Draft(com.github.jamesnetherton.zulip.client.api.draft.Draft) Message(com.github.jamesnetherton.zulip.client.api.message.Message) ProfileField(com.github.jamesnetherton.zulip.client.api.server.ProfileField) Stream(com.github.jamesnetherton.zulip.client.api.stream.Stream) UserGroup(com.github.jamesnetherton.zulip.client.api.user.UserGroup) AfterEach(org.junit.jupiter.api.AfterEach)

Example 2 with UserGroup

use of com.github.jamesnetherton.zulip.client.api.user.UserGroup in project zulip-java-client by jamesnetherton.

the class ZulipUserIT method userGroupCrud.

@Test
public void userGroupCrud() throws ZulipClientException {
    // Create group
    zulip.users().createUserGroup("Test Group Name", "Test Group Description", ownUser.getUserId()).execute();
    // Get group
    List<UserGroup> groups = zulip.users().getUserGroups().execute();
    assertEquals(1, groups.size());
    UserGroup group = groups.get(0);
    assertEquals("Test Group Name", group.getName());
    assertEquals("Test Group Description", group.getDescription());
    assertTrue(group.getId() > 0);
    List<Long> members = group.getMembers();
    assertEquals(1, members.size());
    assertTrue(members.contains(ownUser.getUserId()));
    // Update group
    zulip.users().updateUserGroup("Updated Group Name", "Updated Group Description", group.getId()).execute();
    groups = zulip.users().getUserGroups().execute();
    assertEquals(1, groups.size());
    group = groups.get(0);
    assertEquals("Updated Group Name", group.getName());
    assertEquals("Updated Group Description", group.getDescription());
    // Add new user to group
    String id = UUID.randomUUID().toString().split("-")[0];
    zulip.users().createUser(id + "@test.com", id, "T00s3cr3t").execute();
    List<User> users = zulip.users().getAllUsers().execute();
    User createdUser = users.stream().filter(User::isActive).filter(u -> u.getEmail().equals(id + "@test.com")).findFirst().get();
    assertNotNull(createdUser);
    zulip.users().addUsersToGroup(group.getId(), createdUser.getUserId()).execute();
    groups = zulip.users().getUserGroups().execute();
    group = groups.get(0);
    members = group.getMembers();
    assertEquals(2, members.size());
    assertTrue(members.contains(ownUser.getUserId()));
    assertTrue(members.contains(createdUser.getUserId()));
    // Remove user from group
    zulip.users().removeUsersFromGroup(group.getId(), createdUser.getUserId()).execute();
    groups = zulip.users().getUserGroups().execute();
    group = groups.get(0);
    members = group.getMembers();
    assertEquals(1, members.size());
    assertTrue(members.contains(ownUser.getUserId()));
    // Delete group
    zulip.users().deleteUserGroup(group.getId()).execute();
    groups = zulip.users().getUserGroups().execute();
    assertTrue(groups.isEmpty());
}
Also used : User(com.github.jamesnetherton.zulip.client.api.user.User) UserGroup(com.github.jamesnetherton.zulip.client.api.user.UserGroup) Test(org.junit.jupiter.api.Test)

Aggregations

UserGroup (com.github.jamesnetherton.zulip.client.api.user.UserGroup)2 Draft (com.github.jamesnetherton.zulip.client.api.draft.Draft)1 Message (com.github.jamesnetherton.zulip.client.api.message.Message)1 ProfileField (com.github.jamesnetherton.zulip.client.api.server.ProfileField)1 Stream (com.github.jamesnetherton.zulip.client.api.stream.Stream)1 User (com.github.jamesnetherton.zulip.client.api.user.User)1 ZulipClientException (com.github.jamesnetherton.zulip.client.exception.ZulipClientException)1 AfterEach (org.junit.jupiter.api.AfterEach)1 Test (org.junit.jupiter.api.Test)1