### Question:
PropertiesImpl implements Properties { @Override public <T> List<T> save(PropertySerializer<T> serializer) { return forEach(properties, p -> p.save(serializer)); }  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 @SuppressWarnings("unchecked") void save() { PropertySerializer<Integer> serializer = mock(PropertySerializer.class); when(tp1.save(serializer)).thenReturn(1); when(tp2.save(serializer)).thenReturn(2); assertEquals( asList(1, 2), subj.save(serializer) ); }