/** * Copyright (c) 2016-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ package com.facebook.keyframes.model; import org.junit.Assert; import org.junit.Test; import org.mockito.Mockito; import java.util.ArrayList; import java.util.Arrays; public class ModelTests { @Test public void testMatrixOrderingAnimationGroup() { KFAnimationGroup.Builder builder = new KFAnimationGroup.Builder(); builder.groupId = 1; builder.animations = Arrays.asList( createDummyAnimationOfType(KFAnimation.PropertyType.ROTATION), createDummyAnimationOfType(KFAnimation.PropertyType.X_POSITION), createDummyAnimationOfType(KFAnimation.PropertyType.SCALE)); KFAnimationGroup group = builder.build(); Assert.assertEquals( KFAnimation.PropertyType.SCALE, group.getAnimations().get(0).getPropertyType()); Assert.assertEquals( KFAnimation.PropertyType.ROTATION, group.getAnimations().get(1).getPropertyType()); Assert.assertEquals( KFAnimation.PropertyType.X_POSITION, group.getAnimations().get(2).getPropertyType()); } @Test public void testFeatureAnimationOrderingAndExtraction() { // Test transform matrix ordering is correct, as well as filtering out stroke_width from matrix // based animations. KFFeature.Builder builder = new KFFeature.Builder(); KFAnimation dummyStrokeWidth = createDummyAnimationOfType(KFAnimation.PropertyType.STROKE_WIDTH); builder.featureAnimations = new ArrayList<>(Arrays.asList( createDummyAnimationOfType(KFAnimation.PropertyType.ROTATION), dummyStrokeWidth, createDummyAnimationOfType(KFAnimation.PropertyType.X_POSITION), createDummyAnimationOfType(KFAnimation.PropertyType.SCALE))); KFFeature feature = builder.build(); Assert.assertEquals(3, feature.mFeatureMatrixAnimations.size(), 0); Assert.assertEquals( KFAnimation.PropertyType.SCALE, feature.mFeatureMatrixAnimations.get(0).getPropertyType()); Assert.assertEquals( KFAnimation.PropertyType.ROTATION, feature.mFeatureMatrixAnimations.get(1).getPropertyType()); Assert.assertEquals( KFAnimation.PropertyType.X_POSITION, feature.mFeatureMatrixAnimations.get(2).getPropertyType()); Assert.assertEquals( dummyStrokeWidth, feature.mStrokeWidthAnimation); } private KFAnimation createDummyAnimationOfType(KFAnimation.PropertyType type) { KFAnimation animation = Mockito.mock(KFAnimation.class); Mockito.when(animation.getPropertyType()).thenReturn(type); return animation; } }