Some testing of helper classes.

fix-message-formatting
Danny van Heumen 12 years ago
parent 6a51e860ee
commit 7c275e8cb8

@ -19,7 +19,10 @@ public enum Mode
OWNER('O', ChatRoomMemberRole.OWNER),
OPERATOR('o', ChatRoomMemberRole.ADMINISTRATOR),
VOICE('v', ChatRoomMemberRole.MEMBER),
LIMIT('l', null);
LIMIT('l', null),
PRIVATE('p', null),
SECRET('s', null),
INVITE('i', null);
/**
* Find Mode instance by mode char.

@ -67,20 +67,30 @@ protected ModeParser(String modestring)
*/
private void parse(String modestring)
{
boolean adding = true;
Boolean addition = null;
for (char c : modestring.toCharArray())
{
switch (c)
{
case '+':
adding = true;
addition = true;
break;
case '-':
adding = false;
addition = false;
break;
default:
ModeEntry entry = process(adding, c);
if (addition == null)
throw new IllegalStateException(
"expect modifier (+ or -) first");
try
{
ModeEntry entry = process(addition, c);
modes.add(entry);
}
catch (ArrayIndexOutOfBoundsException e)
{
throw new IllegalArgumentException("invalid mode string provided: parameter missing", e);
}
break;
}
}
@ -108,6 +118,12 @@ private ModeEntry process(boolean add, char mode)
String[] params = (add ? new String[]
{ this.params[this.index++] } : new String[] {});
return new ModeEntry(add, Mode.LIMIT, params);
case 'p':
return new ModeEntry(add, Mode.PRIVATE);
case 's':
return new ModeEntry(add, Mode.SECRET);
case 'i':
return new ModeEntry(add, Mode.INVITE);
default:
return new ModeEntry(add, Mode.UNKNOWN, ""+mode);
}

@ -0,0 +1,217 @@
package net.java.sip.communicator.impl.protocol.irc;
import java.util.*;
import net.java.sip.communicator.impl.protocol.irc.ModeParser.ModeEntry;
import com.ircclouds.irc.api.domain.messages.*;
import junit.framework.*;
public class ModeParserTest
extends TestCase
{
protected void setUp() throws Exception
{
super.setUp();
}
public void testConstructionModeMessageNull()
{
try
{
new ModeParser((ChannelModeMessage) null);
Assert.fail("Expected NPE");
}
catch (NullPointerException e)
{
}
}
public void testConstructionStringNull()
{
try
{
new ModeParser((String) null);
Assert.fail("Expected NPE");
}
catch (NullPointerException e)
{
}
}
public void testConstructionStringEmpty()
{
ModeParser parser = new ModeParser("");
List<ModeEntry> modes = parser.getModes();
Assert.assertNotNull(modes);
Assert.assertEquals(0, modes.size());
}
public void testConstructionStringSingleBad()
{
try
{
new ModeParser("p");
Assert.fail();
}
catch (IllegalStateException e)
{
}
}
public void testConstructionStringSingleGood()
{
ModeParser parser = new ModeParser("+p");
List<ModeEntry> modes = parser.getModes();
Assert.assertNotNull(modes);
Assert.assertEquals(1, modes.size());
Assert.assertTrue(modes.get(0) instanceof ModeEntry);
Assert.assertEquals(Mode.PRIVATE, modes.get(0).getMode());
Assert.assertTrue(modes.get(0).isAdded());
Assert.assertEquals(0, modes.get(0).getParams().length);
}
public void testParseRemoval()
{
ModeParser parser = new ModeParser("-p");
List<ModeEntry> modes = parser.getModes();
Assert.assertNotNull(modes);
Assert.assertEquals(1, modes.size());
Assert.assertTrue(modes.get(0) instanceof ModeEntry);
Assert.assertEquals(Mode.PRIVATE, modes.get(0).getMode());
Assert.assertFalse(modes.get(0).isAdded());
Assert.assertEquals(0, modes.get(0).getParams().length);
}
public void testParseUnknownMode()
{
ModeParser parser = new ModeParser("+?");
List<ModeEntry> modes = parser.getModes();
Assert.assertNotNull(modes);
Assert.assertEquals(1, modes.size());
Assert.assertTrue(modes.get(0) instanceof ModeEntry);
Assert.assertEquals(Mode.UNKNOWN, modes.get(0).getMode());
Assert.assertEquals(1, modes.get(0).getParams().length);
Assert.assertEquals("?", modes.get(0).getParams()[0]);
}
public void testModeMissingExtraParameters()
{
try
{
new ModeParser("+l");
Assert.fail("this line should not be reached");
}
catch (IllegalArgumentException e)
{
// expect illegal argument exception
}
}
public void testModeExtraParameters()
{
ModeParser parser = new ModeParser("+l 123 141");
Assert.assertEquals(1, parser.getModes().size());
// Parse modes, expect 1 and ignore the extra parameter.
}
public void testModeOwner()
{
ModeParser parser = new ModeParser("+O dude");
List<ModeEntry> modes = parser.getModes();
Assert.assertNotNull(modes);
Assert.assertEquals(1, modes.size());
Assert.assertTrue(modes.get(0) instanceof ModeEntry);
Assert.assertEquals(Mode.OWNER, modes.get(0).getMode());
Assert.assertEquals(1, modes.get(0).getParams().length);
Assert.assertEquals("dude", modes.get(0).getParams()[0]);
}
public void testModeOperator()
{
ModeParser parser = new ModeParser("+o dude");
List<ModeEntry> modes = parser.getModes();
Assert.assertNotNull(modes);
Assert.assertEquals(1, modes.size());
Assert.assertTrue(modes.get(0) instanceof ModeEntry);
Assert.assertEquals(Mode.OPERATOR, modes.get(0).getMode());
Assert.assertEquals(1, modes.get(0).getParams().length);
Assert.assertEquals("dude", modes.get(0).getParams()[0]);
}
public void testModeVoice()
{
ModeParser parser = new ModeParser("+v dude");
List<ModeEntry> modes = parser.getModes();
Assert.assertNotNull(modes);
Assert.assertEquals(1, modes.size());
Assert.assertTrue(modes.get(0) instanceof ModeEntry);
Assert.assertEquals(Mode.VOICE, modes.get(0).getMode());
Assert.assertEquals(1, modes.get(0).getParams().length);
Assert.assertEquals("dude", modes.get(0).getParams()[0]);
}
public void testModeLimitAddition()
{
ModeParser parser = new ModeParser("+l 13");
List<ModeEntry> modes = parser.getModes();
Assert.assertNotNull(modes);
Assert.assertEquals(1, modes.size());
Assert.assertTrue(modes.get(0) instanceof ModeEntry);
Assert.assertEquals(Mode.LIMIT, modes.get(0).getMode());
Assert.assertEquals(1, modes.get(0).getParams().length);
Assert.assertEquals("13", modes.get(0).getParams()[0]);
}
public void testModeLimitRemoval()
{
ModeParser parser = new ModeParser("-l");
List<ModeEntry> modes = parser.getModes();
Assert.assertNotNull(modes);
Assert.assertEquals(1, modes.size());
Assert.assertTrue(modes.get(0) instanceof ModeEntry);
Assert.assertEquals(Mode.LIMIT, modes.get(0).getMode());
Assert.assertEquals(0, modes.get(0).getParams().length);
}
public void testModePrivate()
{
ModeParser parser = new ModeParser("+p");
List<ModeEntry> modes = parser.getModes();
Assert.assertNotNull(modes);
Assert.assertEquals(1, modes.size());
Assert.assertTrue(modes.get(0) instanceof ModeEntry);
Assert.assertEquals(Mode.PRIVATE, modes.get(0).getMode());
Assert.assertEquals(0, modes.get(0).getParams().length);
}
public void testModeSecret()
{
ModeParser parser = new ModeParser("+s");
List<ModeEntry> modes = parser.getModes();
Assert.assertNotNull(modes);
Assert.assertEquals(1, modes.size());
Assert.assertTrue(modes.get(0) instanceof ModeEntry);
Assert.assertEquals(Mode.SECRET, modes.get(0).getMode());
Assert.assertEquals(0, modes.get(0).getParams().length);
}
public void testModeInvite()
{
ModeParser parser = new ModeParser("+i");
List<ModeEntry> modes = parser.getModes();
Assert.assertNotNull(modes);
Assert.assertEquals(1, modes.size());
Assert.assertTrue(modes.get(0) instanceof ModeEntry);
Assert.assertEquals(Mode.INVITE, modes.get(0).getMode());
Assert.assertEquals(0, modes.get(0).getParams().length);
}
protected void tearDown() throws Exception
{
super.tearDown();
}
}

@ -0,0 +1,48 @@
package net.java.sip.communicator.impl.protocol.irc;
import net.java.sip.communicator.service.protocol.*;
import junit.framework.*;
public class ModeTest
extends TestCase
{
protected void setUp() throws Exception
{
super.setUp();
}
public void testGetSymbol()
{
Assert.assertEquals('o', Mode.OPERATOR.getSymbol());
}
public void testGetRole()
{
Assert
.assertTrue(Mode.OPERATOR.getRole() instanceof ChatRoomMemberRole);
}
public void testGetBySymbol()
{
Assert.assertSame(Mode.OPERATOR, Mode.bySymbol('o'));
}
public void testGetBySymbolNonExisting()
{
try
{
Mode.bySymbol('&');
Assert.fail("Expected IllegalArgumentException");
}
catch (IllegalArgumentException e)
{
}
}
protected void tearDown() throws Exception
{
super.tearDown();
}
}

@ -35,7 +35,8 @@ public void testSetDoneWithValue()
public void testSetDoneWithException()
{
Exception e = new IllegalStateException("the world is going to explode");
Exception e =
new IllegalStateException("the world is going to explode");
Result<Object, Exception> result = new Result<Object, Exception>();
result.setDone(e);
Assert.assertTrue(result.isDone());
@ -46,7 +47,8 @@ public void testSetDoneWithException()
public void testSetDoneWithBoth()
{
Object v = new Object();
Exception e = new IllegalStateException("the world is going to explode");
Exception e =
new IllegalStateException("the world is going to explode");
Result<Object, Exception> result = new Result<Object, Exception>();
result.setDone(v, e);
Assert.assertTrue(result.isDone());

Loading…
Cancel
Save