add some test about the abstract factory