package ch.fhzh.info2.spring; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import ch.fhzh.info2.processor.DocumentProcessor; import ch.fhzh.info2.processor.impl.calc.TaxAdder; import ch.fhzh.info2.processor.impl.common.ChainDocumentProcessor; import ch.fhzh.info2.processor.impl.email.EmailSendingProcessor; import junit.framework.TestCase; /** * Tests all beans defined in processor.xml * @author bseelige * */ public class ProcessorConfigTest extends TestCase { /** factory instance under test */ BeanFactory factory; protected void setUp() throws Exception { super.setUp(); ClassPathResource resource = new ClassPathResource("processor.xml"); factory = new XmlBeanFactory(resource); } public void testTotalizer() { checkProcessor("totalizer"); } public void testChTaxAdder() { TaxAdder proc = (TaxAdder)checkProcessor("chTaxAdder"); assertEquals(0.079d, proc.getTaxRate()); } public void testDeTaxAdder() { TaxAdder proc = (TaxAdder)checkProcessor("deTaxAdder"); assertEquals(0.19d, proc.getTaxRate()); } public void testEmail() { EmailSendingProcessor proc = (EmailSendingProcessor)checkProcessor("email"); assertNotNull(proc.getFrom()); assertNotNull(proc.getHostName()); assertNotNull(proc.getTo()); } public void testCurrencyDefense() { checkProcessor("currencyDefense"); } public void testCleaner() { checkProcessor("cleaner"); } public void testCopy() { checkProcessor("copy"); } public void testNoop() { checkProcessor("noop"); } public void testCommonsLangPrinter() { checkProcessor("commonsLangPrinter"); } public void testDocumentPrinter() { checkProcessor("documentPrinter"); } public void testSpringPrinter() { checkProcessor("springPrinter"); } public void testTouch() { checkProcessor("touchDocument"); } public void testChain() { ChainDocumentProcessor chain = (ChainDocumentProcessor)checkProcessor("chain"); assertNotNull(chain); assertNotNull(chain.getProcessors()); assertEquals(6, chain.getProcessors().size()); } public DocumentProcessor checkProcessor(String id) { assertTrue(factory.containsBean(id)); DocumentProcessor proc = (DocumentProcessor)factory.getBean(id); assertNotNull(id); return proc; } /** * Validates if containsBean returns * false for unknown beans * */ public void testNotDefined() { assertFalse(factory.containsBean("unkownBean")); } public void testLog() { Log log = LogFactory.getLog(ProcessorConfigTest.class); log.info("hello, world"); } }