@Test
  public void whenCheckedItemPositionChanged_thenValueModelUpdatedAccordingly() {
    ValueModel<SparseBooleanArray> valueModel =
        twoWayBindToProperty(SparseBooleanArray.class, new SparseBooleanArray());

    setItemsChecked(SparseBooleanArrayUtils.toSet(checkedItemPositions));

    assertSparseBooleanArrayEquals(checkedItemPositions, valueModel.getValue());
  }
  @Test
  public void
      givenAPropertyViewAttributeWithTwoWayBinding_whenTheViewIsUpdated_thenValueModelShouldBeUpdated() {
    setupAndBindAttribute(TWO_WAY_BINDING, DONT_PRE_INITIALIZE_VIEW);

    attribute.simulateViewUpdate(A_NEW_VALUE);

    assertThat(valueModel.getValue(), is(A_NEW_VALUE));
  }
 public void preInitializeView(BindingContext presentationModelAdapter) {
   ValueModel<PropertyType> valueModel = getPropertyValueModel(presentationModelAdapter);
   valueModelUpdated(valueModel.getValue());
 }
 @Override
 public PropertyType getValue() {
   return propertyValueModel.getValue();
 }