| /* //device/content/providers/pim/DurationTest.java |
| ** |
| ** Copyright 2006, The Android Open Source Project |
| ** |
| ** Licensed under the Apache License, Version 2.0 (the "License"); |
| ** you may not use this file except in compliance with the License. |
| ** You may obtain a copy of the License at |
| ** |
| ** http://www.apache.org/licenses/LICENSE-2.0 |
| ** |
| ** Unless required by applicable law or agreed to in writing, software |
| ** distributed under the License is distributed on an "AS IS" BASIS, |
| ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| ** See the License for the specific language governing permissions and |
| ** limitations under the License. |
| */ |
| |
| package com.android.calendarcommon2; |
| |
| import junit.framework.TestCase; |
| |
| import android.test.suitebuilder.annotation.SmallTest; |
| |
| public class DurationTest extends TestCase { |
| |
| private void verifyDuration(String str, |
| int sign, int weeks, int days, int hours, |
| int minutes, int seconds) throws DateException { |
| |
| Duration duration = new Duration(); |
| duration.parse(str); |
| |
| assertEquals("Duration sign is not equal for " + str, sign, duration.sign); |
| assertEquals("Duration weeks is not equal for " + str, weeks, duration.weeks); |
| assertEquals("Duration days is not equal for " + str, days, duration.days); |
| assertEquals("Duration hours is not equal for " + str, hours, duration.hours); |
| assertEquals("Duration minutes is not equal for " + str, minutes, duration.minutes); |
| assertEquals("Duration seconds is not equal for " + str, seconds, duration.seconds); |
| } |
| |
| @SmallTest |
| public void testParse() throws Exception { |
| verifyDuration("P7W", 1, 7, 0, 0, 0, 0); |
| verifyDuration("PT7W", 1, 7, 0, 0, 0, 0); |
| verifyDuration("-PT7W", -1, 7, 0, 0, 0, 0); |
| verifyDuration("P15DT5H0M20S", 1, 0, 15, 5, 0, 20); |
| verifyDuration("-P15DT5H0M20S", -1, 0, 15, 5, 0, 20); |
| verifyDuration("PT1H2M3S", 1, 0, 0, 1, 2, 3); |
| |
| verifyDuration("", 1, 0, 0, 0, 0, 0); |
| verifyDuration("P", 1, 0, 0, 0, 0, 0); |
| verifyDuration("P0W", 1, 0, 0, 0, 0, 0); |
| verifyDuration("P0D", 1, 0, 0, 0, 0, 0); |
| verifyDuration("PT0H0M0S", 1, 0, 0, 0, 0, 0); |
| verifyDuration("P0DT0H0M0S", 1, 0, 0, 0, 0, 0); |
| } |
| |
| @SmallTest |
| public void testParseInvalidStrings() throws Exception { |
| try { |
| verifyDuration(" -P15DT5H0M20S", 0, 0, 0, 0, 0, 0); |
| fail("test didn't throw an exception but we expected it to"); |
| } catch (DateException e) { |
| // expected |
| } |
| |
| try { |
| verifyDuration(" not even close", 0, 0, 0, 0, 0, 0); |
| fail("test didn't throw an exception but we expected it to"); |
| } catch (DateException e) { |
| // expected |
| } |
| } |
| } |
| |
| |
| |