@Override public Server getServer() { if (this.server != null) return this.server; this.server = this.findServer(); return this.server; }
public TomcatEventHandlerAdapter(ContainerEventHandler eventHandler, TomcatConnectorConfiguration connectorConfiguration) { this(eventHandler, new JMXServerProvider(ManagementFactory.getPlatformMBeanServer(), toObjectName("Catalina:type=Server")), new ConfigurableProxyConnectorProvider(connectorConfiguration)); }
@Test public void test() throws Exception { MBeanServer mbeanServer = mock(MBeanServer.class); ObjectName name = ObjectName.getInstance("Catalina:type=Server"); Server expected = mock(Server.class); Service service = mock(Service.class); when(mbeanServer.invoke(same(name), eq("findServices"), (Object[]) isNull(), (String[]) isNull())).thenReturn(new Service[] { service }); when(service.getServer()).thenReturn(expected); ServerProvider provider = new JMXServerProvider(mbeanServer, name); Server result = provider.getServer(); assertSame(expected, result); }
@Test public void testNotFound() throws Exception { MBeanServer mbeanServer = mock(MBeanServer.class); ObjectName name = ObjectName.getInstance("Catalina:type=Server"); when(mbeanServer.invoke(same(name), eq("findServices"), (Object[]) isNull(), (String[]) isNull())).thenThrow(new InstanceNotFoundException()); ServerProvider provider = new JMXServerProvider(mbeanServer, name); RuntimeException exception = null; try { provider.getServer(); } catch (IllegalStateException e) { exception = e; } assertNotNull(exception); } }