@@ -140,6 +140,63 @@ public void testFramesAnimation() {
140
140
verifyNoMoreInteractions (mUIImplementationMock );
141
141
}
142
142
143
+ @ Test
144
+ public void testNodeValueListenerIfNotListening () {
145
+ int nodeId = 1 ;
146
+
147
+ createSimpleAnimatedViewWithOpacity (1000 , 0d );
148
+ JavaOnlyArray frames = JavaOnlyArray .of (0d , 0.2d , 0.4d , 0.6d , 0.8d , 1d );
149
+
150
+ Callback animationCallback = mock (Callback .class );
151
+ AnimatedNodeValueListener valueListener = mock (AnimatedNodeValueListener .class );
152
+
153
+ mNativeAnimatedNodesManager .startListeningToAnimatedNodeValue (nodeId , valueListener );
154
+ mNativeAnimatedNodesManager .startAnimatingNode (
155
+ 1 ,
156
+ nodeId ,
157
+ JavaOnlyMap .of ("type" , "frames" , "frames" , frames , "toValue" , 1d ),
158
+ animationCallback );
159
+
160
+ mNativeAnimatedNodesManager .runUpdates (nextFrameTime ());
161
+ verify (valueListener ).onValueUpdate (eq (0d ));
162
+
163
+ mNativeAnimatedNodesManager .stopListeningToAnimatedNodeValue (nodeId );
164
+
165
+ mNativeAnimatedNodesManager .runUpdates (nextFrameTime ());
166
+ verifyNoMoreInteractions (valueListener );
167
+ }
168
+
169
+ @ Test
170
+ public void testNodeValueListenerIfListening () {
171
+ int nodeId = 1 ;
172
+
173
+ createSimpleAnimatedViewWithOpacity (1000 , 0d );
174
+ JavaOnlyArray frames = JavaOnlyArray .of (0d , 0.2d , 0.4d , 0.6d , 0.8d , 1d );
175
+
176
+ Callback animationCallback = mock (Callback .class );
177
+ AnimatedNodeValueListener valueListener = mock (AnimatedNodeValueListener .class );
178
+
179
+ mNativeAnimatedNodesManager .startListeningToAnimatedNodeValue (nodeId , valueListener );
180
+ mNativeAnimatedNodesManager .startAnimatingNode (
181
+ 1 ,
182
+ nodeId ,
183
+ JavaOnlyMap .of ("type" , "frames" , "frames" , frames , "toValue" , 1d ),
184
+ animationCallback );
185
+
186
+ mNativeAnimatedNodesManager .runUpdates (nextFrameTime ());
187
+ verify (valueListener ).onValueUpdate (eq (0d ));
188
+
189
+ for (int i = 0 ; i < frames .size (); i ++) {
190
+ reset (valueListener );
191
+ mNativeAnimatedNodesManager .runUpdates (nextFrameTime ());
192
+ verify (valueListener ).onValueUpdate (eq (frames .getDouble (i )));
193
+ }
194
+
195
+ reset (valueListener );
196
+ mNativeAnimatedNodesManager .runUpdates (nextFrameTime ());
197
+ verifyNoMoreInteractions (valueListener );
198
+ }
199
+
143
200
@ Test
144
201
public void testAnimationCallbackFinish () {
145
202
createSimpleAnimatedViewWithOpacity (1000 , 0d );
0 commit comments