package me.tatarka.bindingcollectionadapter2;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.util.Arrays;
import java.util.List;
import me.tatarka.bindingcollectionadapter2.itembindings.ItemBindingModel;
import me.tatarka.bindingcollectionadapter2.itembindings.OnItemBindModel;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(JUnit4.class)
public class OnItemBindModelTest {
@Test
public void selectsBasedOnItem() {
OnItemBindModel<ItemBindingModel> onItemBind = new OnItemBindModel<>();
ItemBinding<ItemBindingModel> itemBinding = ItemBinding.of(onItemBind);
List<ItemBindingModel> list = Arrays.asList(new ItemBindingModelOne(), new ItemBindingModelTwo());
itemBinding.onItemBind(0, list.get(0));
assertThat(itemBinding.variableId()).isEqualTo(0);
assertThat(itemBinding.layoutRes()).isEqualTo(1);
itemBinding.onItemBind(1, list.get(1));
assertThat(itemBinding.variableId()).isEqualTo(2);
assertThat(itemBinding.layoutRes()).isEqualTo(3);
}
public static class ItemBindingModelOne implements ItemBindingModel {
@Override
public void onItemBind(ItemBinding itemBinding) {
itemBinding.set(0, 1);
}
}
public static class ItemBindingModelTwo implements ItemBindingModel {
@Override
public void onItemBind(ItemBinding itemBinding) {
itemBinding.set(2, 3);
}
}
}