package io.fotoapparat.parameter.selector;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentMatchers;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import io.fotoapparat.parameter.Size;
import static io.fotoapparat.test.TestUtils.asSet;
import static java.util.Arrays.asList;
import static junit.framework.Assert.assertEquals;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public class AspectRatioSelectorsTest {
@Mock
SelectorFunction<Size> sizeSelector;
@Test
public void standardRatio() throws Exception {
// Given
given(sizeSelector.select(ArgumentMatchers.<Size>anyCollection()))
.willReturn(new Size(4, 3));
// When
Size result = AspectRatioSelectors
.standardRatio(sizeSelector)
.select(asList(
new Size(4, 3),
new Size(8, 6),
new Size(10, 10)
));
// Then
assertEquals(
new Size(4, 3),
result
);
verify(sizeSelector).select(asSet(
new Size(4, 3),
new Size(8, 6)
));
}
@Test
public void wideRatio() throws Exception {
// Given
given(sizeSelector.select(ArgumentMatchers.<Size>anyCollection()))
.willReturn(new Size(16, 9));
// When
Size result = AspectRatioSelectors
.wideRatio(sizeSelector)
.select(asList(
new Size(16, 9),
new Size(32, 18),
new Size(10, 10)
));
// Then
assertEquals(
new Size(16, 9),
result
);
verify(sizeSelector).select(asSet(
new Size(16, 9),
new Size(32, 18)
));
}
}