package org.needle4j.configuration; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.junit.Test; public class LookupCustomClassesTest { private static final String KEY = "FOO"; @Test(expected = IllegalArgumentException.class) public void shouldFailWhenConfigurationIsNull() throws Exception { new LookupCustomClasses(null); } @Test public void shouldLoadInjectionProviders() throws ClassNotFoundException { final Map<String, String> configurationProperties = createConfigurationProperties(KEY, String.class.getCanonicalName(), "foo.Bar", " ", null, Integer.class.getCanonicalName()); final LookupCustomClasses lookupCustomClasses = new LookupCustomClasses(configurationProperties); final Set<Class<Object>> providers = lookupCustomClasses.lookup(KEY); assertThat(providers.size(), is(2)); assertTrue(providers.contains(String.class)); assertTrue(providers.contains(Integer.class)); } @SuppressWarnings("serial") private Map<String, String> createConfigurationProperties(final String key, final String... fqns) { return new HashMap<String, String>() { { final StringBuilder b = new StringBuilder(); for (String fqn : fqns) { b.append(fqn); b.append(", "); } put(key, b.toString()); } }; } }