//Dstl (c) Crown Copyright 2017 package uk.gov.dstl.baleen.uima.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Properties; import java.util.TimeZone; import org.apache.commons.lang.time.DateUtils; import org.junit.Test; import uk.gov.dstl.baleen.uima.utils.StringToObject; /** * */ public class StringToObjectTest { @Test public void testDate() { Date testDate = new Date(); testDate = DateUtils.truncate(testDate, Calendar.SECOND); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); sdf.setTimeZone(TimeZone.getTimeZone("UTC")); assertTrue(StringToObject.convertStringToObject(sdf.format(testDate)) instanceof Date); assertEquals(testDate, StringToObject.convertStringToObject(sdf.format(testDate))); sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); assertTrue(StringToObject.convertStringToObject(sdf.format(testDate)) instanceof Date); assertEquals(testDate, StringToObject.convertStringToObject(sdf.format(testDate))); sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); sdf.setTimeZone(TimeZone.getTimeZone("UTC")); assertTrue(StringToObject.convertStringToObject(sdf.format(testDate)) instanceof Date); assertEquals(testDate, StringToObject.convertStringToObject(sdf.format(testDate))); } @Test public void testDateDisabled(){ Date testDate = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S"); sdf.setTimeZone(TimeZone.getTimeZone("UTC")); Properties disableDate = new Properties(); disableDate.put("allowDates", false); assertTrue(StringToObject.convertStringToObject(sdf.format(testDate), disableDate) instanceof String); assertEquals(sdf.format(testDate),StringToObject.convertStringToObject(sdf.format(testDate), disableDate)); } @Test public void testInteger(){ assertTrue(StringToObject.convertStringToObject("1") instanceof Integer); assertEquals(new Integer(1), StringToObject.convertStringToObject("1")); assertTrue(StringToObject.convertStringToObject("-5") instanceof Integer); assertEquals(new Integer(-5), StringToObject.convertStringToObject("-5")); } @Test public void testDouble(){ assertTrue(StringToObject.convertStringToObject("1.0") instanceof Double); assertEquals(new Double(1.0), StringToObject.convertStringToObject("1.0")); assertTrue(StringToObject.convertStringToObject("-1.0") instanceof Double); assertEquals(new Double(-1.0), StringToObject.convertStringToObject("-1.0")); assertTrue(StringToObject.convertStringToObject("43.5") instanceof Double); assertEquals(new Double(43.5), StringToObject.convertStringToObject("43.5")); } @Test public void testNumberPrecedingZero(){ Properties precedingZero = new Properties(); precedingZero.put("precedingZeroIsntNumber", false); assertTrue(StringToObject.convertStringToObject("01234") instanceof String); assertTrue(StringToObject.convertStringToObject("01234", precedingZero) instanceof Integer); assertTrue(StringToObject.convertStringToObject("0.1234") instanceof Double); assertTrue(StringToObject.convertStringToObject("0.1234", precedingZero) instanceof Double); } @Test public void testBoolean(){ assertTrue(StringToObject.convertStringToObject("true") instanceof Boolean); assertTrue((Boolean)StringToObject.convertStringToObject("true")); assertFalse((Boolean)StringToObject.convertStringToObject("false")); assertTrue((Boolean)StringToObject.convertStringToObject("True")); assertFalse((Boolean)StringToObject.convertStringToObject("False")); assertTrue((Boolean)StringToObject.convertStringToObject("TRUE")); assertFalse((Boolean)StringToObject.convertStringToObject("FALSE")); assertFalse(StringToObject.convertStringToObject("something") instanceof Boolean); } @Test public void testString(){ assertTrue(StringToObject.convertStringToObject("something") instanceof String); assertTrue(StringToObject.convertStringToObject("") instanceof String); } @Test public void testNull(){ assertNull(StringToObject.convertStringToObject(null)); } }