Ignore:
Timestamp:
08/28/10 14:22:32 (21 months ago)
Author:
kasper
Message:

Ticket #382: Improved testing

File:
1 edited

Legend:

Unmodified
Added
Removed
  • AnalyzerBeans/trunk/src/test/java/org/eobjects/analyzer/job/JaxbJobFactoryTest.java

    r978 r980  
    22 
    33import java.io.File; 
     4import java.util.Arrays; 
     5import java.util.List; 
    46 
     7import org.eobjects.analyzer.data.MetaModelInputColumn; 
     8import org.eobjects.analyzer.job.runner.AnalysisRunnerImpl; 
     9import org.eobjects.analyzer.result.AnalyzerResult; 
     10import org.eobjects.analyzer.result.CrosstabResult; 
    511import org.eobjects.analyzer.test.TestHelper; 
    612 
     
    4450                JaxbJobFactory factory = new JaxbJobFactory(configuration); 
    4551                try { 
    46                         factory.create(new File("src/test/resources/example-job-valid.xml")); 
     52                        factory.create(new File( 
     53                                        "src/test/resources/example-job-missing-descriptor.xml")); 
    4754                        fail("Exception expected"); 
    4855                } catch (IllegalStateException e) { 
     
    5158                } 
    5259        } 
     60 
     61        public void testValidJob() throws Exception { 
     62                AnalyzerBeansConfiguration configuration = TestHelper 
     63                                .createAnalyzerBeansConfiguration(TestHelper 
     64                                                .createSampleDatabaseDatastore("my database")); 
     65                JaxbJobFactory factory = new JaxbJobFactory(configuration); 
     66                AnalysisJobBuilder builder = factory.create(new File( 
     67                                "src/test/resources/example-job-valid.xml")); 
     68                assertTrue(builder.isConfigured()); 
     69 
     70                List<MetaModelInputColumn> sourceColumns = builder.getSourceColumns(); 
     71                assertEquals(3, sourceColumns.size()); 
     72                assertEquals( 
     73                                "MetaModelInputColumn[JdbcColumn[name=FIRSTNAME,columnNumber=2,type=VARCHAR,nullable=false,indexed=false,nativeType=VARCHAR,columnSize=50]]", 
     74                                sourceColumns.get(0).toString()); 
     75                assertEquals( 
     76                                "MetaModelInputColumn[JdbcColumn[name=LASTNAME,columnNumber=1,type=VARCHAR,nullable=false,indexed=false,nativeType=VARCHAR,columnSize=50]]", 
     77                                sourceColumns.get(1).toString()); 
     78                assertEquals( 
     79                                "MetaModelInputColumn[JdbcColumn[name=EMAIL,columnNumber=4,type=VARCHAR,nullable=false,indexed=false,nativeType=VARCHAR,columnSize=100]]", 
     80                                sourceColumns.get(2).toString()); 
     81 
     82                assertEquals(1, builder.getTransformerJobBuilders().size()); 
     83                assertEquals( 
     84                                "[TransformedInputColumn[id=trans-1,name=username,type=STRING], " 
     85                                                + "TransformedInputColumn[id=trans-2,name=domain,type=STRING]]", 
     86                                builder.getTransformerJobBuilders().get(0).getOutputColumns() 
     87                                                .toString()); 
     88                assertEquals( 
     89                                "[TransformedInputColumn[id=trans-1,name=username,type=STRING], " 
     90                                                + "TransformedInputColumn[id=trans-2,name=domain,type=STRING], " 
     91                                                + "MetaModelInputColumn[JdbcColumn[name=FIRSTNAME,columnNumber=2,type=VARCHAR,nullable=false,indexed=false,nativeType=VARCHAR,columnSize=50]], " 
     92                                                + "MetaModelInputColumn[JdbcColumn[name=LASTNAME,columnNumber=1,type=VARCHAR,nullable=false,indexed=false,nativeType=VARCHAR,columnSize=50]]]", 
     93                                Arrays.toString(builder.getAnalyzerJobBuilders().get(0) 
     94                                                .toAnalyzerJob().getInput())); 
     95 
     96                List<AnalyzerResult> results = new AnalysisRunnerImpl(configuration) 
     97                                .run(builder.toAnalysisJob()).getResults(); 
     98                assertEquals(1, results.size()); 
     99                CrosstabResult crosstabResult = (CrosstabResult) results.get(0); 
     100                assertEquals("Crosstab:|" + "domain,Lowercase chars: 95%|" 
     101                                + "domain,Uppercase chars: 0%|" + "domain,Avg white spaces: 0|" 
     102                                + "username,Max chars: 10|" + "FIRSTNAME,Word count: 24|" 
     103                                + "domain,Word count: 23|" + "username,Max white spaces: 0|" 
     104                                + "FIRSTNAME,Max words: 2|" + "LASTNAME,Min words: 1|" 
     105                                + "FIRSTNAME,Max white spaces: 1|" 
     106                                + "username,Char count: 172|" + "username,Avg chars: 7,48|" 
     107                                + "LASTNAME,Word count: 23|" + "username,Min white spaces: 0|" 
     108                                + "LASTNAME,Max white spaces: 0|" + "LASTNAME,Char count: 147|" 
     109                                + "FIRSTNAME,Avg chars: 5,39|" + "domain,Min white spaces: 0|" 
     110                                + "domain,Max chars: 20|" + "LASTNAME,Avg chars: 6,39|" 
     111                                + "username,Uppercase chars: 0%|" 
     112                                + "username,Lowercase chars: 100%|" + "LASTNAME,Max words: 1|" 
     113                                + "LASTNAME,Avg white spaces: 0|" + "LASTNAME,Min chars: 3|" 
     114                                + "domain,Min chars: 20|" + "FIRSTNAME,Min white spaces: 0|" 
     115                                + "username,Avg white spaces: 0|" 
     116                                + "FIRSTNAME,Char count: 124|" 
     117                                + "LASTNAME,Min white spaces: 0|" + "domain,Avg chars: 20|" 
     118                                + "FIRSTNAME,Non-letter chars: 0%|" + "domain,Max words: 1|" 
     119                                + "FIRSTNAME,Uppercase chars: 19%|" + "username,Max words: 1|" 
     120                                + "FIRSTNAME,Min words: 1|" + "username,Min chars: 5|" 
     121                                + "LASTNAME,Lowercase chars: 84%|" + "username,Min words: 1|" 
     122                                + "FIRSTNAME,Max chars: 8|" + "domain,Min words: 1|" 
     123                                + "FIRSTNAME,Avg white spaces: 0,04|" 
     124                                + "username,Word count: 23|" + "LASTNAME,Uppercase chars: 15%|" 
     125                                + "LASTNAME,Non-letter chars: 0%|" + "domain,Char count: 460|" 
     126                                + "username,Non-letter chars: 0%|" + "FIRSTNAME,Min chars: 3|" 
     127                                + "domain,Non-letter chars: 5%|" 
     128                                + "domain,Max white spaces: 0|" 
     129                                + "FIRSTNAME,Lowercase chars: 79%|" + "LASTNAME,Max chars: 9", 
     130                                crosstabResult.toString().replaceAll("\n", "|")); 
     131        } 
    53132} 
Note: See TracChangeset for help on using the changeset viewer.