public void testDateConversion() throws ParseException { java.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis()); assertEquals(sqlDate, converter.convertValue(context, null, null, null, sqlDate, Date.class)); SimpleDateFormat format = new SimpleDateFormat("mm/dd/yyyy hh:mm:ss"); Date date = format.parse("01/10/2001 00:00:00"); String dateStr = (String) converter.convertValue(context, null, null, null, date, String.class); Date date2 = (Date) converter.convertValue(context, null, null, null, dateStr, Date.class); assertEquals(date, date2); }
public void testStringToCustomTypeUsingCustomConverter() { // the converter needs to be registered as the Bar.class converter // it won't be detected from the Foo-conversion.properties // because the Foo-conversion.properties file is only used when converting a property of Foo converter.registerConverter(Bar.class.getName(), new FooBarConverter()); Bar bar = (Bar) converter.convertValue(null, null, null, null, "blah:123", Bar.class); assertNotNull("conversion failed", bar); assertEquals(123, bar.getSomethingElse()); assertEquals("blah", bar.getTitle()); }
public void testFindConversionErrorMessage() { ModelDrivenAnnotationAction action = new ModelDrivenAnnotationAction(); ValueStack stack = ActionContext.getContext().getValueStack(); stack.push(action); stack.push(action.getModel()); String message = XWorkConverter.getConversionErrorMessage("birth", stack); assertNotNull(message); assertEquals("Invalid date for birth.", message); message = XWorkConverter.getConversionErrorMessage("foo", stack); assertNotNull(message); assertEquals("Invalid field value for field \"foo\".", message); }
public void testLocalizedDateConversion() throws Exception { Date date = new Date(System.currentTimeMillis()); Locale locale = Locale.GERMANY; DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, locale); String dateString = df.format(date); context.put(ActionContext.LOCALE, locale); assertEquals(dateString, converter.convertValue(context, null, null, null, date, String.class)); }
public void testStringArrayToSet() { Set<String> list = new HashSet<>(); list.add("foo"); list.add("bar"); list.add("baz"); assertEquals( list, converter.convertValue( context, null, null, null, new String[] {"foo", "bar", "bar", "baz"}, Set.class)); }
public void testStringArrayToCollection() { List<String> list = new ArrayList<>(); list.add("foo"); list.add("bar"); list.add("baz"); assertEquals( list, converter.convertValue( context, null, null, null, new String[] {"foo", "bar", "baz"}, Collection.class)); }
public void testStringArrayToPrimitives() throws OgnlException { long[] longs = (long[]) converter.convertValue( context, null, null, null, new String[] {"123", "456"}, long[].class); assertNotNull(longs); assertTrue(Arrays.equals(new long[] {123, 456}, longs)); int[] ints = (int[]) converter.convertValue( context, null, null, null, new String[] {"123", "456"}, int[].class); assertNotNull(ints); assertTrue(Arrays.equals(new int[] {123, 456}, ints)); double[] doubles = (double[]) converter.convertValue( context, null, null, null, new String[] {"123", "456"}, double[].class); assertNotNull(doubles); assertTrue(Arrays.equals(new double[] {123, 456}, doubles)); float[] floats = (float[]) converter.convertValue( context, null, null, null, new String[] {"123", "456"}, float[].class); assertNotNull(floats); assertTrue(Arrays.equals(new float[] {123, 456}, floats)); boolean[] booleans = (boolean[]) converter.convertValue( context, null, null, null, new String[] {"true", "false"}, boolean[].class); assertNotNull(booleans); assertTrue(Arrays.equals(new boolean[] {true, false}, booleans)); }
public void testStringArrayToPrimitiveWrappers() { Long[] longs = (Long[]) converter.convertValue( context, null, null, null, new String[] {"123", "456"}, Long[].class); assertNotNull(longs); assertTrue(Arrays.equals(new Long[] {123L, 456L}, longs)); Integer[] ints = (Integer[]) converter.convertValue( context, null, null, null, new String[] {"123", "456"}, Integer[].class); assertNotNull(ints); assertTrue(Arrays.equals(new Integer[] {123, 456}, ints)); Double[] doubles = (Double[]) converter.convertValue( context, null, null, null, new String[] {"123", "456"}, Double[].class); assertNotNull(doubles); assertTrue(Arrays.equals(new Double[] {123D, 456D}, doubles)); Float[] floats = (Float[]) converter.convertValue( context, null, null, null, new String[] {"123", "456"}, Float[].class); assertNotNull(floats); assertTrue(Arrays.equals(new Float[] {123F, 456F}, floats)); Boolean[] booleans = (Boolean[]) converter.convertValue( context, null, null, null, new String[] {"true", "false"}, Boolean[].class); assertNotNull(booleans); assertTrue(Arrays.equals(new Boolean[] {Boolean.TRUE, Boolean.FALSE}, booleans)); }
public void testStringToPrimitives() { assertEquals( new Long(123), converter.convertValue(context, null, null, null, "123", long.class)); assertEquals( new Integer(123), converter.convertValue(context, null, null, null, "123", int.class)); assertEquals( new Double(123.5), converter.convertValue(context, null, null, null, "123.5", double.class)); assertEquals( new Float(123.5), converter.convertValue(context, null, null, null, "123.5", float.class)); assertEquals(false, converter.convertValue(context, null, null, null, "false", boolean.class)); assertEquals(true, converter.convertValue(context, null, null, null, "true", boolean.class)); assertEquals( new BigDecimal(123.5), converter.convertValue(context, null, null, null, "123.5", BigDecimal.class)); assertEquals( new BigInteger("123"), converter.convertValue(context, null, null, null, "123", BigInteger.class)); }
public void testStringToPrimitiveWrappers() { assertEquals( new Long(123), converter.convertValue(context, null, null, null, "123", Long.class)); assertEquals( new Integer(123), converter.convertValue(context, null, null, null, "123", Integer.class)); assertEquals( new Double(123.5), converter.convertValue(context, null, null, null, "123.5", Double.class)); assertEquals( new Float(123.5), converter.convertValue(context, null, null, null, "123.5", float.class)); assertEquals(false, converter.convertValue(context, null, null, null, "false", Boolean.class)); assertEquals(true, converter.convertValue(context, null, null, null, "true", Boolean.class)); }
public void testFindConversionMappingForInterface() { ModelDrivenAnnotationAction2 action = new ModelDrivenAnnotationAction2(); ValueStack stack = ActionContext.getContext().getValueStack(); stack.push(action); stack.push(action.getModel()); Map<String, Object> ognlStackContext = stack.getContext(); ognlStackContext.put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE); String value = "asdf:123"; Object o = converter.convertValue( ognlStackContext, action.getModel(), null, "barObj", value, Bar.class); assertNotNull(o); assertTrue("class is: " + o.getClass(), o instanceof Bar); Bar b = (Bar) o; assertEquals(value, b.getTitle() + ":" + b.getSomethingElse()); }
public void testFieldErrorMessageAddedWhenConversionFailsOnModelDriven() { ModelDrivenAnnotationAction action = new ModelDrivenAnnotationAction(); ValueStack stack = ActionContext.getContext().getValueStack(); stack.push(action); stack.push(action.getModel()); Map<String, Object> ognlStackContext = stack.getContext(); ognlStackContext.put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE); String[] value = new String[] {"invalid date"}; assertEquals( "Conversion should have failed.", OgnlRuntime.NoConversionPossible, converter.convertValue(ognlStackContext, action, null, "birth", value, Date.class)); stack.pop(); stack.pop(); Map conversionErrors = (Map) ognlStackContext.get(ActionContext.CONVERSION_ERRORS); assertNotNull(conversionErrors); assertEquals(1, conversionErrors.size()); assertNotNull(conversionErrors.get("birth")); assertEquals(value, conversionErrors.get("birth")); }
public void testFieldErrorMessageAddedForComplexProperty() { SimpleAnnotationAction action = new SimpleAnnotationAction(); action.setBean(new AnnotatedTestBean()); ValueStack stack = ActionContext.getContext().getValueStack(); stack.push(action); Map<String, Object> ognlStackContext = stack.getContext(); ognlStackContext.put(XWorkConverter.REPORT_CONVERSION_ERRORS, Boolean.TRUE); ognlStackContext.put(XWorkConverter.CONVERSION_PROPERTY_FULLNAME, "bean.birth"); String[] value = new String[] {"invalid date"}; assertEquals( "Conversion should have failed.", OgnlRuntime.NoConversionPossible, converter.convertValue( ognlStackContext, action.getBean(), null, "birth", value, Date.class)); stack.pop(); Map conversionErrors = (Map) stack.getContext().get(ActionContext.CONVERSION_ERRORS); assertNotNull(conversionErrors); assertTrue(conversionErrors.size() == 1); assertEquals(value, conversionErrors.get("bean.birth")); }
public void testArrayToNumberConversion() { String[] value = new String[] {"12345"}; assertEquals( new Integer(12345), converter.convertValue(context, null, null, null, value, Integer.class)); assertEquals( new Long(12345), converter.convertValue(context, null, null, null, value, Long.class)); value[0] = "123.45"; assertEquals( new Float(123.45), converter.convertValue(context, null, null, null, value, Float.class)); assertEquals( new Double(123.45), converter.convertValue(context, null, null, null, value, Double.class)); value[0] = "1234567890123456789012345678901234567890"; assertEquals( new BigInteger(value[0]), converter.convertValue(context, null, null, null, value, BigInteger.class)); value[0] = "1234567890123456789.012345678901234567890"; assertEquals( new BigDecimal(value[0]), converter.convertValue(context, null, null, null, value, BigDecimal.class)); }