### Question:
PartialDataModelMirror implements DataModelMirror { @Override public PropertyMirror findProperty(String name) { Objects.requireNonNull(name, "name must not be null"); return prepareProperties().get(JavaName.of(name).toMemberName()); } PartialDataModelMirror(
            CompileEnvironment environment,
            TypeVariable type,
            PropertyMirrorCollector collector); @Override String getSimpleName(); @Override Kind getKind(); @Override boolean isSame(DataModelMirror other); @Override boolean canInvoke(DataModelMirror other); @Override boolean canContain(DataModelMirror other); @Override PropertyMirror findProperty(String name); @Override String toString();  }### Answer:
@Test public void findProperty() { DataModelMirror type = new PartialDataModelMirror( apt.env, apt.getTypeVariable("TStringBuilder", "T"), new MockPropertyMirrorCollector()); PropertyMirror property = type.findProperty("string_builder"); assertThat(property.getName(), is(equalToIgnoringCase(StringBuilder.class.getSimpleName()))); assertThat(property.getType(), is(apt.sameType(StringBuilder.class))); }
@Test public void findProperty_multiple() { DataModelMirror type = new PartialDataModelMirror( apt.env, apt.getTypeVariable("TMultiple", "T"), new MockPropertyMirrorCollector()); assertThat(type.findProperty("number"), is(notNullValue())); assertThat(type.findProperty("char_sequence"), is(notNullValue())); }