@Test
public void testCatalinaFactories() throws Exception {
ServiceLoaderTomcatFactory factory = new ServiceLoaderTomcatFactory(this.serverFactory, this.engineFactory, this.hostFactory, this.contextFactory, this.connectorFactory, this.provider);
org.apache.catalina.Server catalinaServer = mock(org.apache.catalina.Server.class);
Server server = mock(Server.class);
when(this.serverFactory.createServer(same(factory), same(catalinaServer))).thenReturn(server);
assertSame(server, factory.createServer(catalinaServer));
org.apache.catalina.Service service = mock(org.apache.catalina.Service.class);
org.apache.catalina.Engine catalinaEngine = mock(org.apache.catalina.Engine.class);
Engine engine = mock(Engine.class);
when(catalinaEngine.getService()).thenReturn(service);
when(service.getServer()).thenReturn(catalinaServer);
when(this.engineFactory.createEngine(same(factory), same(catalinaEngine), same(server))).thenReturn(engine);
assertSame(engine, factory.createEngine(catalinaEngine));
org.apache.catalina.Host catalinaHost = mock(org.apache.catalina.Host.class);
Host host = mock(Host.class);
when(catalinaHost.getParent()).thenReturn(catalinaEngine);
when(this.hostFactory.createHost(same(factory), same(catalinaHost), same(engine))).thenReturn(host);
assertSame(host, factory.createHost(catalinaHost));
org.apache.catalina.Context catalinaContext = mock(org.apache.catalina.Context.class);
Context context = mock(Context.class);
when(catalinaContext.getParent()).thenReturn(catalinaHost);
when(this.contextFactory.createContext(same(catalinaContext), same(host))).thenReturn(context);
assertSame(context, factory.createContext(catalinaContext));
}