package com.aol.micro.server.spring;
import static org.mockito.Matchers.anyObject;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import java.util.HashSet;
import java.util.Set;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import com.aol.micro.server.config.Config;
import com.aol.micro.server.config.Microserver;
/**
* Any new classes shoud be added into blackListedClasses for test to pass until proper solution with
* matching varargs will be found
*/
@Microserver(blacklistedClasses = {Integer.class, SpringContextFactoryTest.class})
public class SpringContextFactoryTest {
@Test
public void blacklisting() {
SpringBuilder springBuilder = mock(SpringBuilder.class);
Set<Class<?>> classes = new HashSet<>();
classes.add(Integer.class);
classes.add(String.class);
Config config = Config.instance().withBasePackages(new String[] {"com.aol.micro.server.spring"}).set();
new SpringContextFactory(config ,this.getClass(), classes).withSpringBuilder(springBuilder).createSpringContext();
ArgumentCaptor<Class> varArgs = ArgumentCaptor.forClass(Class.class);
verify(springBuilder).createSpringApp(anyObject(), varArgs.capture());
Assert.assertTrue(varArgs.getAllValues().contains(String.class));
Assert.assertFalse(varArgs.getAllValues().contains(Integer.class));
}
}