1package com.xtremelabs.robolectric.shadows;
2
3import android.util.DisplayMetrics;
4import android.util.TypedValue;
5import com.xtremelabs.robolectric.WithTestDefaultsRunner;
6import org.junit.Test;
7import org.junit.runner.RunWith;
8
9import static org.hamcrest.core.IsEqual.equalTo;
10import static org.junit.Assert.assertThat;
11
12@RunWith(WithTestDefaultsRunner.class)
13public class TypedValueTest {
14
15    @Test
16    public void testApplyDimensionIsWired() throws Exception {
17        DisplayMetrics metrics = new DisplayMetrics();
18        metrics.density = 0.5f;
19        float convertedValue = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 100, metrics);
20        assertThat(convertedValue, equalTo(50f));
21    }
22
23    @Test
24    public void testCoerceBooleanToString() {
25        String booleanFalseString = TypedValue.coerceToString(TypedValue.TYPE_INT_BOOLEAN, 0);
26        String booleanTrueString = TypedValue.coerceToString(TypedValue.TYPE_INT_BOOLEAN, 1);
27
28        assertThat(booleanFalseString, equalTo("false"));
29        assertThat(booleanTrueString, equalTo("true"));
30    }
31
32    @Test
33    public void testCoerceNullToString() {
34        String nullString = TypedValue.coerceToString(TypedValue.TYPE_NULL, 0);
35
36        assertThat(nullString, equalTo(null));
37    }
38
39    @Test
40    public void testCoerceIntegerToString() {
41        String intString = TypedValue.coerceToString(TypedValue.TYPE_INT_DEC, 37);
42
43        assertThat(intString, equalTo("37"));
44    }
45
46    @Test
47    public void testCoerceIntegerToHexString() {
48        String hexString = TypedValue.coerceToString(TypedValue.TYPE_INT_HEX, 0xcafebabe);
49
50        assertThat(hexString, equalTo("0xcafebabe"));
51    }
52
53    @Test
54    public void testCoerceColorToString() {
55        String colorString = TypedValue.coerceToString(TypedValue.TYPE_INT_COLOR_RGB8, 0xcafebabe);
56
57        assertThat(colorString, equalTo("#cafebabe"));
58    }
59
60    @Test
61    public void testSetTo() {
62        TypedValue expectedValue = new TypedValue();
63        expectedValue.assetCookie = 1;
64        expectedValue.data = 3;
65        expectedValue.density = 4;
66        expectedValue.resourceId = 5;
67        expectedValue.string = "string";
68        expectedValue.type = 6;
69
70        TypedValue actualValue = new TypedValue();
71        actualValue.setTo(expectedValue);
72
73        assertThat(expectedValue.assetCookie, equalTo(actualValue.assetCookie));
74        assertThat(expectedValue.data, equalTo(actualValue.data));
75        assertThat(expectedValue.density, equalTo(actualValue.density));
76        assertThat(expectedValue.resourceId, equalTo(actualValue.resourceId));
77        assertThat(expectedValue.string, equalTo(actualValue.string));
78        assertThat(expectedValue.type, equalTo(actualValue.type));
79    }
80}
81