1/*
2 *  Licensed to the Apache Software Foundation (ASF) under one or more
3 *  contributor license agreements.  See the NOTICE file distributed with
4 *  this work for additional information regarding copyright ownership.
5 *  The ASF licenses this file to You under the Apache License, Version 2.0
6 *  (the "License"); you may not use this file except in compliance with
7 *  the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *  Unless required by applicable law or agreed to in writing, software
12 *  distributed under the License is distributed on an "AS IS" BASIS,
13 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *  See the License for the specific language governing permissions and
15 *  limitations under the License.
16 */
17
18package org.apache.harmony.luni.tests.java.lang;
19
20import dalvik.annotation.TestTargets;
21import dalvik.annotation.TestLevel;
22import dalvik.annotation.TestTargetNew;
23import dalvik.annotation.TestTargetClass;
24
25@TestTargetClass(Number.class)
26public class NumberTest extends junit.framework.TestCase {
27
28    class MockNumber extends Number {
29
30        @Override
31        public double doubleValue() {
32            // TODO Auto-generated method stub
33            return 0;
34        }
35
36        @Override
37        public float floatValue() {
38            // TODO Auto-generated method stub
39            return 0;
40        }
41
42        @Override
43        public int intValue() {
44            // TODO Auto-generated method stub
45            return 0;
46        }
47
48        @Override
49        public long longValue() {
50            // TODO Auto-generated method stub
51            return 0;
52        }
53
54    }
55
56    @TestTargetNew(
57        level = TestLevel.COMPLETE,
58        notes = "",
59        method = "Number",
60        args = {}
61    )
62    public void test_Number() {
63        MockNumber number = new MockNumber();
64        assertEquals(0, number.longValue());
65        assertEquals(0, number.shortValue());
66    }
67
68    /**
69     * @tests java.lang.Number#byteValue()
70     */
71    @TestTargetNew(
72        level = TestLevel.COMPLETE,
73        notes = "",
74        method = "byteValue",
75        args = {}
76    )
77    public void test_byteValue() {
78        int number = 1231243;
79        assertTrue("Incorrect byte returned for: " + number,
80                ((byte) new Integer(number).intValue()) == new Integer(number)
81                        .byteValue());
82        number = 0;
83        assertTrue("Incorrect byte returned for: " + number,
84                ((byte) new Integer(number).intValue()) == new Integer(number)
85                        .byteValue());
86        number = -1;
87        assertTrue("Incorrect byte returned for: " + number,
88                ((byte) new Integer(number).intValue()) == new Integer(number)
89                        .byteValue());
90        number = -84109328;
91        assertTrue("Incorrect byte returned for: " + number,
92                ((byte) new Integer(number).intValue()) == new Integer(number)
93                        .byteValue());
94    }
95
96    /**
97     * @tests java.lang.Number#shortValue()
98     */
99    @TestTargetNew(
100        level = TestLevel.COMPLETE,
101        notes = "",
102        method = "shortValue",
103        args = {}
104    )
105    public void test_shortValue() {
106        int number = 1231243;
107        assertTrue("Incorrect byte returned for: " + number,
108                ((short) new Integer(number).intValue()) == new Integer(number)
109                        .shortValue());
110        number = 0;
111        assertTrue("Incorrect byte returned for: " + number,
112                ((short) new Integer(number).intValue()) == new Integer(number)
113                        .shortValue());
114        number = -1;
115        assertTrue("Incorrect byte returned for: " + number,
116                ((short) new Integer(number).intValue()) == new Integer(number)
117                        .shortValue());
118        number = -84109328;
119        assertTrue("Incorrect byte returned for: " + number,
120                ((short) new Integer(number).intValue()) == new Integer(number)
121                        .shortValue());
122
123    }
124}
125