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

Added Files:
        SimpleGeneramaTaskTestCase.java 
Log Message:
More refactorings, closer to a release

--- NEW FILE: SimpleGeneramaTaskTestCase.java ---
package org.generama.ant;

import org.nanocontainer.ant.PicoContainerTask;
import org.nanocontainer.ant.AbstractPicoContainerTaskTestCase;
import org.generama.defaults.StringWriterMapper;
import org.generama.*;
import org.picocontainer.internals.ComponentRegistry;
import org.picocontainer.PicoRegistrationException;
import org.picocontainer.PicoIntrospectionException;

import java.util.Collection;
import java.util.Arrays;
import java.io.IOException;

/**
 * 
 * @author Aslak Hellesøy
 * @version $Revision: 1.1 $
 */
public class SimpleGeneramaTaskTestCase extends AbstractPicoContainerTaskTestCase {
    public static class ExecutableMetadataProvider implements MetadataProvider {
        public Collection metadata;

        public Collection getMetadata() {
            return metadata;
        }

        public void execute() {
            metadata = Arrays.asList(new String[]{"Hello", "PluginContainer"});
        }
    }

    public static class CountingPlugin extends AbstractPlugin {
        public int executionCount;

        public CountingPlugin(PluginContainer generama, WriterMapper writerMapper) {
            super(generama, writerMapper);
        }

        public void generate(Object metadata) throws IOException, GeneramaException {
            executionCount++;
        }

        public boolean isGeneratePerElementInMetadataCollection() {
            return true;
        }
    }

    public void testExecutableMetadataProvider() {
        task.execute();

        ExecutableMetadataProvider metadataProvider = (ExecutableMetadataProvider) 
task.getPicoContainer().getComponent(ExecutableMetadataProvider.class);
        assertNotNull(metadataProvider);

        assertNotNull( metadataProvider.getMetadata() );

        CountingPlugin plugin = (CountingPlugin) 
task.getPicoContainer().getComponent(CountingPlugin.class);
        assertNotNull( plugin );
        assertEquals(2, plugin.executionCount);
    }

    protected PicoContainerTask createPicoContainerTask() {
        class TestGeneramaTask extends GeneramaTask {
            public TestGeneramaTask() {
                registerComponent(CountingPlugin.class);
            }

            protected Generama createGenerama(ComponentRegistry componentRegistry) 
throws PicoRegistrationException, PicoIntrospectionException {
                return new Generama(componentRegistry) {
                    protected Class getMetadataProviderClass() {
                        return ExecutableMetadataProvider.class;
                    }

                    protected Class getWriterMapperClass() {
                        return StringWriterMapper.class;
                    }
                };
            }
        }

        return new TestGeneramaTask();
    }
}



-------------------------------------------------------
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