}
@Test
public void diff_locales()
{
final Page germanPage = new NoOpPage("p1", Locale.GERMAN);
final Page frenchPage = new NoOpPage("p1", Locale.FRENCH);
PageLoader loader = new PageLoader()
{
public void addInvalidationListener(InvalidationListener listener)
{
}
public Page loadPage(String pageClassName, Locale locale)
{
if (pageClassName.equals("p1"))
{
return locale.equals(Locale.GERMAN) ? germanPage
: locale.equals(Locale.FRENCH) ? frenchPage : null;
}
return null;
}
};
ThreadLocale threadLocale = new ThreadLocaleImpl();
PagePool pool = new PagePoolImpl(null, loader, threadLocale);
threadLocale.setLocale(Locale.GERMAN);
Page page = pool.checkout("p1");
assertSame(page, germanPage);
pool.release(page);
threadLocale.setLocale(Locale.FRENCH);
page = pool.checkout("p1");
assertSame(page, frenchPage);