package com.ikokoon.toolkit; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.mockito.Mockito.mock; import java.beans.XMLDecoder; import java.io.ByteArrayInputStream; import java.io.InputStream; import org.junit.BeforeClass; import org.junit.Test; import com.ikokoon.serenity.IConstants; import com.ikokoon.serenity.persistence.DataBaseOdb; import com.ikokoon.serenity.persistence.DataBaseRam; import com.ikokoon.serenity.persistence.IDataBase; import com.ikokoon.serenity.persistence.IDataBaseListener; public class ObjectFactoryTest { @BeforeClass public static void setup() { LoggingConfigurator.configure(); } @Test @SuppressWarnings("unchecked") public void getObject() throws Exception { InputStream inputStream = new ByteArrayInputStream(new byte[0]); Object[] parameters = new Object[] { inputStream, new String("Dummy") }; Class<XMLDecoder> klass = (Class<XMLDecoder>) this.getClass().getClassLoader().loadClass(XMLDecoder.class.getName()); XMLDecoder decoder = ObjectFactory.getObject(klass, parameters); assertNotNull(decoder); String string = ObjectFactory.getObject(String.class, parameters); assertNotNull(string); IDataBaseListener dataBaseListener = mock(IDataBaseListener.class); IDataBase internalDataBase = mock(IDataBase.class); IDataBase dataBase = ObjectFactory.getObject(DataBaseRam.class, IConstants.DATABASE_FILE_RAM, internalDataBase); assertNotNull(dataBase); Object dataBaseField = Toolkit.getValue(dataBase.getClass(), dataBase, "dataBase"); assertNotNull(dataBaseField); dataBase.close(); dataBase = new DataBaseOdb("./serenity/dummy.odb"); assertFalse(dataBase.isClosed()); dataBase.close(); dataBase = new DataBaseOdb("./serenity/dummy.odb"); assertFalse(dataBase.isClosed()); dataBase.close(); dataBase = new DataBaseOdb("./serenity/dummy.odb"); assertFalse(dataBase.isClosed()); dataBase.close(); dataBase = ObjectFactory.getObject(DataBaseOdb.class, new Object[] { dataBaseListener, "./serenity/dummy.odb", false }); assertFalse(dataBase.isClosed()); } }