/* * Copyright (C) 2012, Christian Halstrick and others * * This program and the accompanying materials are made available under the * terms of the Eclipse Distribution License v. 1.0 which is available at * https://www.eclipse.org/org/documents/edl-v10.php. * * SPDX-License-Identifier: BSD-3-Clause */ package org.eclipse.jgit.util; import static org.junit.Assert.fail; import java.text.ParseException; import java.util.Calendar; import java.util.GregorianCalendar; import org.eclipse.jgit.junit.MockSystemReader; import org.junit.After; import org.junit.Before; import org.junit.experimental.theories.DataPoints; import org.junit.experimental.theories.Theories; import org.junit.experimental.theories.Theory; import org.junit.runner.RunWith; /** * Tests which assert that unparseable Strings lead to ParseExceptions */ @RunWith(Theories.class) public class GitDateParserBadlyFormattedTest { private String dateStr; @Before public void setUp() { MockSystemReader mockSystemReader = new MockSystemReader(); SystemReader.setInstance(mockSystemReader); } @After public void tearDown() { SystemReader.setInstance(null); } public GitDateParserBadlyFormattedTest(String dateStr) { this.dateStr = dateStr; } @DataPoints public static String[] getDataPoints() { return new String[] { "", "1970", "3000.3000.3000", "3 yesterday ago", "now yesterday ago", "yesterdays", "3.day. 2.week.ago", "day ago", "Gra Feb 21 15:35:00 2007 +0100", "Sun Feb 21 15:35:00 2007 +0100", "Wed Feb 21 15:35:00 Grand +0100" }; } @Theory public void badlyFormattedWithExplicitRef() { Calendar ref = new GregorianCalendar(SystemReader.getInstance() .getTimeZone(), SystemReader.getInstance().getLocale()); try { GitDateParser.parse(dateStr, ref, SystemReader.getInstance() .getLocale()); fail("The expected ParseException while parsing '" + dateStr + "' did not occur."); } catch (ParseException e) { // expected } } @Theory public void badlyFormattedWithoutRef() { try { GitDateParser.parse(dateStr, null, SystemReader.getInstance() .getLocale()); fail("The expected ParseException while parsing '" + dateStr + "' did not occur."); } catch (ParseException e) { // expected } } }