fallbackProp.put( "default.long.dotted.prop3", "hello!" );
Properties masked = new MaskedProperty( rootProp, "some", fallbackProp );
assertTrue( masked.keySet().contains( "long.dotted.prop1" ) );
assertTrue( masked.keySet().contains( "default.long.dotted.prop3" ) );
assertTrue( masked.keySet().contains( "inherited.prop" ) );
assertFalse( masked.keySet().contains( "hidden.long.dotted.prop2" ) );
assertFalse( masked.keySet().contains( "long.dotted.prop2" ) );
Properties maskedAgain = new MaskedProperty( masked, "long.dotted", masked ); //falling back to same instance for **
assertTrue( maskedAgain.keySet().contains( "prop1" ) );