mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2025-12-05 04:31:07 +01:00
Add integration test for MultiUserChat
SMACK-888 has a mention of unreachable code and is now solved
under commit 0f7b7df.
This integration test tests those class entities which were to
be set by previously stated unreachable code.
This commit is contained in:
parent
ccbc0922ad
commit
1d49de6b60
1 changed files with 39 additions and 0 deletions
|
|
@ -20,6 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeoutException;
|
||||||
|
|
||||||
import org.jivesoftware.smack.MessageListener;
|
import org.jivesoftware.smack.MessageListener;
|
||||||
import org.jivesoftware.smack.SmackException.NoResponseException;
|
import org.jivesoftware.smack.SmackException.NoResponseException;
|
||||||
|
|
@ -39,6 +40,7 @@ import org.igniterealtime.smack.inttest.SmackIntegrationTestEnvironment;
|
||||||
import org.igniterealtime.smack.inttest.TestNotPossibleException;
|
import org.igniterealtime.smack.inttest.TestNotPossibleException;
|
||||||
import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest;
|
import org.igniterealtime.smack.inttest.annotations.SmackIntegrationTest;
|
||||||
import org.igniterealtime.smack.inttest.util.ResultSyncPoint;
|
import org.igniterealtime.smack.inttest.util.ResultSyncPoint;
|
||||||
|
import org.igniterealtime.smack.inttest.util.SimpleResultSyncPoint;
|
||||||
import org.jxmpp.jid.DomainBareJid;
|
import org.jxmpp.jid.DomainBareJid;
|
||||||
import org.jxmpp.jid.EntityBareJid;
|
import org.jxmpp.jid.EntityBareJid;
|
||||||
import org.jxmpp.jid.impl.JidCreate;
|
import org.jxmpp.jid.impl.JidCreate;
|
||||||
|
|
@ -120,4 +122,41 @@ public class MultiUserChatIntegrationTest extends AbstractSmackIntegrationTest {
|
||||||
mucAsSeenByOne.leave();
|
mucAsSeenByOne.leave();
|
||||||
mucAsSeenByTwo.leave();
|
mucAsSeenByTwo.leave();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SmackIntegrationTest
|
||||||
|
public void mucDestroyTest() throws TimeoutException, Exception {
|
||||||
|
|
||||||
|
EntityBareJid mucAddress = JidCreate.entityBareFrom(Localpart.from("smack-inttest-join-leave-" + randomString),
|
||||||
|
mucService.getDomain());
|
||||||
|
|
||||||
|
MultiUserChat muc = mucManagerOne.getMultiUserChat(mucAddress);
|
||||||
|
muc.join(Resourcepart.from("nick-one"));
|
||||||
|
|
||||||
|
final SimpleResultSyncPoint mucDestroyed = new SimpleResultSyncPoint();
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
DefaultUserStatusListener userStatusListener = new DefaultUserStatusListener() {
|
||||||
|
@Override
|
||||||
|
public void roomDestroyed(MultiUserChat alternateMUC, String reason) {
|
||||||
|
mucDestroyed.signal();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
muc.addUserStatusListener(userStatusListener);
|
||||||
|
|
||||||
|
assertTrue(mucManagerOne.getJoinedRooms().size() == 1);
|
||||||
|
assertTrue(muc.getOccupantsCount() == 1);
|
||||||
|
assertTrue(muc.getNickname() != null);
|
||||||
|
|
||||||
|
try {
|
||||||
|
muc.destroy("Dummy reason", null);
|
||||||
|
mucDestroyed.waitForResult(timeout);
|
||||||
|
} finally {
|
||||||
|
muc.removeUserStatusListener(userStatusListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
assertTrue(mucManagerOne.getJoinedRooms().size() == 0);
|
||||||
|
assertTrue(muc.getOccupantsCount() == 0);
|
||||||
|
assertTrue(muc.getNickname() == null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue