예제 #1
1
  public void testCopySameType() {
    Foo foo1 = new Foo();
    Foo foo2 = new Foo();

    Map context = Ognl.createDefaultContext(foo1);

    Calendar cal = Calendar.getInstance();
    cal.clear();
    cal.set(Calendar.MONTH, Calendar.FEBRUARY);
    cal.set(Calendar.DAY_OF_MONTH, 12);
    cal.set(Calendar.YEAR, 1982);

    foo1.setTitle("blah");
    foo1.setNumber(1);
    foo1.setPoints(new long[] {1, 2, 3});
    foo1.setBirthday(cal.getTime());
    foo1.setUseful(false);

    ognlUtil.copy(foo1, foo2, context);

    assertEquals(foo1.getTitle(), foo2.getTitle());
    assertEquals(foo1.getNumber(), foo2.getNumber());
    assertEquals(foo1.getPoints(), foo2.getPoints());
    assertEquals(foo1.getBirthday(), foo2.getBirthday());
    assertEquals(foo1.isUseful(), foo2.isUseful());
  }
예제 #2
0
  public void testSetPropertiesDate() {
    Locale orig = Locale.getDefault();
    Locale.setDefault(Locale.US);

    Foo foo = new Foo();

    Map context = Ognl.createDefaultContext(foo);

    Map props = new HashMap();
    props.put("birthday", "02/12/1982");
    // US style test
    ognlUtil.setProperties(props, foo, context);

    Calendar cal = Calendar.getInstance();
    cal.clear();
    cal.set(Calendar.MONTH, Calendar.FEBRUARY);
    cal.set(Calendar.DAY_OF_MONTH, 12);
    cal.set(Calendar.YEAR, 1982);

    assertEquals(cal.getTime(), foo.getBirthday());

    Locale.setDefault(Locale.UK);
    // UK style test
    props.put("event", "18/10/2006 14:23:45");
    props.put("meeting", "09/09/2006 14:30");
    ognlUtil.setProperties(props, foo, context);

    cal = Calendar.getInstance();
    cal.clear();
    cal.set(Calendar.MONTH, Calendar.OCTOBER);
    cal.set(Calendar.DAY_OF_MONTH, 18);
    cal.set(Calendar.YEAR, 2006);
    cal.set(Calendar.HOUR_OF_DAY, 14);
    cal.set(Calendar.MINUTE, 23);
    cal.set(Calendar.SECOND, 45);

    assertEquals(cal.getTime(), foo.getEvent());

    cal = Calendar.getInstance();
    cal.clear();
    cal.set(Calendar.MONTH, Calendar.SEPTEMBER);
    cal.set(Calendar.DAY_OF_MONTH, 9);
    cal.set(Calendar.YEAR, 2006);
    cal.set(Calendar.HOUR_OF_DAY, 14);
    cal.set(Calendar.MINUTE, 30);

    assertEquals(cal.getTime(), foo.getMeeting());

    Locale.setDefault(orig);

    Locale.setDefault(orig);

    // test RFC 3339 date format for JSON
    props.put("event", "1996-12-19T16:39:57Z");
    ognlUtil.setProperties(props, foo, context);

    cal = Calendar.getInstance();
    cal.clear();
    cal.set(Calendar.MONTH, Calendar.DECEMBER);
    cal.set(Calendar.DAY_OF_MONTH, 19);
    cal.set(Calendar.YEAR, 1996);
    cal.set(Calendar.HOUR_OF_DAY, 16);
    cal.set(Calendar.MINUTE, 39);
    cal.set(Calendar.SECOND, 57);

    assertEquals(cal.getTime(), foo.getEvent());

    // test setting a calendar property
    props.put("calendar", "1996-12-19T16:39:57Z");
    ognlUtil.setProperties(props, foo, context);
    assertEquals(cal, foo.getCalendar());
  }
예제 #3
0
  public void testIncudeExcludes() {

    Foo foo1 = new Foo();
    Foo foo2 = new Foo();

    Calendar cal = Calendar.getInstance();
    cal.clear();
    cal.set(Calendar.MONTH, Calendar.FEBRUARY);
    cal.set(Calendar.DAY_OF_MONTH, 12);
    cal.set(Calendar.YEAR, 1982);

    foo1.setPoints(new long[] {1, 2, 3});
    foo1.setBirthday(cal.getTime());
    foo1.setUseful(false);

    foo1.setTitle("foo1 title");
    foo1.setNumber(1);

    foo2.setTitle("foo2 title");
    foo2.setNumber(2);

    Map<String, Object> context = Ognl.createDefaultContext(foo1);

    List<String> excludes = new ArrayList<String>();
    excludes.add("title");
    excludes.add("number");

    ognlUtil.copy(foo1, foo2, context, excludes, null);
    // these values should remain unchanged in foo2
    assertEquals(foo2.getTitle(), "foo2 title");
    assertEquals(foo2.getNumber(), 2);

    // these values should be changed/copied
    assertEquals(foo1.getPoints(), foo2.getPoints());
    assertEquals(foo1.getBirthday(), foo2.getBirthday());
    assertEquals(foo1.isUseful(), foo2.isUseful());

    Bar b1 = new Bar();
    Bar b2 = new Bar();

    b1.setTitle("bar1 title");
    b1.setSomethingElse(10);

    b1.setId(new Long(1));

    b2.setTitle("");
    b2.setId(new Long(2));

    context = Ognl.createDefaultContext(b1);
    List<String> includes = new ArrayList<String>();
    includes.add("title");
    includes.add("somethingElse");

    ognlUtil.copy(b1, b2, context, null, includes);
    // includes properties got copied
    assertEquals(b1.getTitle(), b2.getTitle());
    assertEquals(b1.getSomethingElse(), b2.getSomethingElse());

    // id properties did not
    assertEquals(b2.getId(), new Long(2));
  }