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

Modified Files:
        MemoryJellyPluginTestCase.java 
        MemoryVelocityPluginTestCase.java 
Added Files:
        GeneramaTestCase.java OneTwoThreeStringMetadataProvider.java 
Log Message:
More refactorings. Generama is nearly completely refactored and completed. All TDD.

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

import junit.framework.TestCase;

import java.util.Map;
import java.util.HashMap;
import java.io.Writer;
import java.io.IOException;
import java.io.StringWriter;

import org.generama.defaults.SystemOutWriterMapper;

/**
 * 
 * @author Aslak Hellesøy
 * @version $Revision: 1.1 $
 */
public class GeneramaTestCase extends TestCase {
    class TestPlugin extends AbstractPlugin {
            private int generateCount;

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

            public int getGenerateCount() {
                return generateCount;
            }
    }

    private Generama generama;

    public void setUp() {
        MetadataProvider metadataProvider = new OneTwoThreeStringMetadataProvider();
        generama = new Generama(metadataProvider);
    }

    public void testBraceInFileNamePluginIsInvokedOncePerObjectInCollection() throws 
IOException, GeneramaException {
        TestPlugin plugin = new TestPlugin();
        plugin.setFileName("Foo{0}Bar.txt");
        generama.addPlugin(plugin, new SystemOutWriterMapper());
        generama.execute();
        assertEquals(3, plugin.getGenerateCount());
    }

    public void testNoBraceInFileNamePluginIsInvokedOnce() throws IOException, 
GeneramaException {
        TestPlugin plugin = new TestPlugin();
        plugin.setFileName("FooBar.txt");
        generama.addPlugin(plugin, new SystemOutWriterMapper());
        generama.execute();
        assertEquals(1, plugin.getGenerateCount());
    }



    public void testPluginIsToldToWriteToProperWriter() throws IOException, 
GeneramaException {
        Writer forOne = new StringWriter();
        Writer forTwo = new StringWriter();
        Writer forThree = new StringWriter();
        final Map writers = new HashMap();
        writers.put("One", forOne);
        writers.put("Two", forTwo);
        writers.put("Three", forThree);

        WriterMapper presetWriterMapper;
        presetWriterMapper = new WriterMapper() {
                public Writer getWriter(Object o) {
                    return (Writer) writers.get(o);
                }
            };

        TestPlugin plugin = new TestPlugin();
        plugin.setFileName("Dummy{0}");

        generama.addPlugin(plugin, presetWriterMapper);
        generama.execute();

        assertEquals( "One", forOne.toString() );
        assertEquals( "Two", forTwo.toString() );
        assertEquals( "Three", forThree.toString() );
    }
}

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

import java.util.Collection;
import java.util.ArrayList;

/**
 * Very simple implementation of MetadataProvider used throughout the test suite.
 * 
 * @author Aslak Hellesøy
 * @version $Revision: 1.1 $
 */
public class OneTwoThreeStringMetadataProvider implements MetadataProvider {
    public Collection createMetadata() {
        Collection result = new ArrayList();
        result.add("One");
        result.add("Two");
        result.add("Three");
        return result;
    }
}

Index: MemoryJellyPluginTestCase.java
===================================================================
RCS file: 
/cvsroot/xdoclet/generama/src/test/java/org/generama/MemoryJellyPluginTestCase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** MemoryJellyPluginTestCase.java      17 Aug 2003 18:32:44 -0000      1.1
--- MemoryJellyPluginTestCase.java      20 Aug 2003 14:21:16 -0000      1.2
***************
*** 2,5 ****
--- 2,6 ----
  
  import org.generama.mock.protocol.memory.HandlerTestCase;
+ import org.generama.tests.AbstractXMLGeneratingPluginTestCase;
  
  import java.util.Collection;
***************
*** 40,47 ****
  
      protected Object createMetadata() {
!         Collection result = new ArrayList();
!         result.add("Aslak");
!         result.add("Hellesoy");
!         return result;
      }
  
--- 41,45 ----
  
      protected Object createMetadata() {
!         return new OneTwoThreeStringMetadataProvider().createMetadata();
      }
  
***************
*** 49,54 ****
          return new StringReader(""
                  + "<jellytest>"
!                 + "  <item>Aslak</item>"
!                 + "  <item>Hellesoy</item>"
                  + "</jellytest>"
          );
--- 47,53 ----
          return new StringReader(""
                  + "<jellytest>"
!                 + "  <item>One</item>"
!                 + "  <item>Two</item>"
!                 + "  <item>Three</item>"
                  + "</jellytest>"
          );

Index: MemoryVelocityPluginTestCase.java
===================================================================
RCS file: 
/cvsroot/xdoclet/generama/src/test/java/org/generama/MemoryVelocityPluginTestCase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** MemoryVelocityPluginTestCase.java   17 Aug 2003 18:32:44 -0000      1.1
--- MemoryVelocityPluginTestCase.java   20 Aug 2003 14:21:16 -0000      1.2
***************
*** 1,11 ****
  package org.generama;
  
- import org.generama.Plugin;
- import org.generama.VelocityPlugin;
- import org.generama.AbstractTextGeneratingPluginTestCase;
  import org.generama.velocity.MemoryVelocityComponent;
  
- import java.util.Collection;
- import java.util.ArrayList;
  import java.io.Reader;
  import java.io.StringReader;
--- 1,7 ----
  package org.generama;
  
  import org.generama.velocity.MemoryVelocityComponent;
+ import org.generama.tests.AbstractTextGeneratingPluginTestCase;
  
  import java.io.Reader;
  import java.io.StringReader;
***************
*** 34,41 ****
  
      protected Object createMetadata() {
!         Collection result = new ArrayList();
!         result.add("Aslak");
!         result.add("Hellesoy");
!         return result;
      }
  
--- 30,34 ----
  
      protected Object createMetadata() {
!         return new OneTwoThreeStringMetadataProvider().createMetadata();
      }
  
***************
*** 43,48 ****
          return new StringReader(""
                  + "velocitytest\n"
!                 + "o Aslak\n"
!                 + "o Hellesoy\n"
          );
      }
--- 36,42 ----
          return new StringReader(""
                  + "velocitytest\n"
!                 + "o One\n"
!                 + "o Two\n"
!                 + "o Three\n"
          );
      }



-------------------------------------------------------
This SF.net email is sponsored by Dice.com.
Did you know that Dice has over 25,000 tech jobs available today? From
careers in IT to Engineering to Tech Sales, Dice has tech jobs from the
best hiring companies. http://www.dice.com/index.epl?rel_code=104
_______________________________________________
xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to