package io.pivotal.arca.fragments;
import android.database.Cursor;
import android.test.AndroidTestCase;
import android.view.View;
import java.util.Arrays;
import java.util.Collection;
import io.pivotal.arca.adapters.Binding;
import io.pivotal.arca.adapters.ViewBinder;
import io.pivotal.arca.monitor.RequestMonitor;
public class FragmentUtilsTest extends AndroidTestCase {
private static final int FRAGMENT_LAYOUT = 100;
private static final int ADAPTER_ITEM_LAYOUT = 200;
public void testFragmentLayoutAnnotation() {
final int layout = FragmentUtils.getFragmentLayout(TestAllAnnotations.class);
assertEquals(FRAGMENT_LAYOUT, layout);
}
public void testAdapterItemLayoutAnnotation() {
final int layout = FragmentUtils.getAdapterItemLayout(TestAllAnnotations.class);
assertEquals(ADAPTER_ITEM_LAYOUT, layout);
}
public void testAdapterItemLayoutAnnotationNotFound() {
final int layout = FragmentUtils.getAdapterItemLayout(TestRequiredAnnotations.class);
assertEquals(0, layout);
}
public void testMonitorAnnotation() {
final RequestMonitor monitor = FragmentUtils.createRequestMonitor(TestAllAnnotations.class);
final TestRequestMonitor requestMonitor = (TestRequestMonitor) monitor;
assertNotNull(requestMonitor);
}
public void testMonitorAnnotationNotFound() {
final RequestMonitor monitor = FragmentUtils.createRequestMonitor(TestRequiredAnnotations.class);
assertNull(monitor);
}
public void testBinderAnnotation() {
final ViewBinder binder = FragmentUtils.createViewBinder(TestAllAnnotations.class);
final TestViewBinder viewBinder = (TestViewBinder) binder;
assertNotNull(viewBinder);
}
public void testBinderAnnotationNotFound() {
final ViewBinder binder = FragmentUtils.createViewBinder(TestRequiredAnnotations.class);
assertNull(binder);
}
public void testBindingsAnnotation() {
final Collection <Binding> bindings = FragmentUtils.getBindings(TestAllAnnotations.class);
assertNotNull(bindings);
assertEquals(3, bindings.size());
}
public void testBindingsAnnotationNotFound() {
try {
FragmentUtils.getBindings(TestRequiredAnnotations.class);
fail();
} catch (final Exception e) {
assertNotNull(e);
}
}
@ArcaFragment(
fragmentLayout = FRAGMENT_LAYOUT,
adapterItemLayout = ADAPTER_ITEM_LAYOUT,
binder = TestViewBinder.class,
monitor = TestRequestMonitor.class
)
private static final class TestAllAnnotations {
@ArcaFragmentBindings
private static final Collection<Binding> BINDINGS = Arrays.asList(
new Binding(0, "0"), new Binding(1, "1"), new Binding(2, "2")
);
}
@ArcaFragment(
fragmentLayout = FRAGMENT_LAYOUT
)
private static final class TestRequiredAnnotations {
}
public static final class TestViewBinder implements ViewBinder{
@Override
public boolean setViewValue(final View view, final Cursor cursor, final Binding binding) {
return false;
}
}
public static final class TestRequestMonitor extends RequestMonitor.AbstractRequestMonitor {
}
}