@Test
  public void whenValueModelUpdated_thenViewShouldReflectChanges() {
    attribute.valueModelUpdated(checkedItemPositions);

    assertThat(
        SparseBooleanArrayUtils.toSet(view.getCheckedItemPositions()),
        equalTo(checkedItemPositions));
  }
  @Test
  public void whenCheckedItemPositionChanged_thenValueModelUpdatedAccordingly() {
    ValueModel<SparseBooleanArray> valueModel =
        twoWayBindToProperty(SparseBooleanArray.class, new SparseBooleanArray());

    setItemsChecked(SparseBooleanArrayUtils.toSet(checkedItemPositions));

    assertSparseBooleanArrayEquals(checkedItemPositions, valueModel.getValue());
  }
 private void preInitializeCheckedItemPositionsToRandomState() {
   setItemsChecked(SparseBooleanArrayUtils.toSet(anySparseBooleanArray()));
 }
 private void assertSparseBooleanArrayEquals(
     SparseBooleanArray expected, SparseBooleanArray actual) {
   Set<Integer> expectedSet = SparseBooleanArrayUtils.toSet(expected);
   Set<Integer> actualSet = SparseBooleanArrayUtils.toSet(actual);
   assertThat(actualSet, equalTo(expectedSet));
 }
  @Before
  public void setUp() {
    super.setUp();

    checkedItemPositions = SparseBooleanArrayUtils.toSet(anySparseBooleanArray());
  }