package com.robert.vesta.service.impl.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.testng.AssertJUnit;
import org.testng.annotations.Test;
import com.robert.vesta.service.bean.Id;
import com.robert.vesta.service.intf.IdService;
// There is only one factory bean in a single spring context, so we should create spring context for each test
public class IdServiceFactoryBeanTest {
@Test(groups = { "idService" })
public void testSimple() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"spring/vesta-service-factory-bean-property-test.xml");
IdService idService = (IdService) applicationContext
.getBean("idService");
long id = idService.genId();
Id ido = idService.expId(id);
long id1 = idService.makeId(ido.getVersion(), ido.getType(),
ido.getGenMethod(), ido.getMachine(), ido.getTime(),
ido.getSeq());
System.err.println(id + ":" + ido);
AssertJUnit.assertEquals(id, id1);
}
@Test(groups = { "idService" })
public void testIpConfigurable() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"spring/vesta-service-factory-bean-ip-configurable-test.xml");
IdService idService = (IdService) applicationContext
.getBean("idServiceIpConfigurable");
long id = idService.genId();
Id ido = idService.expId(id);
long id1 = idService.makeId(ido.getVersion(), ido.getType(),
ido.getGenMethod(), ido.getMachine(), ido.getTime(),
ido.getSeq());
System.err.println(id + ":" + ido);
AssertJUnit.assertEquals(id, id1);
}
@Test(groups = { "idService" })
public void testDb() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
"spring/vesta-service-factory-bean-db-test.xml");
IdService idService = (IdService) applicationContext
.getBean("idServiceDb");
long id = idService.genId();
Id ido = idService.expId(id);
long id1 = idService.makeId(ido.getVersion(), ido.getType(),
ido.getGenMethod(), ido.getMachine(), ido.getTime(),
ido.getSeq());
System.err.println(id + ":" + ido);
AssertJUnit.assertEquals(id, id1);
}
}