001// Copyright 2009 by Basil Vandegriend. All rights reserved. 002 003package com.basilv.examples.concurrency; 004 005import static org.junit.Assert.*; 006 007import java.util.Date; 008 009import org.junit.*; 010 011public class DateProcessorSingleThreadedTest 012{ 013 private DateProcessor dateProcessor; 014 015 @Before 016 public void setUp() { 017 DateProcessor.setInstanceForTesting(null); 018 dateProcessor = DateProcessor.getInstance(); 019 } 020 021 @Test 022 public void initialState() { 023 assertEquals(0, dateProcessor.getDatesProcessedCount()); 024 assertEquals(0, dateProcessor.getDatesValidCount()); 025 } 026 027 @Test 028 public void parseValidDate() { 029 Date date = dateProcessor.processDate("2009-11-25"); 030 assertNotNull(date); 031 assertEquals(createDate(2009, 11, 25), date); 032 assertEquals(1, dateProcessor.getDatesProcessedCount()); 033 assertEquals(1, dateProcessor.getDatesValidCount()); 034 } 035 036 @Test 037 public void parseInvalidDate() { 038 assertNull(dateProcessor.processDate("foo")); 039 assertEquals(1, dateProcessor.getDatesProcessedCount()); 040 assertEquals(0, dateProcessor.getDatesValidCount()); 041 } 042 043 @SuppressWarnings("deprecation") // Due to stupid API on java.util.Date 044 private Date createDate(int year, int monthIndexedFromOne, int dayOfMonth) { 045 return new Date(year - 1900, monthIndexedFromOne - 1, dayOfMonth); 046 } 047}