From 8268de0a8a73bc368d7357c2a7d898180522fbdb Mon Sep 17 00:00:00 2001 From: Frank Maritato Date: Fri, 17 Jul 2009 16:28:42 +0000 Subject: [PATCH] fixed regular expressions to work properly added string parser tests git-svn-id: https://lwes.svn.sourceforge.net/svnroot/lwes/lwes-java/trunk@141 a2f82657-cdd2-4550-bd36-68a8e7111808 --- src/org/lwes/TypeID.java | 34 ++--- tests/org/lwes/serializer/StringParserTest.java | 160 ++++++++++++++++++++++++ 2 files changed, 177 insertions(+), 17 deletions(-) create mode 100644 tests/org/lwes/serializer/StringParserTest.java diff --git a/src/org/lwes/TypeID.java b/src/org/lwes/TypeID.java index f942e26..794dcaf 100644 --- a/src/org/lwes/TypeID.java +++ b/src/org/lwes/TypeID.java @@ -1,6 +1,6 @@ package org.lwes; -/** +/** * This class contains some global variables used in various parts of * the event system. * @author Anthony Molinaro @@ -44,11 +44,11 @@ public class TypeID public final static byte INT64_TOKEN = (byte)0x07; /** * The token used by uint64 in the Event Serialization Protocol - */ + */ public final static byte UINT64_TOKEN = (byte)0x08; /** * The token used by boolean in the Event Serialization Protocol - */ + */ public final static byte BOOLEAN_TOKEN= (byte)0x09; /** @@ -86,45 +86,45 @@ public class TypeID /** * The string used by boolean in the Event Serialization Protocol */ - public final static String BOOLEAN_STRING= "boolean"; + public final static String BOOLEAN_STRING= "boolean"; /** * This is a regular expression for parsing an integer number from a string */ - public final static String SIGNED_INTEGER_REGEX = "/-?\\d+/i"; + public final static String SIGNED_INTEGER_REGEX = "-?\\d+"; /** - * This is a regular expression for parsing an unsigned integer number + * This is a regular expression for parsing an unsigned integer number * from a string */ - public final static String UNSIGNED_INTEGER_REGEX = "/\\d+(?=\\s|$)/i"; - /** + public final static String UNSIGNED_INTEGER_REGEX = "\\d+(?=\\s|$)"; + /** * This is a regular expression for matching a hexidecimal short from a string */ - public final static String HEX_SHORT_REGEX = "/0x[0-9a-fA-F]{1,4}(?=\\s|$)/i"; + public final static String HEX_SHORT_REGEX = "0x[0-9a-fA-F]{1,4}(?=\\s|$)"; /** * This is a regular expression for matching a hexidecimal int from a string */ - public final static String HEX_INT_REGEX = "/0x[0-9a-fA-F]{5,8}(?=\\s|$)/i"; + public final static String HEX_INT_REGEX = "0x[0-9a-fA-F]{5,8}(?=\\s|$)"; /** * This is a regular expression for matching a hexidecimal long from a string */ - public final static String HEX_LONG_REGEX = "/0x[0-9a-fA-F]{9,16}(?=\\s|$)/i"; + public final static String HEX_LONG_REGEX = "0x[0-9a-fA-F]{9,16}(?=\\s|$)"; /** * This is a regular expression for matching an ip address from a string */ - public final static String IP_ADDR_REGEX - = "/(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})(?=\\s|$)/i"; - /** + public final static String IP_ADDR_REGEX + = "\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b"; + /** * This is a regular expression for matching a boolean from a string */ - public final static String BOOLEAN_REGEX = "/true|false/"; + public final static String BOOLEAN_REGEX = "true|false"; /** * Simple conversion utility */ public static String byteIDToString(byte id) { - switch(id) + switch(id) { case UINT16_TOKEN : return UINT16_STRING; @@ -162,7 +162,7 @@ public class TypeID return UINT32_TOKEN; else if ( id.equals(INT32_STRING) ) return INT32_TOKEN; - else if ( id.equals(STRING_STRING) ) + else if ( id.equals(STRING_STRING) ) return STRING_TOKEN; else if ( id.equals(IPADDR_STRING) ) return IPADDR_TOKEN; diff --git a/tests/org/lwes/serializer/StringParserTest.java b/tests/org/lwes/serializer/StringParserTest.java new file mode 100644 index 0000000..ccb7a18 --- /dev/null +++ b/tests/org/lwes/serializer/StringParserTest.java @@ -0,0 +1,160 @@ +package org.lwes.serializer; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import org.junit.Test; +import org.lwes.EventSystemException; +import org.lwes.util.IPAddress; +import org.lwes.util.Log; + +/** + * @author fmaritato + */ + + +public class StringParserTest { + + @Test + public void testFromStringBOOLEAN() { + try { + Boolean b = (Boolean) StringParser.fromStringBOOLEAN("true"); + assertNotNull(b); + assertTrue(b); + } + catch (EventSystemException e) { + Log.error(e.getMessage(), e); + fail(e.getMessage()); + } + } + + @Test + public void testFromStringBYTE() { + try { + // hmm this method just returns null....? + assertNull(StringParser.fromStringBYTE("1")); + } + catch (EventSystemException e) { + Log.error(e.getMessage(), e); + fail(e.getMessage()); + } + } + + @Test + public void testFromStringINT16() { + try { + Short s = (Short) StringParser.fromStringINT16("12"); + assertNotNull(s); + assertEquals("fromStringINT16 failed", (short) 12, s.shortValue()); + } + catch (EventSystemException e) { + Log.error(e.getMessage(), e); + fail(e.getMessage()); + } + } + + @Test + public void testFromStringINT32() { + try { + long val = Integer.MAX_VALUE + 1l; + StringParser.fromStringINT32(val + ""); + } + catch (EventSystemException e) { + if (!(e.getCause() instanceof NumberFormatException)) { + fail(e.getMessage()); + } + } + + try { + int intVal = (Integer) StringParser.fromStringINT32("355567"); + assertEquals("int value was incorrect", 355567, intVal); + } + catch (EventSystemException e) { + Log.error(e.getMessage(), e); + fail(e.getMessage()); + } + } + + @Test + public void testFromStringINT64() { + try { + Long val = Long.MAX_VALUE; + Long v = (Long) StringParser.fromStringINT64(val.toString()); + assertNotNull(v); + assertEquals("fromStringINT64 failed", Long.MAX_VALUE, v.longValue()); + } + catch (EventSystemException e) { + Log.error(e.getMessage(), e); + fail(e.getMessage()); + } + } + + @Test + public void testFromStringIPADDR() { + try { + IPAddress ip = (IPAddress) StringParser.fromStringIPADDR("192.168.1.1"); + assertNotNull(ip); + assertEquals("fromStringIPADDR failed", "192.168.1.1", ip.toString()); + } + catch (EventSystemException e) { + Log.error(e.getMessage(), e); + fail(e.getMessage()); + } + } + + @Test + public void testFromStringUINT16() { + try { + Integer s = (Integer) StringParser.fromStringUINT16("65534"); + assertNotNull(s); + assertEquals("fromStringINT16 failed", 65534, s.intValue()); + + s = (Integer) StringParser.fromStringUINT16("0xFFFE"); + assertNotNull(s); + assertEquals("fromStringINT16 failed", 65534, s.intValue()); + } + catch (EventSystemException e) { + Log.error(e.getMessage(), e); + fail(e.getMessage()); + } + } + + @Test + public void testFromStringUINT32() { + try { + Long obj = (Long) StringParser.fromStringUINT32("4294967294"); + assertNotNull(obj); + assertEquals("fromStringUINT32", 4294967294l, obj.longValue()); + + obj = (Long) StringParser.fromStringUINT32("0xFFFFFFFE"); + assertNotNull(obj); + assertEquals("fromStringUINT32", 4294967294l, obj.longValue()); + } + catch (EventSystemException e) { + Log.error(e.getMessage(), e); + fail(e.getMessage()); + } + } + + @Test + public void testFromStringUINT64() { + try { + Long val = Long.MAX_VALUE; + Long v = (Long) StringParser.fromStringUINT64(val.toString()); + assertNotNull(v); + assertEquals("fromStringINT64 failed", Long.MAX_VALUE, v.longValue()); + + // now try it as a hex string... + v = (Long) StringParser.fromStringUINT64("0x7fffffffffffffff"); + assertNotNull(v); + assertEquals("fromStringINT64 failed", Long.MAX_VALUE, v.longValue()); + } + catch (EventSystemException e) { + Log.error(e.getMessage(), e); + fail(e.getMessage()); + } + } + +} -- 2.11.4.GIT