@@ -0,0 +1,3240 @@
+/*%0A * See the NOTICE file distributed with this work for additional%0A * information regarding copyright ownership.%0A *%0A * This is free software; you can redistribute it and/or modify it%0A * under the terms of the GNU Lesser General Public License as%0A * published by the Free Software Foundation; either version 2.1 of%0A * the License, or (at your option) any later version.%0A *%0A * This software is distributed in the hope that it will be useful,%0A * but WITHOUT ANY WARRANTY; without even the implied warranty of%0A * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU%0A * Lesser General Public License for more details.%0A *%0A * You should have received a copy of the GNU Lesser General Public%0A * License along with this software; if not, write to the Free%0A * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA%0A * 02110-1301 USA, or see the FSF site: http://www.fsf.org.%0A */%0Apackage org.xwiki.xar.internal.property;%0A%0Aimport java.text.DateFormat;%0Aimport java.text.ParseException;%0Aimport java.text.SimpleDateFormat;%0Aimport java.util.Date;%0A%0Aimport org.junit.jupiter.api.Test;%0Aimport org.junit.jupiter.api.extension.RegisterExtension;%0Aimport org.xwiki.test.LogLevel;%0Aimport org.xwiki.test.junit5.LogCaptureExtension;%0A%0Aimport static org.junit.jupiter.api.Assertions.assertEquals;%0Aimport static org.junit.jupiter.api.Assertions.assertTrue;%0A%0A/**%0A * Validate %7B@link DateXarObjectPropertySerializer%7D.%0A * %0A * @version $Id$%0A */%0Apublic class DateXarObjectPropertySerializerTest%0A%7B%0A    @RegisterExtension%0A    LogCaptureExtension logCapture = new LogCaptureExtension(LogLevel.WARN);%0A%0A    @Test%0A    public void parse() throws ParseException%0A    %7B%0A        Date newDate = new Date();%0A        DateFormat format = new SimpleDateFormat(DateXarObjectPropertySerializer.DEFAULT_FORMAT);%0A        String string = format.format(newDate);%0A        Date formattedDate = format.parse(string);%0A%0A        assertEquals(formattedDate, DateXarObjectPropertySerializer.parseDate(string));%0A    %7D%0A%0A    @Test%0A    public void parseOld() throws ParseException%0A    %7B%0A        Date newDate = new Date();%0A        DateFormat format = new SimpleDateFormat(%22EEE MMM d HH:mm:ss z yyyy%22);%0A        String string = format.format(newDate);%0A        Date formattedDate = format.parse(string);%0A%0A        assertEquals(formattedDate, DateXarObjectPropertySerializer.parseDate(string));%0A%0A        assertEquals(%0A            %22Failed to parse date %5B%22 + string + %22%5D using format %5Byyyy-MM-dd HH:mm:ss.S%5D.%22%0A                + %22 Trying again with format %5BEEE MMM d HH:mm:ss z yyyy%5D.%22,%0A            this.logCapture.getLogEvent(0).getFormattedMessage());%0A    %7D%0A%0A    @Test%0A    public void parseInvalid()%0A    %7B%0A        Date newDate = new Date();%0A        assertTrue(DateXarObjectPropertySerializer.parseDate(%22not date%22).after(newDate));%0A%0A        assertEquals(%0A            %22Failed to parse date %5Bnot date%5D using format %5Byyyy-MM-dd HH:mm:ss.S%5D.%22%0A                + %22 Trying again with format %5BEEE MMM d HH:mm:ss z yyyy%5D.%22,%0A            this.logCapture.getLogEvent(0).getFormattedMessage());%0A        assertEquals(%22Failed to parse date %5Bnot date%5D using format %5BEEE MMM d HH:mm:ss z yyyy%5D.%22%0A            + %22 Defaulting to the current date.%22, this.logCapture.getLogEvent(1).getFormattedMessage());%0A    %7D%0A%7D%0A

Add tests