### Question:
ViewBindingInfoBuilder { public ViewBindingInfo build() { WrappedTypeElement viewType = extractViewType(); List<SimpleOneWayPropertyInfo> simpleOneWayPropertyInfoList = extractSimpleOneWayPropertyInfoList(viewType); return new ViewBindingInfo(typeElement.qName(), viewBindingObjectTypeName, viewType, simpleOneWayPropertyInfoList); } ViewBindingInfoBuilder(WrappedTypeElement typeElement, String viewBindingObjectTypeName); ViewBindingInfo build();  }### Answer:
@Test public void givenValidImageViewBinding_whenBuildViewBindingInfo_thenReturnExpectedResult() { WrappedTypeElement typeElement = typeElementOf(ViewBindingWithVariousProperties.class); ViewBindingInfoBuilder builder = new ViewBindingInfoBuilder(typeElement, viewBindingObjectTypeName); ViewBindingInfo viewBindingInfo = builder.build(); ViewBindingInfo expectedViewBindingInfo = new ViewBindingInfo( ViewBindingWithVariousProperties.class.getName(), viewBindingObjectTypeName, typeElementOf(ViewWithProperties.class), Lists.newArrayList(new SimpleOneWayPropertyInfo(looseSetterOf(ViewWithProperties.PRIMITIVE_PROP)), new SimpleOneWayPropertyInfo(looseSetterOf(ViewWithProperties.OBJECT_PROP)))); Assert.assertThat(viewBindingInfo, equalTo(expectedViewBindingInfo)); }
@Test(expected=RuntimeException.class) public void givenNotCustomViewBindingSubclass_whenBuildViewBindingInfo_thenThrowUnsupportedViewBindingError() { WrappedTypeElement typeElement = typeElementOf(NotCustomViewBindingSubclass.class); ViewBindingInfoBuilder builder = new ViewBindingInfoBuilder(typeElement, viewBindingObjectTypeName); builder.build(); }