package com.ontology2.centipede.shell;
import com.google.common.collect.Lists;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import java.util.ArrayList;
import static com.ontology2.centipede.shell.CentipedeShell.*;
import static junit.framework.TestCase.*;
public class StaticCentipedeShellTest {
@Before
public void setup() {
ObjectThatCountsClassInstances.reset();
}
@Test
public void defaultEvaluationIsDefinedInFiles() {
ApplicationContext c= newContext(objectCountingContext());
assertEquals(1, ObjectThatCountsClassInstances.get());
Object that=c.getBean("l");
assertEquals(2, ObjectThatCountsClassInstances.get());
((AbstractApplicationContext) c).close();
assertEquals(0, ObjectThatCountsClassInstances.get());
}
@Test
public void lazyEvaluationIsLazy() {
ApplicationContext c= newContext(objectCountingContext(),true);
assertEquals(0, ObjectThatCountsClassInstances.get());
Object that=c.getBean("l");
assertEquals(1, ObjectThatCountsClassInstances.get());
Object another=c.getBean("e");
assertEquals(2, ObjectThatCountsClassInstances.get());
((AbstractApplicationContext) c).close();
assertEquals(0, ObjectThatCountsClassInstances.get());
}
@Test
public void eagerEvaluationIsEager() {
ApplicationContext c= newContext(objectCountingContext(),false);
assertEquals(2, ObjectThatCountsClassInstances.get());
((AbstractApplicationContext) c).close();
assertEquals(0, ObjectThatCountsClassInstances.get());
}
private ArrayList<String> objectCountingContext() {
return Lists.newArrayList("classpath:com/ontology2/centipede/shell/objectCountingContext.xml");
}
}