• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2016 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package android.support.v17.leanback.widget;
17 
18 import static org.junit.Assert.assertEquals;
19 import static org.junit.Assert.assertSame;
20 
21 import android.support.test.filters.SmallTest;
22 import android.support.test.runner.AndroidJUnit4;
23 
24 import org.junit.Before;
25 import org.junit.Test;
26 import org.junit.runner.RunWith;
27 
28 @RunWith(AndroidJUnit4.class)
29 @SmallTest
30 public class ParallaxIntTest {
31 
32     Parallax<Parallax.IntProperty> mSource;
33     int mScreenMax;
34 
assertFloatEquals(float expected, float actual)35     static void assertFloatEquals(float expected, float actual) {
36         org.junit.Assert.assertEquals((double) expected, (double) actual, 0.0001d);
37     }
38 
39     @Before
setUp()40     public void setUp() throws Exception {
41         mSource = new Parallax<Parallax.IntProperty>() {
42 
43             @Override
44             public float getMaxValue() {
45                 return mScreenMax;
46             }
47 
48             @Override
49             public IntProperty createProperty(String name, int index) {
50                 return new IntProperty(name, index);
51             }
52         };
53     }
54 
55     @Test
testVariable()56     public void testVariable() {
57         mScreenMax = 1080;
58         Parallax.IntProperty var1 = mSource.addProperty("var1");
59         var1.setValue(mSource, 54);
60         assertEquals((int) 54, var1.getValue(mSource));
61         assertEquals(var1.getName(), "var1");
62         var1.set(mSource, (int) 2000);
63         assertEquals((int) 2000, var1.get(mSource).intValue());
64     }
65 
66     @Test
testFixedKeyValue()67     public void testFixedKeyValue() {
68         mScreenMax = 1080;
69         Parallax.IntProperty var1 = mSource.addProperty("var1");
70 
71         Parallax.IntPropertyMarkerValue keyValue = (Parallax.IntPropertyMarkerValue)
72                 var1.atAbsolute(1000);
73         assertSame(keyValue.getProperty(), var1);
74         assertEquals((int) 1000, keyValue.getMarkerValue(mSource));
75     }
76 
77     @Test
testFractionOfKeyValue()78     public void testFractionOfKeyValue() {
79         mScreenMax = 1080;
80         Parallax.IntProperty var1 = mSource.addProperty("var1");
81 
82         Parallax.IntPropertyMarkerValue keyValue = (Parallax.IntPropertyMarkerValue)
83                 var1.at(0, 0.5f);
84         assertSame(keyValue.getProperty(), var1);
85         assertEquals((int) 540, keyValue.getMarkerValue(mSource));
86     }
87 
88     @Test
testFixedKeyValueWithFraction()89     public void testFixedKeyValueWithFraction() {
90         mScreenMax = 1080;
91         Parallax.IntProperty var1 = mSource.addProperty("var1");
92 
93         Parallax.IntPropertyMarkerValue keyValue = (Parallax.IntPropertyMarkerValue)
94                 var1.at(-100, 0.5f);
95         assertSame(keyValue.getProperty(), var1);
96         assertEquals((int) 440, keyValue.getMarkerValue(mSource));
97 
98         Parallax.IntPropertyMarkerValue keyValue2 = (Parallax.IntPropertyMarkerValue)
99                 var1.at(100, 0.5f);
100         assertSame(keyValue2.getProperty(), var1);
101         assertEquals((int) 640, keyValue2.getMarkerValue(mSource));
102     }
103 
104     @Test(expected = IllegalStateException.class)
testVerifyIntPropertys_wrongOrder()105     public void testVerifyIntPropertys_wrongOrder() {
106         Parallax.IntProperty var1 = mSource.addProperty("var1");
107         Parallax.IntProperty var2 = mSource.addProperty("var2");
108 
109         var1.setValue(mSource, (int) 500);
110         var2.setValue(mSource, (int) 499);
111 
112         mSource.verifyIntProperties();
113     }
114 
115     @Test(expected = IllegalStateException.class)
testVerifyIntPropertysWrong_combination()116     public void testVerifyIntPropertysWrong_combination() {
117         Parallax.IntProperty var1 = mSource.addProperty("var1");
118         Parallax.IntProperty var2 = mSource.addProperty("var2");
119 
120         var1.setValue(mSource, Parallax.IntProperty.UNKNOWN_BEFORE);
121         var2.setValue(mSource, Parallax.IntProperty.UNKNOWN_AFTER);
122 
123         mSource.verifyIntProperties();
124     }
125 
126     @Test
testVerifyIntPropertys_success()127     public void testVerifyIntPropertys_success() {
128         Parallax.IntProperty var1 = mSource.addProperty("var1");
129         Parallax.IntProperty var2 = mSource.addProperty("var2");
130 
131         var1.setValue(mSource, (int) 499);
132         var2.setValue(mSource, (int) 500);
133 
134         mSource.verifyIntProperties();
135 
136         var1.setValue(mSource, Parallax.IntProperty.UNKNOWN_BEFORE);
137         var2.setValue(mSource, (int) 500);
138 
139         mSource.verifyIntProperties();
140 
141         var1.setValue(mSource, (int) 499);
142         var2.setValue(mSource, Parallax.IntProperty.UNKNOWN_AFTER);
143 
144         mSource.verifyIntProperties();
145     }
146 }
147