/* * Jitsi, the OpenSource Java VoIP and Instant Messaging client. * * Copyright @ 2015 Atlassian Pty Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.java.sip.communicator.impl.protocol.irc; import junit.framework.*; import net.java.sip.communicator.service.protocol.*; import org.easymock.*; public class ChatRoomMemberIrcImplTest extends TestCase { public void testConstructorNullProvider() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); try { new ChatRoomMemberIrcImpl(null, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.fail("should throw IAE for parent provider instance"); } catch (IllegalArgumentException e) { // this is good } } public void testConstructorNullChatRoom() { ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); try { new ChatRoomMemberIrcImpl(provider, null, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.fail("should throw IAE for ChatRoom instance"); } catch (IllegalArgumentException e) { // this is good } } public void testConstructorNullContactId() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); try { new ChatRoomMemberIrcImpl(provider, chatroom, null, "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.fail("should throw IAE for ChatRoom instance"); } catch (IllegalArgumentException e) { // this is good } } public void testConstructorNullIdent() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); try { new ChatRoomMemberIrcImpl(provider, chatroom, "user", null, "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.fail("should throw IAE for ChatRoom instance"); } catch (IllegalArgumentException e) { // this is good } } public void testConstructorNullHostname() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); try { new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", null, ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.fail("should throw IAE for ChatRoom instance"); } catch (IllegalArgumentException e) { // this is good } } public void testConstructorNullRole() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); try { new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", null, IrcStatusEnum.ONLINE); Assert.fail("should throw IAE for ChatRoom instance"); } catch (IllegalArgumentException e) { // this is good } } public void testConstructorSuccessful() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); Assert.assertNotNull(new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE)); } public void testCheckGetters() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertEquals(provider, member.getProtocolProvider()); Assert.assertEquals(chatroom, member.getChatRoom()); Assert.assertEquals("user", member.getContactAddress()); Assert.assertEquals("user", member.getName()); Assert.assertSame(ChatRoomMemberRole.SILENT_MEMBER, member.getRole()); } public void testNameNull() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertEquals("user", member.getContactAddress()); Assert.assertEquals("user", member.getName()); try { member.setName(null); Assert.fail("expected IAE to be thrown"); } catch (IllegalArgumentException e) { // this is good } } public void testNameChange() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertEquals("user", member.getContactAddress()); Assert.assertEquals("user", member.getName()); member.setName("myNewName"); Assert.assertEquals("myNewName", member.getContactAddress()); Assert.assertEquals("myNewName", member.getName()); } public void testRoleNull() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); member.setRole(null); } public void testRoleUnchange() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertSame(ChatRoomMemberRole.SILENT_MEMBER, member.getRole()); member.setRole(ChatRoomMemberRole.ADMINISTRATOR); Assert.assertSame(ChatRoomMemberRole.SILENT_MEMBER, member.getRole()); } public void testAddSignificantRole() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertSame(ChatRoomMemberRole.SILENT_MEMBER, member.getRole()); member.addRole(ChatRoomMemberRole.ADMINISTRATOR); Assert.assertSame(ChatRoomMemberRole.ADMINISTRATOR, member.getRole()); } public void testRemoveSignificantRole() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); member.addRole(ChatRoomMemberRole.ADMINISTRATOR); Assert.assertSame(ChatRoomMemberRole.ADMINISTRATOR, member.getRole()); member.removeRole(ChatRoomMemberRole.ADMINISTRATOR); Assert.assertSame(ChatRoomMemberRole.SILENT_MEMBER, member.getRole()); } public void testAddInsignificantRole() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.ADMINISTRATOR, IrcStatusEnum.ONLINE); Assert.assertSame(ChatRoomMemberRole.ADMINISTRATOR, member.getRole()); member.addRole(ChatRoomMemberRole.MEMBER); Assert.assertSame(ChatRoomMemberRole.ADMINISTRATOR, member.getRole()); } public void testRemoveInsignificantRole() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.ADMINISTRATOR, IrcStatusEnum.ONLINE); member.addRole(ChatRoomMemberRole.MEMBER); Assert.assertSame(ChatRoomMemberRole.ADMINISTRATOR, member.getRole()); member.removeRole(ChatRoomMemberRole.MEMBER); Assert.assertSame(ChatRoomMemberRole.ADMINISTRATOR, member.getRole()); } public void testGetContact() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); OperationSetPersistentPresenceIrcImpl pp = EasyMock.createMock(OperationSetPersistentPresenceIrcImpl.class); EasyMock.expect(provider.getPersistentPresence()).andReturn(pp); EasyMock.replay(provider); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertNull(member.getContact()); } public void testGetAvatar() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertNull(member.getAvatar()); } public void testEqualsSame() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertTrue(member.equals(member)); } public void testEqualsNull() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertFalse(member.equals(null)); } public void testEqualsObject() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertFalse(member.equals(new Object())); } public void testEqualsSameUserDifferentProvider() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member1 = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); ProtocolProviderServiceIrcImpl provider2 = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member2 = new ChatRoomMemberIrcImpl(provider2, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertFalse(member1.equals(member2)); } public void testEqualsSameProviderDifferentUser() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member1 = new ChatRoomMemberIrcImpl(provider, chatroom, "user", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); ChatRoomMemberIrcImpl member2 = new ChatRoomMemberIrcImpl(provider, chatroom, "susy", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertFalse(member1.equals(member2)); } public void testEqualsTrue() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member1 = new ChatRoomMemberIrcImpl(provider, chatroom, "susy", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); ChatRoomMemberIrcImpl member2 = new ChatRoomMemberIrcImpl(provider, chatroom, "susy", "user", "host.name", ChatRoomMemberRole.SILENT_MEMBER, IrcStatusEnum.ONLINE); Assert.assertTrue(member1.equals(member2)); } public void testHashcodeNotFailing() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "ET", "user", "host.name", ChatRoomMemberRole.ADMINISTRATOR, IrcStatusEnum.ONLINE); member.hashCode(); } public void testGetIdent() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "ET", "user", "host.name", ChatRoomMemberRole.ADMINISTRATOR, IrcStatusEnum.ONLINE); Assert.assertEquals("user", member.getIdent()); } public void testGetHostname() { ChatRoom chatroom = EasyMock.createMock(ChatRoom.class); ProtocolProviderServiceIrcImpl provider = EasyMock.createMock(ProtocolProviderServiceIrcImpl.class); ChatRoomMemberIrcImpl member = new ChatRoomMemberIrcImpl(provider, chatroom, "ET", "user", "host.name", ChatRoomMemberRole.ADMINISTRATOR, IrcStatusEnum.ONLINE); Assert.assertEquals("host.name", member.getHostname()); } }