package org.robolectric.shadows;
import android.view.Gravity;
import android.widget.LinearLayout;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.TestRunners;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertSame;
import static org.robolectric.Shadows.shadowOf;
@RunWith(TestRunners.MultiApiSelfTest.class)
public class ShadowLinearLayoutTest {
private LinearLayout linearLayout;
private ShadowLinearLayout shadow;
@Before
public void setup() throws Exception {
linearLayout = new LinearLayout(RuntimeEnvironment.application);
shadow = shadowOf(linearLayout);
}
@Test
public void getLayoutParams_shouldReturnTheSameLinearLayoutParamsFromTheSetter() throws Exception {
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(1, 2);
linearLayout.setLayoutParams(params);
assertSame(params, linearLayout.getLayoutParams());
}
@Test
public void canAnswerOrientation() throws Exception {
assertThat(linearLayout.getOrientation()).isEqualTo(LinearLayout.HORIZONTAL);
linearLayout.setOrientation(LinearLayout.VERTICAL);
assertThat(linearLayout.getOrientation()).isEqualTo(LinearLayout.VERTICAL);
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
assertThat(linearLayout.getOrientation()).isEqualTo(LinearLayout.HORIZONTAL);
}
@Test
public void canAnswerGravity() throws Exception {
assertThat(shadow.getGravity()).isEqualTo(Gravity.TOP | Gravity.START);
linearLayout.setGravity(Gravity.CENTER_VERTICAL); // Only affects horizontal.
assertThat(shadow.getGravity()).isEqualTo(Gravity.CENTER_VERTICAL | Gravity.START);
linearLayout.setGravity(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL); // Affects both directions.
assertThat(shadow.getGravity()).isEqualTo(Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
}
}