package de.axone.cache.ng;
import static de.axone.cache.ng.CacheNGAssert.*;
import static de.axone.cache.ng.CacheNGTestHelpers.*;
import static de.axone.cache.ng.CacheNGTest_Implementations.*;
import static org.assertj.core.api.Assertions.*;
import static org.testng.Assert.*;
import org.testng.annotations.Test;
import de.axone.cache.ng.CacheNGTestHelpers.Aid;
import de.axone.cache.ng.CacheNGTestHelpers.RN;
import de.axone.cache.ng.CacheNGTestHelpers.TArticle;
import de.axone.tools.E;
@Test( groups="cacheng.basic" )
public class CacheNGTest_ArticleForId {
static class TestAccessor_ArticleForAid
implements CacheNG.UniversalAccessor<Aid, TArticle>,
CacheNG.CacheEventListener<Aid>{
@Override
public TArticle fetch( Aid identifier ) {
if( identifier.name().startsWith( "-" ) ) return null;
else return TArticle.build( identifier );
}
@Override
public void invalidateEvent( Aid key ) {
E.cho( "------" + key + "-----------" );
}
@Override
public void invalidateAllEvent( boolean force ) {
E.cho( "--------ALL: " + force + " -------------" );
}
}
public void cacheArticlesForIds(){
TestAccessor_ArticleForAid accessor =
new TestAccessor_ArticleForAid();
CacheNG.AutomaticClient<Aid,TArticle> auto =
new AutomaticClientImpl<>( new CacheHashMap<>( RN.AID_ARTICLE ) );
assertFalse( auto.isCached( A12345 ) );
TArticle art = auto.fetch( A12345, accessor );
assertThat( art ).isNotNull();
assertThat( auto ).hasCached( A12345 );
assertThat( art )
.is( havingIdentifier( aid( "12345" ) ) )
.is( havingTid( T123 ) )
.is( havingTid( T234 ) )
;
auto.invalidate( A12345 );
assertThat( auto ).hasNotCached( A12345 );
}
}