package com.bumptech.glide.request; import static com.google.common.truth.Truth.assertThat; import android.graphics.Bitmap; import com.bumptech.glide.load.Transformation; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) @Config(manifest = Config.NONE) public class RequestOptionsTest { private RequestOptions options; @Mock private Transformation<Bitmap> transformation; @Before public void setUp() { MockitoAnnotations.initMocks(this); options = new RequestOptions(); } @Test public void testIsTransformationRequired_byDefault_isFalse() { assertThat(options.isTransformationRequired()).isFalse(); } @Test public void testIsTransformationSet_byDefault_isFalse() { assertThat(options.isTransformationSet()).isFalse(); } @Test public void testIsTransformationAllowed_byDefault_isTrue() { assertThat(options.isTransformationAllowed()).isTrue(); } @Test public void testIsTransformationSet_afterApplyingOptionsWithTransform_isTrue() { RequestOptions other = new RequestOptions(); other.transform(Bitmap.class, transformation); options.apply(other); assertThat(options.isTransformationSet()).isTrue(); } @Test public void testIsTransformationSet_afterDontTransform_isFalse() { options.dontTransform(); assertThat(options.isTransformationSet()).isFalse(); } @Test public void testIsTransformationAllowed_afterDontTransform_isFalse() { options.dontTransform(); assertThat(options.isTransformationAllowed()).isFalse(); } @Test public void testIsTransformationRequired_afterDontTransform_isFalse() { options.dontTransform(); assertThat(options.isTransformationRequired()).isFalse(); } @Test public void testApplyingDontTransform_overridesTransformations() { options.transform(transformation); options.dontTransform(); assertThat(options.isTransformationSet()).isFalse(); assertThat(options.isTransformationRequired()).isFalse(); assertThat(options.getTransformations()).isEmpty(); } @Test public void testApplyingTransformation_overridesDontTransform() { options.dontTransform(); options.transform(transformation); assertThat(options.isTransformationAllowed()).isTrue(); assertThat(options.isTransformationRequired()).isTrue(); assertThat(options.getTransformations()).containsEntry(Bitmap.class, transformation); } @Test public void testApplyingOptions_withDontTransform_overridesTransformations() { options.transform(transformation); RequestOptions other = new RequestOptions(); other.dontTransform(); options.apply(other); assertThat(options.isTransformationAllowed()).isFalse(); assertThat(options.isTransformationSet()).isFalse(); assertThat(options.isTransformationRequired()).isFalse(); assertThat(options.getTransformations()).isEmpty(); } @Test public void testApplyingOptions_withTransformation_overridesDontTransform() { options.dontTransform(); RequestOptions other = new RequestOptions(); other.transform(transformation); options.apply(other); assertThat(options.isTransformationAllowed()).isTrue(); assertThat(options.isTransformationSet()).isTrue(); assertThat(options.isTransformationRequired()).isTrue(); assertThat(options.getTransformations()).containsEntry(Bitmap.class, transformation); } @Test public void testApplyingDefaultOptions_withDontTransform_retainsDontTransform() { options.dontTransform(); options.apply(new RequestOptions()); assertThat(options.isTransformationAllowed()).isFalse(); assertThat(options.isTransformationRequired()).isFalse(); assertThat(options.getTransformations()).isEmpty(); } @Test public void testApplyingDefaultOptions_withTransform_retrainsTransform() { options.transform(transformation); options.apply(new RequestOptions()); assertThat(options.isTransformationAllowed()).isTrue(); assertThat(options.isTransformationRequired()).isTrue(); assertThat(options.getTransformations()).containsEntry(Bitmap.class, transformation); } }