package com.javaeye.jert.service.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.javaeye.core.service.GenericServiceException;
import com.javaeye.jert.domain.Database;
import com.javaeye.jert.service.DatabaseService;
/**
* @author Quake Wang
* @since 2004-12-21
* @version $Revision: 1.2 $
*/
public class DatabaseServiceTest extends TestService {
private DatabaseService service;
protected void setUp() throws Exception {
super.setUp();
service = (DatabaseService) context.getBean("databaseService");
}
protected ApplicationContext getContext() {
return new ClassPathXmlApplicationContext("com/javaeye/jert/service/test/DatabaseServiceTest.xml");
}
public void testCRUD() {
Database db = new Database();
db.setName("unit_test_database");
db.setDriver("org.hsqldb.jdbcDriver");
db.setUrl("jdbc:hsqldb:mem:jert_unit_test");
db.setUsername("sa");
db.setPassword("");
service.createDatabase(db);
Database stored = service.getDatabase(db.getId());
assertEquals("unit_test_database", stored.getName());
assertEquals("org.hsqldb.jdbcDriver", stored.getDriver());
assertEquals("jdbc:hsqldb:mem:jert_unit_test", stored.getUrl());
assertEquals("sa", stored.getUsername());
assertEquals("", stored.getPassword());
stored.setPassword("changed");
service.updateDatabase(stored);
stored = service.getDatabase(db.getId());
assertEquals("changed", stored.getPassword());
service.deleteDatabase(stored);
assertNull(service.getDatabase(stored.getId()));
}
public void testSameNameCheck() {
Database db = new Database();
db.setName("samename_test");
service.createDatabase(db);
Database samename = new Database();
samename.setName("samename_test");
try{
service.createDatabase(samename);
fail("Did not throw exception");
}catch(GenericServiceException e){
assertEquals("error.same.name.db.exists", e.getMessage());
}
samename.setName("samename_test_update");
service.createDatabase(samename);
samename.setName("samename_test");
try{
service.updateDatabase(samename);
fail("Did not throw exception");
}catch(GenericServiceException e){
assertEquals("error.same.name.db.exists", e.getMessage());
}
}
}