Clover Coverage Report - Liquibase Core 2.0.2
Coverage timestamp: Wed Aug 3 2011 19:29:16 EDT
32   93   8   4
0   73   0.25   2.67
8     1  
3    
 
  ChangeLogIteratorTest       Line # 15 29 0% 5 0 100% 1.0
  ChangeLogIteratorTest.TestChangeSetVisitor       Line # 72 2 0% 2 0 100% 1.0
  ChangeLogIteratorTest.ReverseChangeSetVisitor       Line # 86 1 0% 1 0 100% 1.0
 
  (4)
 
1    package liquibase.changelog;
2   
3    import liquibase.changelog.filter.ContextChangeSetFilter;
4    import liquibase.changelog.filter.DbmsChangeSetFilter;
5    import liquibase.changelog.visitor.ChangeSetVisitor;
6    import liquibase.database.Database;
7    import liquibase.database.core.MySQLDatabase;
8    import static org.junit.Assert.*;
9    import org.junit.Before;
10    import org.junit.Test;
11   
12    import java.util.ArrayList;
13    import java.util.List;
14   
 
15    public class ChangeLogIteratorTest {
16    private DatabaseChangeLog changeLog;
17   
 
18  4 toggle @Before
19    public void setUp() {
20  4 changeLog = new DatabaseChangeLog();
21  4 changeLog.addChangeSet(new ChangeSet("1", "nvoxland", false, false, "/path/to/changelog", "test1", "mysql"));
22  4 changeLog.addChangeSet(new ChangeSet("2", "nvoxland", false, false, "/path/to/changelog", "test1", "oracle"));
23  4 changeLog.addChangeSet(new ChangeSet("3", "nvoxland", false, false, "/path/to/changelog", "test2", "mysql"));
24  4 changeLog.addChangeSet(new ChangeSet("4", "nvoxland", false, false, "/path/to/changelog", null, null));
25  4 changeLog.addChangeSet(new ChangeSet("5", "nvoxland", false, false, "/path/to/changelog", null, "mysql"));
26  4 changeLog.addChangeSet(new ChangeSet("6", "nvoxland", false, false, "/path/to/changelog", "test2", null));
27    }
28   
 
29  1 toggle @Test
30    public void runChangeSet_emptyFiltersIterator() throws Exception {
31  1 TestChangeSetVisitor testChangeLogVisitor = new TestChangeSetVisitor();
32   
33  1 ChangeLogIterator iterator = new ChangeLogIterator(changeLog);
34  1 iterator.run(testChangeLogVisitor, null);
35  1 assertEquals(6, testChangeLogVisitor.visitedChangeSets.size());
36    }
37   
 
38  1 toggle @Test
39    public void runChangeSet_singleFilterIterator() throws Exception {
40  1 TestChangeSetVisitor testChangeLogVisitor = new TestChangeSetVisitor();
41   
42  1 ChangeLogIterator iterator = new ChangeLogIterator(changeLog, new ContextChangeSetFilter("test1"));
43  1 iterator.run(testChangeLogVisitor, null);
44  1 assertEquals(4, testChangeLogVisitor.visitedChangeSets.size());
45    }
46   
 
47  1 toggle @Test
48    public void runChangeSet_doubleFilterIterator() throws Exception {
49  1 TestChangeSetVisitor testChangeLogVisitor = new TestChangeSetVisitor();
50   
51  1 ChangeLogIterator iterator = new ChangeLogIterator(changeLog, new ContextChangeSetFilter("test1"), new DbmsChangeSetFilter(new MySQLDatabase()));
52  1 iterator.run(testChangeLogVisitor, null);
53  1 assertEquals(3, testChangeLogVisitor.visitedChangeSets.size());
54  1 assertEquals("1", testChangeLogVisitor.visitedChangeSets.get(0).getId());
55  1 assertEquals("4", testChangeLogVisitor.visitedChangeSets.get(1).getId());
56  1 assertEquals("5", testChangeLogVisitor.visitedChangeSets.get(2).getId());
57   
58    }
59   
 
60  1 toggle @Test
61    public void runChangeSet_reverseVisitor() throws Exception {
62  1 TestChangeSetVisitor testChangeLogVisitor = new ReverseChangeSetVisitor();
63   
64  1 ChangeLogIterator iterator = new ChangeLogIterator(changeLog, new ContextChangeSetFilter("test1"), new DbmsChangeSetFilter(new MySQLDatabase()));
65  1 iterator.run(testChangeLogVisitor, null);
66  1 assertEquals(3, testChangeLogVisitor.visitedChangeSets.size());
67  1 assertEquals("5", testChangeLogVisitor.visitedChangeSets.get(0).getId());
68  1 assertEquals("4", testChangeLogVisitor.visitedChangeSets.get(1).getId());
69  1 assertEquals("1", testChangeLogVisitor.visitedChangeSets.get(2).getId());
70    }
71   
 
72    private static class TestChangeSetVisitor implements ChangeSetVisitor {
73   
74    public List<ChangeSet> visitedChangeSets = new ArrayList<ChangeSet>();
75   
76   
 
77  3 toggle public Direction getDirection() {
78  3 return ChangeSetVisitor.Direction.FORWARD;
79    }
80   
 
81  16 toggle public void visit(ChangeSet changeSet, DatabaseChangeLog databaseChangeLog, Database database) {
82  16 visitedChangeSets.add(changeSet);
83    }
84    }
85   
 
86    private static class ReverseChangeSetVisitor extends TestChangeSetVisitor {
87   
 
88  1 toggle @Override
89    public Direction getDirection() {
90  1 return ChangeSetVisitor.Direction.REVERSE;
91    }
92    }
93    }