package com.vladmihalcea.flexypool.metric.dropwizard; import com.vladmihalcea.flexypool.metric.MetricsFactory; import com.vladmihalcea.flexypool.util.ClassLoaderUtils; import org.junit.Test; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; /** * DropwizardMetricsFactoryServiceTest - DropwizardMetricsFactoryService Test * * @author Vlad Mihalcea */ public class DropwizardMetricsFactoryServiceTest { @Test public void testLoadSuccess() { MetricsFactory metricsFactory = new DropwizardMetricsFactoryService().load(); assertNotNull(metricsFactory); assertSame(DropwizardMetrics.FACTORY, metricsFactory); } @Test public void testLoadFailure() { ClassLoader currentClassLoader = ClassLoaderUtils.getClassLoader(); try { Thread.currentThread().setContextClassLoader(new ClassLoader() { @Override protected Class loadClass(String class_name, boolean resolve) throws ClassNotFoundException { if(class_name.equals("io.dropwizard.metrics.Metric")) { return null; } return super.loadClass(class_name, resolve); } }); MetricsFactory metricsFactory = new DropwizardMetricsFactoryService().load(); assertNull(metricsFactory); } finally { Thread.currentThread().setContextClassLoader(currentClassLoader); } } }