Update of /cvsroot/xdoclet/generama/src/test/java/org/generama
In directory sc8-pr-cvs1:/tmp/cvs-serv31484/src/test/java/org/generama

Modified Files:
        SimpleGeneramaTestCase.java 
Added Files:
        AbstractGeneramaTestCase.java 
Removed Files:
        PluginContainerTestCase.java 
Log Message:
Big refactoring. Simplifications mostly.

--- NEW FILE: AbstractGeneramaTestCase.java ---
package org.generama;

import junit.framework.TestCase;

import java.io.IOException;
import java.io.Writer;

import org.picocontainer.MutablePicoContainer;
import org.picocontainer.extras.BeanPropertyComponentAdapterFactory;
import org.picocontainer.extras.InvokingComponentAdapterFactory;
import org.picocontainer.defaults.DefaultComponentAdapterFactory;
import org.picocontainer.defaults.ComponentAdapterFactory;
import org.picocontainer.defaults.DefaultPicoContainer;

/**
 * @author Aslak Hellesøy
 * @version $Revision: 1.1 $
 */
public abstract class AbstractGeneramaTestCase extends TestCase {
    private MutablePicoContainer pico;

    protected abstract Generama createGeneramaWithThreeMetadataObjects();

    private final BeanPropertyComponentAdapterFactory beanFactory = new 
BeanPropertyComponentAdapterFactory(new DefaultComponentAdapterFactory());

    protected void setUp() {
        InvokingComponentAdapterFactory invokingFactory = new 
InvokingComponentAdapterFactory(beanFactory, "execute", null, null);
        ComponentAdapterFactory factory = (invokingFactory);
        pico = new DefaultPicoContainer(factory);

        Generama generama = createGeneramaWithThreeMetadataObjects();
        generama.install(pico);
    }

    public void testSingleOutputPlugin() {

        pico.registerComponentImplementation(SingleOutputPlugin.class);

        // subclasses must remember to configure this one when they create a Generama
        SingleOutputPlugin plugin = (SingleOutputPlugin) 
pico.getComponentInstance(SingleOutputPlugin.class);
        assertEquals(1, plugin.getGenerateCount());
    }

    public void testMultiOutputPlugin() {

        pico.registerComponentImplementation(MultiOutputPlugin.class);

        // subclasses must remember to configure this one when they create a Generama
        MultiOutputPlugin plugin = (MultiOutputPlugin) 
pico.getComponentInstance(MultiOutputPlugin.class);
        assertEquals(3, plugin.getGenerateCount());
    }

    public static abstract class TestOutputPlugin extends AbstractPlugin {
        private int generateCount;

        public TestOutputPlugin(MetadataProvider metadataProvider, WriterMapper 
writerMapper) {
            super(metadataProvider, writerMapper);
        }

        public int getGenerateCount() {
            return generateCount;
        }

        public void generate(Writer out, Object metadata) throws IOException, 
GeneramaException {
            out.write(metadata.toString());
            generateCount++;
        }
    }

    public static class MultiOutputPlugin extends TestOutputPlugin {
        public MultiOutputPlugin(MetadataProvider metadataProvider, WriterMapper 
writerMapper) {
            super(metadataProvider, writerMapper);
            setMultiOutput(true);
        }
    }

    public static class SingleOutputPlugin extends TestOutputPlugin {
        public SingleOutputPlugin(MetadataProvider metadataProvider, WriterMapper 
writerMapper) {
            super(metadataProvider, writerMapper);
            setMultiOutput(false);
        }
    }
}

Index: SimpleGeneramaTestCase.java
===================================================================
RCS file: 
/cvsroot/xdoclet/generama/src/test/java/org/generama/SimpleGeneramaTestCase.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** SimpleGeneramaTestCase.java 29 Aug 2003 16:36:33 -0000      1.2
--- SimpleGeneramaTestCase.java 20 Sep 2003 12:24:32 -0000      1.3
***************
*** 1,10 ****
  package org.generama;
  
- import org.picocontainer.defaults.DefaultComponentRegistry;
  import org.generama.defaults.StringWriterMapper;
  
- import java.util.Collection;
- import java.util.Arrays;
- 
  /**
   * @author Aslak Hellesøy
--- 1,6 ----
***************
*** 13,38 ****
  public class SimpleGeneramaTestCase extends AbstractGeneramaTestCase {
  
!     public static class DummyMetadataProvider implements MetadataProvider {
!         public Collection getMetadata() {
!             return Arrays.asList(new String[]{"",""});
!         }
!     }
! 
!     protected Generama createGenerama() {
!         return new Generama(new DefaultComponentRegistry()) {
!             protected Class getMetadataProviderClass() {
!                 return DummyMetadataProvider.class;
!             }
! 
!             protected Class getWriterMapperClass() {
!                 return StringWriterMapper.class;
!             }
! 
!             protected void configureComponents() throws Exception {
!                 super.configureComponents();
!                 TestPlugin testPlugin = (TestPlugin) getComponent(TestPlugin.class);
!                 testPlugin.setFilereplace("dummy");
!             }
!         };
      }
  }
--- 9,17 ----
  public class SimpleGeneramaTestCase extends AbstractGeneramaTestCase {
  
!     protected Generama createGeneramaWithThreeMetadataObjects() {
!         Generama generama = new Generama(
!                 OneTwoThreeStringMetadataProvider.class,
!                 StringWriterMapper.class);
!         return generama;
      }
  }

--- PluginContainerTestCase.java DELETED ---



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to