final ObservableMap<String,String> observable = new ObservableMap<String,String>( base );
base.put( "a", "1" );
base.put( "b", "2" );
final EventLog log = new EventLog();
observable.attach( log );
observable.put( "c", "3" );
assertEquals( MapFactory.start().add( "a", "1" ).add( "b", "2" ).add( "c", "3" ).result(), base );
assertEquals( 1, log.size() );
log.clear();
observable.put( "b", "22" );
assertEquals( MapFactory.start().add( "a", "1" ).add( "b", "22" ).add( "c", "3" ).result(), base );
assertEquals( 1, log.size() );
log.clear();
observable.put( "c", "3" );
assertEquals( MapFactory.start().add( "a", "1" ).add( "b", "22" ).add( "c", "3" ).result(), base );
assertEquals( 0, log.size() );
}