private void testPageLinkCreation2(String pageName, boolean overrideContext, Object... context)
{
PageActivationContextCollector collector = mockPageActivationContextCollector();
LinkCreationListener2 listener = mockLinkCreationListener2();
ComponentEventLinkEncoder linkEncoder = mockComponentEventLinkEncoder();
Link link = mockLink();
ComponentClassResolver resolver = mockComponentClassResolver();
String canonical = "CanonicalPageName";
RequestGlobals globals = mockRequestGlobals();
// Ensure that the loopback logic is off; loopback logic is fully tested via an
// integration test.
expect(globals.getActivePageName()).andReturn("someOtherPage");
train_canonicalizePageName(resolver, pageName, canonical);
if (!overrideContext)
train_collectPageActivationContext(collector, canonical, context);
PageRenderRequestParameters parameters = new PageRenderRequestParameters(canonical, new ArrayEventContext(
typeCoercer, context), false);
expect(linkEncoder.createPageRenderLink(parameters)).andReturn(link);
listener.createdPageRenderLink(link, parameters);
replay();
LinkSource source = new LinkSourceImpl(null, collector, typeCoercer, resolver, linkEncoder, globals, null,
emptyConfiguration);
source.getLinkCreationHub().addListener(listener);
Object[] passedContext = overrideContext ? context : new Object[0];
Link returnedLink = source.createPageRenderLink(pageName, overrideContext, passedContext);
assertSame(returnedLink, link);
verify();
}