### Question:
PropertiesImpl implements Properties { @Override public Properties resolveBy(Resolver resolver) { return withEachComponent(c -> c.resolveBy(resolver)); }  static Properties flat(List<Properties> properties); @Override Properties resolveBy(Resolver resolver); @Override Properties withoutVars(); @Override Properties without(Predicate<Property> excluded); @Override Properties withPrefix(String prefix); @Override Map<String, Property> getPropertiesAsMap(); @Override Map<String, String> getPropertiesAsKeyValue(); @Override Collection<Property> getProperties(); @Override Optional<Property> getPropertyWithKey(String key); @Override List<T> save(PropertySerializer<T> serializer); @Override List<TypedProperties> asTypedProperties(); @Override TypedProperties first(); @Override Properties forEachComponent(UnaryOperator<TypedProperties> callback);  }### Answer:
@Test void resolveBy() { TypedProperties r1 = mock(TypedProperties.class); TypedProperties r2 = mock(TypedProperties.class); Resolver resolver = mock(Resolver.class); when(tp1.resolveBy(resolver)).thenReturn(r1); when(tp2.resolveBy(resolver)).thenReturn(r2); assertEquals( new PropertiesImpl(asList(r1, r2)), subj.resolveBy(resolver) ); }