[vassalengine-svn-trunk] [vassalengine-svn] SF.net SVN: vassalengine:[6322] VASSAL-src/trunk
Brought to you by:
rodneykinney,
uckelman
From: <swa...@us...> - 2009-12-01 00:19:13
|
Revision: 6322 http://vassalengine.svn.sourceforge.net/vassalengine/?rev=6322&view=rev Author: swampwallaby Date: 2009-12-01 00:15:38 +0000 (Tue, 01 Dec 2009) Log Message: ----------- Improved SequenceEncoder JUnit test Add proper equals() method to NamedKeyStroke Modified Paths: -------------- VASSAL-src/trunk/src/VASSAL/tools/NamedKeyStroke.java VASSAL-src/trunk/test/VASSAL/tools/SequenceEncoderTest.java Modified: VASSAL-src/trunk/src/VASSAL/tools/NamedKeyStroke.java =================================================================== --- VASSAL-src/trunk/src/VASSAL/tools/NamedKeyStroke.java 2009-11-30 23:09:55 UTC (rev 6321) +++ VASSAL-src/trunk/src/VASSAL/tools/NamedKeyStroke.java 2009-12-01 00:15:38 UTC (rev 6322) @@ -90,27 +90,21 @@ public KeyStroke getStroke() { return stroke; } - - /** - * Compare this Named KeyStroke with a standard KeyStroke. They are - * equals if the then allocated KeyStroke for the NamedKeyStroke - * equals the supplied KeyStroke. - * - * @param stroke - * @return - */ - public boolean equals(KeyStroke stroke) { - final KeyStroke a = getKeyStroke(); - if (a == null) { - return stroke == null; + + public boolean equals(Object o) { + if (o instanceof NamedKeyStroke) { + return getKeyStroke().equals(((NamedKeyStroke) o).getKeyStroke()); } - return a.equals(stroke); + else if (o instanceof KeyStroke) { + final KeyStroke a = getKeyStroke(); + if (a == null) { + return o == null; + } + return a.equals(o); + } + return false; } - public boolean equals(NamedKeyStroke stroke) { - return getKeyStroke().equals(stroke.getKeyStroke()); - } - /** * Return the allocated KeyStroke associated with this KeyStroke */ Modified: VASSAL-src/trunk/test/VASSAL/tools/SequenceEncoderTest.java =================================================================== --- VASSAL-src/trunk/test/VASSAL/tools/SequenceEncoderTest.java 2009-11-30 23:09:55 UTC (rev 6321) +++ VASSAL-src/trunk/test/VASSAL/tools/SequenceEncoderTest.java 2009-12-01 00:15:38 UTC (rev 6322) @@ -18,15 +18,17 @@ */ package VASSAL.tools; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import java.awt.Color; import java.awt.event.KeyEvent; +import java.util.Arrays; +import java.util.NoSuchElementException; import javax.swing.KeyStroke; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertTrue; - import org.junit.Test; import VASSAL.configure.PropertyExpression; @@ -36,8 +38,97 @@ /** * Test basic Sequence Encoder/Decoder functionality */ + @Test - public void testEncodeDecode() { + public void testEncodeDecodeBoolean() { + final boolean VALUE = true; + final SequenceEncoder se = new SequenceEncoder(',').append(VALUE); + final SequenceEncoder.Decoder sd = new SequenceEncoder.Decoder(se.getValue(), ','); + assertEquals(sd.nextBoolean(false), VALUE); + } + + @Test + public void testEncodeDecodeInt() { + final int VALUE = 42; + final SequenceEncoder se = new SequenceEncoder(',').append(VALUE); + final SequenceEncoder.Decoder sd = new SequenceEncoder.Decoder(se.getValue(), ','); + assertEquals(sd.nextInt(999), VALUE); + } + + @Test + public void testEncodeDecodeDouble() { + final double VALUE = 3.1415926535; + final SequenceEncoder se = new SequenceEncoder(',').append(VALUE); + final SequenceEncoder.Decoder sd = new SequenceEncoder.Decoder(se.getValue(), ','); + assertEquals(Double.toString(sd.nextDouble(99.9)), Double.toString(VALUE)); + } + + @Test + public void testEncodeDecodeLong() { + final long VALUE = 167772173; + final SequenceEncoder se = new SequenceEncoder(',').append(VALUE); + final SequenceEncoder.Decoder sd = new SequenceEncoder.Decoder(se.getValue(), ','); + assertEquals(sd.nextLong(999), VALUE); + } + + @Test + public void testEncodeDecodeColor() { + final Color VALUE = new Color(32, 145, 212); + final SequenceEncoder se = new SequenceEncoder(',').append(VALUE); + final SequenceEncoder.Decoder sd = new SequenceEncoder.Decoder(se.getValue(), ','); + assertEquals(sd.nextColor(Color.red), VALUE); + } + + @Test + public void testEncodeDecodeKeyStroke() { + final KeyStroke VALUE = KeyStroke.getKeyStroke(KeyEvent.VK_F10, KeyEvent.CTRL_MASK); + final SequenceEncoder se = new SequenceEncoder(',').append(VALUE); + final SequenceEncoder.Decoder sd = new SequenceEncoder.Decoder(se.getValue(), ','); + assertEquals(sd.nextKeyStroke('X'), VALUE); + } + + @Test + public void testEncodeDecodeNamedKeyStroke_1() { + final NamedKeyStroke VALUE = new NamedKeyStroke(KeyStroke.getKeyStroke(KeyEvent.VK_F10, KeyEvent.CTRL_MASK)); + final SequenceEncoder se = new SequenceEncoder(',').append(VALUE); + final SequenceEncoder.Decoder sd = new SequenceEncoder.Decoder(se.getValue(), ','); + assertEquals(sd.nextNamedKeyStroke(), VALUE); + } + + @Test + public void testEncodeDecodeNamedKeyStroke_2() { + final NamedKeyStroke VALUE = new NamedKeyStroke("#Control"); + final SequenceEncoder se = new SequenceEncoder(',').append(VALUE); + final SequenceEncoder.Decoder sd = new SequenceEncoder.Decoder(se.getValue(), ','); + assertEquals(sd.nextNamedKeyStroke(), VALUE); + } + + @Test + public void testEncodeDecodeString() { + final String VALUE = "How many ,'s in this sentence?\n"; + final SequenceEncoder se = new SequenceEncoder(',').append(VALUE); + final SequenceEncoder.Decoder sd = new SequenceEncoder.Decoder(se.getValue(), ','); + assertEquals(sd.nextToken(), VALUE); + } + + @Test + public void testEncodeDecodeStringArray() { + final String[] VALUE = new String[] {"line 1", "line 2,", "line 3'", "line 4\n"}; + final SequenceEncoder se = new SequenceEncoder(',').append(VALUE); + final SequenceEncoder.Decoder sd = new SequenceEncoder.Decoder(se.getValue(), ','); + assertArrayEquals(sd.nextStringArray(0), VALUE); + } + + @Test + public void testEncodeDecodePropertyExpression() { + final PropertyExpression VALUE = new PropertyExpression("PieceName>=2"); + final SequenceEncoder se = new SequenceEncoder(',').append(VALUE); + final SequenceEncoder.Decoder sd = new SequenceEncoder.Decoder(se.getValue(), ','); + assertEquals(new PropertyExpression(sd.nextToken()), VALUE); + } + + @Test(expected=NoSuchElementException.class) + public void testEncodeDecodeMulti() { final boolean booleanIn = true; final int intIn = 42; @@ -66,16 +157,20 @@ final SequenceEncoder.Decoder sd = new SequenceEncoder.Decoder(se.getValue(), ','); - assertEquals(booleanIn, sd.nextBoolean(false)); - assertEquals(intIn, sd.nextInt(999)); - assertEquals(Double.toString(doubleIn), Double.toString(sd.nextDouble(99.9))); - assertEquals(longIn, sd.nextLong(999)); - assertEquals(colorIn, sd.nextColor(Color.red)); - assertEquals(keyStrokeIn, sd.nextKeyStroke('X')); - assertTrue(namedKeyStrokein1.equals(sd.nextNamedKeyStroke())); - assertTrue(namedKeyStrokein2.equals(sd.nextNamedKeyStroke())); - assertEquals(stringIn, sd.nextToken()); - assertArrayEquals(stringArrayIn, sd.nextStringArray(0)); - assertEquals(propertyExpressionIn, new PropertyExpression(sd.nextToken())); + assertTrue( + booleanIn == sd.nextBoolean(false) && + intIn == sd.nextInt(999) && + Double.toString(doubleIn).equals(Double.toString(sd.nextDouble(99.9))) && + longIn == sd.nextLong(999) && + colorIn.equals(sd.nextColor(Color.red)) && + keyStrokeIn.equals(sd.nextKeyStroke('X')) && + namedKeyStrokein1.equals(sd.nextNamedKeyStroke()) && + namedKeyStrokein2.equals(sd.nextNamedKeyStroke()) && + stringIn.equals(sd.nextToken()) && + Arrays.equals(stringArrayIn, sd.nextStringArray(0)) && + propertyExpressionIn.equals(new PropertyExpression(sd.nextToken())) + ); + + sd.nextToken(); // Should be nothing left - should throw a NoSuchElementException } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Join us December 9, 2009 for the Red Hat Virtual Experience, a free event focused on virtualization and cloud computing. Attend in-depth sessions from your desk. Your couch. Anywhere. http://p.sf.net/sfu/redhat-sfdev2dev _______________________________________________ vassalengine-svn mailing list vas...@li... https://lists.sourceforge.net/lists/listinfo/vassalengine-svn |