1/* GENERATED SOURCE. DO NOT MODIFY. */
2// © 2016 and later: Unicode, Inc. and others.
3// License & terms of use: http://www.unicode.org/copyright.html#License
4/*
5 *******************************************************************************
6 * Copyright (C) 2009, International Business Machines Corporation and         *
7 * others. All Rights Reserved.                                                *
8 *******************************************************************************
9 */
10package android.icu.dev.test.duration;
11
12import org.junit.Test;
13import org.junit.runner.RunWith;
14import org.junit.runners.JUnit4;
15
16import android.icu.dev.test.TestFmwk;
17import android.icu.impl.duration.BasicPeriodFormatterService;
18import android.icu.impl.duration.DurationFormatter;
19import android.icu.impl.duration.PeriodBuilder;
20import android.icu.impl.duration.PeriodFormatterService;
21import android.icu.text.DurationFormat;
22import android.icu.util.ULocale;
23import android.icu.testsharding.MainTestShard;
24
25@MainTestShard
26@RunWith(JUnit4.class)
27public class RegressionTest extends TestFmwk {
28    // bug6397
29    @Test
30    public void TestDisallowedMillis() {
31        // original test case
32        // if we don't support milliseconds, format times less than 1 second as
33        // 'less than 1 second'
34        {
35            ULocale ul = new ULocale("th");
36            DurationFormat df = DurationFormat.getInstance(ul);
37            String result = df.formatDurationFromNow(500);
38            assertEquals(
39                "original test case",
40                "\u0E44\u0E21\u0E48\u0E16\u0E36\u0E07\u0E2D\u0E35\u0E01 1 \u0E27\u0E34\u0E19\u0E32\u0E17\u0E35",
41                result);
42        }
43
44        // same issue, but using English and the internal APIs
45        {
46            PeriodFormatterService pfs = BasicPeriodFormatterService.getInstance();
47            PeriodBuilder pb = pfs.newPeriodBuilderFactory()
48                .setAllowMilliseconds(false)
49                .getSingleUnitBuilder();
50            DurationFormatter df = pfs.newDurationFormatterFactory()
51                .setPeriodBuilder(pb)
52                .getFormatter();
53            String result = df.formatDurationFromNow(500);
54            assertEquals(
55                "english test case",
56                "less than 1 second from now",
57                result);
58
59        }
60
61        // if the limit is set on milliseconds, and they are not supported,
62        // use an effective limit based on seconds
63        {
64            PeriodFormatterService pfs = BasicPeriodFormatterService.getInstance();
65            PeriodBuilder pb = pfs.newPeriodBuilderFactory()
66                .setMinLimit(2500)
67                .setAllowMilliseconds(false)
68                .getSingleUnitBuilder();
69            DurationFormatter df = pfs.newDurationFormatterFactory()
70                .setPeriodBuilder(pb)
71                .getFormatter();
72            String result = df.formatDurationFromNow(500);
73            assertEquals(
74                "limit test case",
75                "less than 2 seconds from now",
76                result);
77        }
78    }
79}
80