package com.airbnb.android.airmapview;
import org.junit.Before;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.junit.Assert.assertThat;
public class DefaultAirMapViewBuilderTest {
@Before public void setUp() {
}
@Test public void shouldReturnNativeAirMapViewByDefault() {
DefaultAirMapViewBuilder factory = new DefaultAirMapViewBuilder(null, true);
assertThat(factory.builder(), instanceOf(NativeAirMapViewBuilder.class));
}
@Test public void shouldReturnWebAirMapViewIfDefaultNotSupported() {
DefaultAirMapViewBuilder factory = new DefaultAirMapViewBuilder(null, false);
assertThat(factory.builder(), instanceOf(WebAirMapViewBuilder.class));
}
@Test public void shouldReturnNativeAirMapViewWhenRequestedExplicitly() {
DefaultAirMapViewBuilder factory = new DefaultAirMapViewBuilder(null, true);
AirMapViewBuilder builder = factory.builder(AirMapViewTypes.NATIVE);
assertThat(builder, instanceOf(NativeAirMapViewBuilder.class));
}
@Test(expected = UnsupportedOperationException.class)
public void shouldThrowWhenRequestedNativeWebViewAndNotSupported() {
DefaultAirMapViewBuilder factory = new DefaultAirMapViewBuilder(null, false);
factory.builder(AirMapViewTypes.NATIVE);
}
@Test public void shouldReturnWebAirMapViewWhenRequestedExplicitly() {
DefaultAirMapViewBuilder factory = new DefaultAirMapViewBuilder(null, false);
AirMapViewBuilder builder = factory.builder(AirMapViewTypes.WEB);
assertThat(builder, instanceOf(WebAirMapViewBuilder.class));
}
}