package com.beloo.widget.chipslayoutmanager.gravity;
|
|
import android.graphics.Rect;
|
|
|
import com.beloo.widget.chipslayoutmanager.ParamsType;
|
|
import org.junit.Assume;
|
import org.junit.Before;
|
import org.junit.Test;
|
import org.junit.runner.RunWith;
|
import org.junit.runners.Parameterized;
|
|
import static com.beloo.widget.chipslayoutmanager.ParamsType.INVALID;
|
import static com.beloo.widget.chipslayoutmanager.ParamsType.VALID;
|
import static org.junit.Assert.assertEquals;
|
|
@RunWith(Parameterized.class)
|
abstract class GravityModifierTest {
|
|
private IGravityModifier gravityModifier;
|
|
@Before
|
public void setUp() {
|
gravityModifier = getGravityModifier();
|
}
|
|
protected abstract IGravityModifier getGravityModifier();
|
|
private ParamsType paramsType;
|
private int minTop;
|
private int maxBottom;
|
private Rect testRect;
|
private Rect expectedResultRect;
|
|
GravityModifierTest(ParamsType paramsType, int minTop, int maxBottom, Rect testRect, Rect expectedResultRect) {
|
this.paramsType = paramsType;
|
this.minTop = minTop;
|
this.maxBottom = maxBottom;
|
this.testRect = testRect;
|
this.expectedResultRect = expectedResultRect;
|
}
|
|
@Test(expected = IllegalArgumentException.class)
|
public void invalidDataForModifierShouldThrowIllegalArgumentException() {
|
Assume.assumeTrue(paramsType.equals(INVALID));
|
gravityModifier.modifyChildRect(minTop, maxBottom, testRect);
|
}
|
|
@Test
|
public void modifierShouldAlignInputRect() {
|
Assume.assumeTrue(paramsType.equals(VALID));
|
Rect resultRect = gravityModifier.modifyChildRect(minTop, maxBottom, testRect);
|
assertEquals(expectedResultRect, resultRect);
|
}
|
|
}
|