@Override public void destroy(ServerDescriptor descriptor, ServerInstance instance, DeploymentInfo context) { instance.stop(); }
@Override protected void runChild(FrameworkMethod method, RunNotifier notifier) { super.runChild(method, notifier); if (method.getAnnotation(Ignore.class) == null) { clientContext.getInstance().close(); serverContext.getInstance().stop(); interceptor.getMethodTestNeeds().destory(); interceptor.getMethodTestNeedContainers().destory(); } }
@Override public DeploymentInfo configuration(ServerDescriptor descriptor) { try { App app = descriptor.getApp(); Set<Class<?>> handles = descriptor.getHandlesType(); String name = descriptor.getTestClassName(); Class<? extends ServletContainerInitializer> servletType = descriptor.getServletContainerInitializer(); ServletContainerInitializer servlet = servletType.newInstance(); ImmediateInstanceFactory<ServletContainerInitializer> factory = new ImmediateInstanceFactory<>(servlet); URI uri = URI.create("http://0.0.0.0:0/"); ServletContainerInitializerInfo initInfo = new ServletContainerInitializerInfo(servletType, factory, handles); DeploymentInfo deploymentInfo = Servlets.deployment() .addServletContainerInitalizer(initInfo) .setClassLoader(descriptor.getTestClass().getClassLoader()) .setHostName(uri.getHost()) .setContextPath(uri.getPath()) .setDeploymentName(name) .addServlet(Servlets.servlet(name, DefaultServlet.class)); return deploymentInfo; } catch (Exception e) { throw new IllegalStateException(e); } }
); Object configuration = provider.configuration(descriptor); testContext.getConfigMethod(configuration.getClass()) .map(m -> m.getMethod()) }); ServerInstance serverInstance = provider.init(descriptor, configuration); serverInstance.start(); = new ServerContext(provider, descriptor, serverInstance, serviceLocator, configuration); serviceLocator.addConstant(serverContext.getClass().getSimpleName(), serverContext);
= new SpringSystemClientDescriptor(app, testContext, serverContext.getInstance().getURI() ); ServiceLocator serviceLocator = serverContext.getLocator(); ClientContext context = new ClientContext(clientProvider, descriptor, instance, configuration);
clientContext = getClientContext(testContext, serverContext); ServiceLocator serviceLocator = serverContext.getLocator();
@Override public DeploymentInfo configuration(ServerDescriptor descriptor) { try { App app = descriptor.getApp(); Set<Class<?>> handles = descriptor.getHandlesType(); String name = descriptor.getTestClassName(); ServletContainerInitializer initializer = descriptor.getServletContainerInitializer(); ImmediateInstanceFactory<ServletContainerInitializer> factory = new ImmediateInstanceFactory<>(initializer); URI uri = URI.create("http://0.0.0.0:0/"); ServletContainerInitializerInfo initInfo = new ServletContainerInitializerInfo(initializer.getClass(), factory, handles); ServletInfo servletInfo = Servlets.servlet(name, DefaultServlet.class) .setAsyncSupported(true); DeploymentInfo deploymentInfo = Servlets.deployment() .addServletContainerInitalizer(initInfo) .setClassLoader(descriptor.getTestClass().getClassLoader()) .setHostName(uri.getHost()) .setContextPath(uri.getPath()) .setDeploymentName(name) .addServlet(servletInfo); return deploymentInfo; } catch (Exception e) { throw new IllegalStateException(e); } }
@Override public void destroy(ServerDescriptor descriptor, ServerInstance instance, DeploymentInfo context) { instance.stop(); }