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