1 21 package net.sf.hajdbc.balancer; 22 23 import java.util.List ; 24 import java.util.NoSuchElementException ; 25 26 import net.sf.hajdbc.Balancer; 27 import net.sf.hajdbc.Database; 28 import net.sf.hajdbc.MockDatabase; 29 30 import org.testng.annotations.AfterMethod; 31 import org.testng.annotations.Test; 32 33 37 public abstract class AbstractTestBalancer 38 { 39 private Balancer balancer = createBalancer(); 40 41 protected abstract Balancer createBalancer(); 42 43 @AfterMethod 44 protected void tearDown() 45 { 46 for (Database database: this.balancer.list()) 47 { 48 this.balancer.remove(database); 49 } 50 } 51 52 55 @Test 56 public void testAdd() 57 { 58 Database database = new MockDatabase("1", 1); 59 60 boolean added = this.balancer.add(database); 61 62 assert added; 63 64 added = this.balancer.add(database); 65 66 assert !added; 67 } 68 69 72 @Test 73 public void testBeforeOperation() 74 { 75 Database database = new MockDatabase("db1", 1); 76 77 this.balancer.add(database); 78 79 this.balancer.beforeOperation(database); 80 } 81 82 85 @Test 86 public void testAfterOperation() 87 { 88 Database database = new MockDatabase("db1", 1); 89 90 this.balancer.add(database); 91 92 this.balancer.afterOperation(database); 93 } 94 95 98 @Test 99 public void testRemove() 100 { 101 Database database = new MockDatabase("1", 1); 102 103 boolean removed = this.balancer.remove(database); 104 105 assert !removed; 106 107 this.balancer.add(database); 108 109 removed = this.balancer.remove(database); 110 111 assert removed; 112 113 removed = this.balancer.remove(database); 114 115 assert !removed; 116 } 117 118 121 @Test 122 public void testGetDatabases() 123 { 124 List <Database> databases = this.balancer.list(); 125 126 assert databases.isEmpty() : databases.size(); 127 128 Database database1 = new MockDatabase("db1", 1); 129 this.balancer.add(database1); 130 131 databases = this.balancer.list(); 132 133 assert databases.size() == 1 : databases.size(); 134 assert databases.contains(database1); 135 136 Database database2 = new MockDatabase("db2", 1); 137 this.balancer.add(database2); 138 139 databases = this.balancer.list(); 140 141 assert databases.size() == 2 : databases.size(); 142 assert databases.contains(database1) && databases.contains(database2); 143 144 this.balancer.remove(database1); 145 146 databases = this.balancer.list(); 147 148 assert databases.size() == 1 : databases.size(); 149 assert databases.contains(database2); 150 151 this.balancer.remove(database2); 152 153 databases = this.balancer.list(); 154 155 assert databases.isEmpty() : databases.size(); 156 } 157 158 161 @Test 162 public void testContains() 163 { 164 Database database1 = new MockDatabase("db1", 1); 165 Database database2 = new MockDatabase("db2", 1); 166 167 this.balancer.add(database1); 168 169 assert this.balancer.contains(database1); 170 assert !this.balancer.contains(database2); 171 } 172 173 176 @Test 177 public void testFirst() 178 { 179 try 180 { 181 this.balancer.first(); 182 183 assert false; 184 } 185 catch (NoSuchElementException e) 186 { 187 assert true; 188 } 189 190 Database database = new MockDatabase("0", 0); 191 192 this.balancer.add(database); 193 194 Database first = this.balancer.first(); 195 196 assert database.equals(first) : database; 197 } 198 199 202 @Test 203 public void testNext() 204 { 205 try 206 { 207 Database database = this.balancer.next(); 208 209 assert false : database.getId(); 210 } 211 catch (NoSuchElementException e) 212 { 213 assert true; 214 } 215 216 testNext(this.balancer); 217 } 218 219 protected abstract void testNext(Balancer balancer); 220 } 221 | Popular Tags |