/******************************************************************************* * Copyright (c) 2004, 2012 Tasktop Technologies and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Tasktop Technologies - initial API and implementation *******************************************************************************/ package org.eclipse.mylyn.bugzilla.tests; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; import junit.framework.TestCase; import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute; import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttributeMapper; import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin; import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector; import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.mylyn.tasks.core.data.TaskAttribute; import org.eclipse.mylyn.tasks.core.data.TaskData; /** * @author Frank Becker * @author Robert Elves * @author Steffen Pingel */ public class BugzillaDateTimeTests extends TestCase { private TaskRepository repository; private BugzillaRepositoryConnector connector; @Override public void setUp() throws Exception { repository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND, "http://mylyn.org"); connector = new BugzillaRepositoryConnector(); } public void testDateFormatParsing() { TimeZone defaultTimeZone = TimeZone.getDefault(); try { TimeZone.setDefault(TimeZone.getTimeZone("GMT")); TaskData taskData = new TaskData(new BugzillaAttributeMapper(repository, connector), "bugzilla", "repourl", "1"); TaskAttribute attribute = taskData.getRoot().createAttribute(BugzillaAttribute.CREATION_TS.getKey()); attribute.setValue("2006-05-08 15:04 PST"); Date date = taskData.getAttributeMapper().getDateValue(attribute); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); assertEquals(2006, calendar.get(Calendar.YEAR)); assertEquals(4, calendar.get(Calendar.MONTH)); assertEquals(8, calendar.get(Calendar.DAY_OF_MONTH)); assertEquals(23, calendar.get(Calendar.HOUR_OF_DAY)); assertEquals(4, calendar.get(Calendar.MINUTE)); assertEquals(0, calendar.get(Calendar.SECOND)); attribute.setValue("2006-05-08 15:04:11 PST"); date = taskData.getAttributeMapper().getDateValue(attribute); calendar = Calendar.getInstance(); calendar.setTime(date); assertEquals(2006, calendar.get(Calendar.YEAR)); assertEquals(4, calendar.get(Calendar.MONTH)); assertEquals(8, calendar.get(Calendar.DAY_OF_MONTH)); assertEquals(23, calendar.get(Calendar.HOUR_OF_DAY)); assertEquals(4, calendar.get(Calendar.MINUTE)); assertEquals(11, calendar.get(Calendar.SECOND)); attribute.setValue("2006-05-08 15:04:11 -0800"); date = taskData.getAttributeMapper().getDateValue(attribute); calendar = Calendar.getInstance(); calendar.setTime(date); assertEquals(2006, calendar.get(Calendar.YEAR)); assertEquals(4, calendar.get(Calendar.MONTH)); assertEquals(8, calendar.get(Calendar.DAY_OF_MONTH)); assertEquals(23, calendar.get(Calendar.HOUR_OF_DAY)); assertEquals(4, calendar.get(Calendar.MINUTE)); assertEquals(11, calendar.get(Calendar.SECOND)); attribute.setValue("2006-05-08 15:04 -0800"); date = taskData.getAttributeMapper().getDateValue(attribute); calendar = Calendar.getInstance(); calendar.setTime(date); assertEquals(2006, calendar.get(Calendar.YEAR)); assertEquals(4, calendar.get(Calendar.MONTH)); assertEquals(8, calendar.get(Calendar.DAY_OF_MONTH)); assertEquals(23, calendar.get(Calendar.HOUR_OF_DAY)); assertEquals(4, calendar.get(Calendar.MINUTE)); assertEquals(0, calendar.get(Calendar.SECOND)); attribute.setValue("2006-05-08 15:04:11"); date = taskData.getAttributeMapper().getDateValue(attribute); calendar = Calendar.getInstance(); calendar.setTime(date); assertEquals(2006, calendar.get(Calendar.YEAR)); assertEquals(4, calendar.get(Calendar.MONTH)); assertEquals(8, calendar.get(Calendar.DAY_OF_MONTH)); assertEquals(15, calendar.get(Calendar.HOUR_OF_DAY)); assertEquals(4, calendar.get(Calendar.MINUTE)); assertEquals(11, calendar.get(Calendar.SECOND)); attribute.setValue("2006-05-08 15:04"); date = taskData.getAttributeMapper().getDateValue(attribute); calendar = Calendar.getInstance(); calendar.setTime(date); assertEquals(2006, calendar.get(Calendar.YEAR)); assertEquals(4, calendar.get(Calendar.MONTH)); assertEquals(8, calendar.get(Calendar.DAY_OF_MONTH)); assertEquals(15, calendar.get(Calendar.HOUR_OF_DAY)); assertEquals(4, calendar.get(Calendar.MINUTE)); assertEquals(0, calendar.get(Calendar.SECOND)); attribute.setValue("2006-05-08"); date = taskData.getAttributeMapper().getDateValue(attribute); calendar = Calendar.getInstance(); calendar.setTime(date); assertEquals(2006, calendar.get(Calendar.YEAR)); assertEquals(4, calendar.get(Calendar.MONTH)); assertEquals(8, calendar.get(Calendar.DAY_OF_MONTH)); assertEquals(0, calendar.get(Calendar.HOUR_OF_DAY)); assertEquals(0, calendar.get(Calendar.MINUTE)); assertEquals(0, calendar.get(Calendar.SECOND)); } finally { TimeZone.setDefault(defaultTimeZone); } } }