cvs commit: spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent DefaultCarSubmissionManagerTestCase.java DefaultComponentSubmissionManagerTestCase.java MetadataConverterImplTestCase.java MockCommandRegistry.java SubmitComponentControllerTestCase.java DefaultSubmissionManagerTestCase.java

Mike Hogan <[email protected]> Sun, 09 Nov 2003 06:00:52 -0800
Newsgroups gmane.comp.java.spice.cvs
Message-ID <[email protected]>
hogie       03/11/09 06:00:52

  Modified:    sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent
                        MockCommandRegistry.java
                        SubmitComponentControllerTestCase.java
  Added:       sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent
                        DefaultCarSubmissionManagerTestCase.java
                        DefaultComponentSubmissionManagerTestCase.java
                        MetadataConverterImplTestCase.java
  Removed:     sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent
                        DefaultSubmissionManagerTestCase.java
  Log:
  If components are classes, show as little of the class as necessary to show service offering
  
  Revision  Changes    Path
  1.3       +20 -2     spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent/MockCommandRegistry.java
  
  Index: MockCommandRegistry.java
  ===================================================================
  RCS file: /cvsroot/spice/spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent/MockCommandRegistry.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- MockCommandRegistry.java	26 Oct 2003 14:43:09 -0000	1.2
  +++ MockCommandRegistry.java	9 Nov 2003 14:00:52 -0000	1.3
  @@ -8,12 +8,18 @@
   
   import java.io.Serializable;
   import java.io.File;
  +import java.util.Iterator;
  +import java.util.Collection;
  +import java.util.ArrayList;
   
   public class MockCommandRegistry implements CommandRegistry {
       private int expectedSubmitComponentCalls;
       private int actualSubmitComponentCalls;
       private int actualRegisterDownloadableCalls;
       private int expectedRegisterDownloadableCalls;
  +    private Collection expectedAddComponents = new ArrayList();
  +    private Collection actualAddComponents = new ArrayList();
  +    private boolean addComponentsExpected = false;
   
       public void setupExpectedSubmitComponentCalls(int i) {
           this.expectedSubmitComponentCalls = i;
  @@ -22,6 +28,7 @@
       public Command createSubmitComponentCommand(Component component) {
           actualSubmitComponentCalls++;
           component.setId("1");
  +        actualAddComponents.add(component);
           return new Command() {
               public Serializable execute(PrevalentSystem prevalentSystem) throws Exception {
                   return null;
  @@ -29,6 +36,11 @@
           };
       }
   
  +    public void setupExpectedAddComponent(Component component) {
  +        this.expectedAddComponents.add(component);
  +        addComponentsExpected = true;
  +    }
  +
       public Command createRegisterDownloadableCommand(String componentId, File downloadable) {
           actualRegisterDownloadableCalls++;
           return new Command() {
  @@ -39,8 +51,14 @@
       }
   
       public void verify() {
  -        Assert.assertEquals(expectedSubmitComponentCalls,actualSubmitComponentCalls);
  -        Assert.assertEquals(expectedRegisterDownloadableCalls,actualRegisterDownloadableCalls);
  +        Assert.assertEquals(expectedSubmitComponentCalls, actualSubmitComponentCalls);
  +        Assert.assertEquals(expectedRegisterDownloadableCalls, actualRegisterDownloadableCalls);
  +        if (addComponentsExpected) {
  +            Assert.assertEquals(expectedAddComponents.size(), actualAddComponents.size());
  +            for (Iterator i = expectedAddComponents.iterator(); i.hasNext();) {
  +                Assert.assertTrue(actualAddComponents.contains(i.next()));
  +            }
  +        }
       }
   
       public void setupExpectedRegisterDownloadableCalls(int i) {
  
  
  
  1.2       +1 -1      spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent/SubmitComponentControllerTestCase.java
  
  Index: SubmitComponentControllerTestCase.java
  ===================================================================
  RCS file: /cvsroot/spice/spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent/SubmitComponentControllerTestCase.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SubmitComponentControllerTestCase.java	26 Oct 2003 13:46:42 -0000	1.1
  +++ SubmitComponentControllerTestCase.java	9 Nov 2003 14:00:52 -0000	1.2
  @@ -69,7 +69,7 @@
           assertNotNull(view.getViewName());
       }
   
  -    private static final class MockSubmissionManager implements SubmissionManager {
  +    private static final class MockSubmissionManager implements CarSubmissionManager {
           private File expectedJarFile = null;
           private File actualJarFile = null;
   
  
  
  
  1.1                  spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent/DefaultCarSubmissionManagerTestCase.java
  
  Index: DefaultCarSubmissionManagerTestCase.java
  ===================================================================
  package org.componenthaus.usecases.submitcomponent;
  
  import junit.framework.TestCase;
  import org.componenthaus.repository.api.Component;
  import org.componenthaus.repository.impl.ComponentImpl;
  import org.componenthaus.tests.MockMetadataConverterImpl;
  import org.componenthaus.tests.MockPrevayler;
  import org.componenthaus.util.file.FileManagerImpl;
  
  import java.io.File;
  import java.util.Collections;
  
  public class DefaultCarSubmissionManagerTestCase extends TestCase {
      private static final MockSubmissionMonitor monitor = new MockSubmissionMonitor();
      private MockCommandRegistry mockCommandRegistry = null;
  
      protected void setUp() throws Exception {
          mockCommandRegistry = new MockCommandRegistry();
      }
  
      public void testThrowsExceptionWhenSubmissionLacksMetadataFile() throws Exception {
          final DefaultCarSubmissionManager manager = new DefaultCarSubmissionManager(mockCommandRegistry,null,monitor,null,null);
          MissingJarEntryException expected = null;
          try {
              manager.submit(TestFiles.emptyFile());
              fail("Did not get expected exception");
          } catch (MissingJarEntryException e) {
              expected = e;
          }
          assertEquals(CarSubmissionManager.METADATA_FILE_JAR_ENTRY_NAME,expected.getJarEntryName());
      }
  
      public void testThrowsExceptionWhenSubmissionLacksDistribution() throws Exception {
          final DefaultCarSubmissionManager manager = new DefaultCarSubmissionManager(mockCommandRegistry,null,monitor,null,null);
          MissingJarEntryException expected = null;
          try {
              manager.submit(TestFiles.justMetadataFile());
              fail("Did not get expected exception");
          } catch (MissingJarEntryException e) {
              expected = e;
          }
          assertEquals(CarSubmissionManager.DISTRIBUTION_DIRECTORY_JAR_ENTRY_NAME,expected.getJarEntryName());
      }
  
      public void testHandlesSubmissionCorrectly() throws Exception {
          mockCommandRegistry.setupExpectedSubmitComponentCalls(0); //mocked out - ComponentSubmissionManager does it
          mockCommandRegistry.setupExpectedRegisterDownloadableCalls(1);
          final MockMetadataConverterImpl mockMetadataConverter = new MockMetadataConverterImpl();
          mockMetadataConverter.setSetupResult(Collections.singleton(new ComponentImpl()));
          final DefaultCarSubmissionManager manager = new DefaultCarSubmissionManager(mockCommandRegistry, new FileManagerImpl(),monitor,new MockPrevayler(), mockMetadataConverter);
          manager.submit(TestFiles.validComponentSubmission());
          mockCommandRegistry.verify();
      }
  
      private static final class MockSubmissionMonitor implements DefaultCarSubmissionManager.SubmissionMonitor {
          public void componentSubmitted(Component component, File distribution) {
          }
      }
  }
  
  
  
  1.1                  spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent/DefaultComponentSubmissionManagerTestCase.java
  
  Index: DefaultComponentSubmissionManagerTestCase.java
  ===================================================================
  package org.componenthaus.usecases.submitcomponent;
  
  import junit.framework.TestCase;
  import org.componenthaus.ant.metadata.ComponentMetadata;
  import org.componenthaus.ant.metadata.InterfaceMetadata;
  import org.componenthaus.repository.impl.ComponentFactory;
  import org.componenthaus.repository.impl.ComponentImpl;
  import org.componenthaus.tests.MockClassAbbreviator;
  import org.componenthaus.tests.MockPrevayler;
  import org.componenthaus.tests.MockMetadataConverterImpl;
  
  import java.util.Collections;
  import java.util.Collection;
  import java.util.ArrayList;
  
  public class DefaultComponentSubmissionManagerTestCase extends TestCase {
      private ComponentSubmissionManager submissionManager = null;
      private MockCommandRegistry mockCommandRegistry = null;
      private MockMetadataConverterImpl metadataConverter = null;
  
      protected void setUp() throws Exception {
          mockCommandRegistry = new MockCommandRegistry();
          metadataConverter = new MockMetadataConverterImpl();
          submissionManager = new DefaultComponentSubmissionManager(metadataConverter, new MockPrevayler(),mockCommandRegistry);
      }
  
      public void testThrowsIllegalArgumentExceptionWhenGivenNull() {
          try {
              submissionManager.submit(null);
              fail("Did not get expected exception");
          } catch (IllegalArgumentException e) {
          } catch (ComponentSubmissionException e) {
              e.printStackTrace();
          }
      }
  
      public void testThrowsExceptionIfComponentContainsNoInterfaces() {
          ComponentMetadata componentMetadata = new ComponentMetadata();
          try {
              submissionManager.submit(componentMetadata);
              fail("Did not get expected exception");
          } catch (IllegalArgumentException e) {
          } catch (ComponentSubmissionException e) {
              e.printStackTrace();
          }
      }
  
      public void testSubmitsComponentsToRepository() throws ComponentSubmissionException {
          final ComponentImpl component1 = new ComponentImpl("a.b","1.0",Collections.EMPTY_LIST,"c","c","d");
          final ComponentImpl component2 = new ComponentImpl("e.f","1.0",Collections.EMPTY_LIST,"g","g","h");
          final Collection newComponents = new ArrayList();
          newComponents.add(component1);
          newComponents.add(component2);
          metadataConverter.setSetupResult(newComponents);
          mockCommandRegistry.setupExpectedAddComponent(component1);
          mockCommandRegistry.setupExpectedAddComponent(component2);
          mockCommandRegistry.setupExpectedSubmitComponentCalls(2);
          ComponentMetadata componentMetadata = new ComponentMetadata();
          componentMetadata.addInterface(new InterfaceMetadata("a","b","c","d",false));
          componentMetadata.addInterface(new InterfaceMetadata("e","f","g","h",true));
          submissionManager.submit(componentMetadata);
          mockCommandRegistry.verify();
      }
  }
  
  
  
  1.1                  spice/sandbox/repository/componenthaus/src/tests/org/componenthaus/usecases/submitcomponent/MetadataConverterImplTestCase.java
  
  Index: MetadataConverterImplTestCase.java
  ===================================================================
  package org.componenthaus.usecases.submitcomponent;
  
  import junit.framework.TestCase;
  import org.componenthaus.ant.metadata.ComponentMetadata;
  import org.componenthaus.ant.metadata.InterfaceMetadata;
  import org.componenthaus.ant.ClassAbbreviator;
  import org.componenthaus.ant.ClassAbbreviatorImpl;
  import org.componenthaus.ant.JavadocFormatterImpl;
  import org.componenthaus.ant.LineIndenterImpl;
  import org.componenthaus.repository.api.Component;
  import org.componenthaus.repository.impl.ComponentFactory;
  import org.componenthaus.tests.MockClassAbbreviator;
  
  import java.util.Collection;
  import java.util.Iterator;
  
  public class MetadataConverterImplTestCase extends TestCase {
      private MetadataConverter converter = null;
      private ClassAbbreviator classAbbreviator = null;
  
      protected void setUp() throws Exception {
          classAbbreviator = new ClassAbbreviatorImpl(new JavadocFormatterImpl(80),new LineIndenterImpl());
          converter = new MetadataConverterImpl(new ComponentFactory(),classAbbreviator);
      }
  
      public void testThrowsIllegalArgumentExceptionWhenGivenNull() {
          try {
              converter.convert(null);
              fail("Did not get expected exception");
          } catch (IllegalArgumentException e) {
          }
      }
  
      public void testThrowsExceptionIfComponentContainsNoInterfaces() {
          ComponentMetadata componentMetadata = new ComponentMetadata();
          try {
              converter.convert(componentMetadata);
              fail("Did not get expected exception");
          } catch (IllegalArgumentException e) {
          }
      }
  
      public void testConvertsMetadataToComponentCollection() {
          String aClass =
                  "package com.acme;\n" +
                  "public class AClass {\n" +
                  "}";
  
          ComponentMetadata componentMetadata = new ComponentMetadata();
          componentMetadata.addInterface(new InterfaceMetadata("a","b","c","d",false));
          componentMetadata.addInterface(new InterfaceMetadata("com.acme","AClass","",aClass,true));
          Collection components = converter.convert(componentMetadata);
          assertEquals(2, components.size());
          Iterator i = components.iterator();
          Component component = (Component) i.next();
          assertEquals("AClass",component.getName());
          assertEquals("com.acme.AClass",component.getFullyQualifiedName());
          assertEquals("",component.getFullDescription());
  
          component = (Component) i.next();
          assertEquals("b",component.getName());
          assertEquals("a.b",component.getFullyQualifiedName());
          assertEquals("c",component.getFullDescription());
          assertEquals("d",component.getServiceInterface());
      }
  
  }
  
  
  


-------------------------------------------------------
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest
developments in Apache, PHP, Perl, XML, Java, MySQL,
WebDAV, and more! http://www.apachecon.com/