add AbstractFactoryTest