/*
* Copyright (c) 2015-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.drawee.generic;
import android.graphics.Color;
import com.facebook.testing.robolectric.v2.WithTestDefaultsRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
@RunWith(WithTestDefaultsRunner.class)
public class RoundingParamsTest {
private RoundingParams mRoundingParams;
@Before
public void setUp() {
mRoundingParams = new RoundingParams();
}
@Test
public void testDefaults() {
assertEquals(RoundingParams.RoundingMethod.BITMAP_ONLY, mRoundingParams.getRoundingMethod());
assertFalse(mRoundingParams.getRoundAsCircle());
assertNull(mRoundingParams.getCornersRadii());
assertEquals(0, mRoundingParams.getOverlayColor());
}
@Test
public void testSetCircle() {
assertSame(mRoundingParams, mRoundingParams.setRoundAsCircle(true));
assertTrue(mRoundingParams.getRoundAsCircle());
assertSame(mRoundingParams, mRoundingParams.setRoundAsCircle(false));
assertFalse(mRoundingParams.getRoundAsCircle());
}
@Test
public void testSetRadii() {
mRoundingParams.setCornersRadius(9);
assertArrayEquals(new float[]{9, 9, 9, 9, 9, 9, 9, 9}, mRoundingParams.getCornersRadii(), 0f);
mRoundingParams.setCornersRadii(8, 7, 2, 1);
assertArrayEquals(new float[]{8, 8, 7, 7, 2, 2, 1, 1}, mRoundingParams.getCornersRadii(), 0f);
mRoundingParams.setCornersRadii(new float[]{1, 2, 3, 4, 5, 6, 7, 8});
assertArrayEquals(new float[]{1, 2, 3, 4, 5, 6, 7, 8}, mRoundingParams.getCornersRadii(), 0f);
}
@Test
public void testSetRoundingMethod() {
mRoundingParams.setRoundingMethod(RoundingParams.RoundingMethod.OVERLAY_COLOR);
assertEquals(RoundingParams.RoundingMethod.OVERLAY_COLOR, mRoundingParams.getRoundingMethod());
mRoundingParams.setRoundingMethod(RoundingParams.RoundingMethod.BITMAP_ONLY);
assertEquals(RoundingParams.RoundingMethod.BITMAP_ONLY, mRoundingParams.getRoundingMethod());
}
@Test
public void testSetOverlayColor() {
mRoundingParams.setOverlayColor(0xC0123456);
assertEquals(0xC0123456, mRoundingParams.getOverlayColor());
assertEquals(RoundingParams.RoundingMethod.OVERLAY_COLOR, mRoundingParams.getRoundingMethod());
}
@Test
public void testSetBorder() {
int borderColor = Color.RED;
float borderWidth = 0.8f;
mRoundingParams.setBorder(borderColor, borderWidth);
assertEquals(borderColor, mRoundingParams.getBorderColor());
assertEquals(borderWidth, mRoundingParams.getBorderWidth(), 0);
}
@Test
public void testFactoryMethods() {
RoundingParams params1 = RoundingParams.asCircle();
assertTrue(params1.getRoundAsCircle());
RoundingParams params2 = RoundingParams.fromCornersRadius(9);
assertFalse(params2.getRoundAsCircle());
assertArrayEquals(new float[]{9, 9, 9, 9, 9, 9, 9, 9}, params2.getCornersRadii(), 0f);
RoundingParams params3 = RoundingParams.fromCornersRadii(8, 7, 2, 1);
assertFalse(params3.getRoundAsCircle());
assertArrayEquals(new float[]{8, 8, 7, 7, 2, 2, 1, 1}, params3.getCornersRadii(), 0f);
RoundingParams params4 = RoundingParams.fromCornersRadii(new float[]{1, 2, 3, 4, 5, 6, 7, 8});
assertFalse(params4.getRoundAsCircle());
assertArrayEquals(new float[]{1, 2, 3, 4, 5, 6, 7, 8}, params4.getCornersRadii(), 0f);
}
}