### Question:
ServiceConfig extends AbstractServiceConfig { public synchronized void unexport() { if (!exported) { return; } if (unexported) { return; } if (!exporters.isEmpty()) { for (Exporter<?> exporter : exporters) { try { exporter.unexport(); } catch (Throwable t) { logger.warn("unexpected err when unexport" + exporter, t); } } exporters.clear(); } unexported = true; } ServiceConfig();  ServiceConfig(Service service); URL toUrl(); List<URL> toUrls(); @Parameter(excluded = true) boolean isExported(); @Parameter(excluded = true) boolean isUnexported(); synchronized void export(); synchronized void unexport(); Class<?> getInterfaceClass(); void setInterfaceClass(Class<?> interfaceClass); String getInterface(); void setInterface(String interfaceName); void setInterface(Class<?> interfaceClass); T getRef(); void setRef(T ref); @Parameter(excluded = true) String getPath(); void setPath(String path); List<MethodConfig> getMethods(); @SuppressWarnings("unchecked") void setMethods(List<? extends MethodConfig> methods); ProviderConfig getProvider(); void setProvider(ProviderConfig provider); String getGeneric(); void setGeneric(String generic); List<URL> getExportedUrls(); @Deprecated List<ProviderConfig> getProviders(); @Deprecated void setProviders(List<ProviderConfig> providers); @Parameter(excluded = true) String getUniqueServiceName();  }### Answer:
@Test @Ignore("cannot pass in travis") public void testUnexport() throws Exception { System.setProperty(Constants.SHUTDOWN_WAIT_KEY, "0"); try { service.export(); service.unexport(); Thread.sleep(1000); Mockito.verify(exporter, Mockito.atLeastOnce()).unexport(); } finally { System.clearProperty(Constants.SHUTDOWN_TIMEOUT_KEY); } }