10b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle/*
20b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle * Copyright (C) 2014 The Android Open Source Project
30b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle *
40b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle * Licensed under the Apache License, Version 2.0 (the "License");
50b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle * you may not use this file except in compliance with the License.
60b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle * You may obtain a copy of the License at
70b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle *
80b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle *     http://www.apache.org/licenses/LICENSE-2.0
90b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle *
100b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle * Unless required by applicable law or agreed to in writing, software
110b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle * distributed under the License is distributed on an "AS IS" BASIS,
120b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle * See the License for the specific language governing permissions and
140b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle * limitations under the License.
150b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle */
1649e9877c747d6f322a0bd358a9ec8c6f7ad62c76Neil Fullerpackage tests.java.sql;
170b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle
180b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravleimport java.sql.Date;
190b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle
200b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravleimport junit.framework.TestCase;
210b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle
220b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravlepublic class SqlDateTest extends TestCase {
230b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle
240b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle    public void testValueOf() {
250b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle        String[] dates = {
260b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle            "2001-12-31", "2001-12-1", "2001-1-1", "1900-12-31"
270b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle        };
280b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle
290b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle        for (String date : dates) {
300b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle            Date.valueOf(date);
310b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle        }
320b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle    }
330b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle
340b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle    public void testValueOfInvalidDate() {
350b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle        String[] invalidDates = {
360b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle            "",
370b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle            "+2001-12-31", "2001-+12-31", "2001-12-+31",
380b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle            "-2001-12-31", "2001--12-31", "2001-12--31",
390b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle            "2001--","2001--31","-12-31", "-12-", "--31",
400b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle            "2000000001-12-31"
410b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle        };
420b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle
430b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle        for (String date : invalidDates) {
440b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle            try {
450b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle                Date.valueOf(date);
460b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle                fail();
470b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle            } catch (IllegalArgumentException expected) { }
480b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle        }
490b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle    }
500b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle
510b2a71a20a34a89fb770acf877c751e0443f46e8Calin Juravle}
52