package liquibase.serializer; import liquibase.serializer.core.string.StringChangeLogSerializer; import liquibase.serializer.core.xml.XMLChangeLogSerializer; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; import java.util.Map; public class ChangeLogSerializerFactoryTest { @Before public void setup() { ChangeLogSerializerFactory.reset(); } @Test public void getInstance() { assertNotNull(ChangeLogSerializerFactory.getInstance()); assertTrue(ChangeLogSerializerFactory.getInstance() == ChangeLogSerializerFactory.getInstance()); } @Test public void register() { ChangeLogSerializerFactory.getInstance().getSerializers().clear(); assertEquals(0, ChangeLogSerializerFactory.getInstance().getSerializers().size()); ChangeLogSerializerFactory.getInstance().register(new MockChangeLogSerializer("mock")); assertEquals(1, ChangeLogSerializerFactory.getInstance().getSerializers().size()); } @Test public void unregister_instance() { ChangeLogSerializerFactory factory = ChangeLogSerializerFactory.getInstance(); factory.getSerializers().clear(); assertEquals(0, factory.getSerializers().size()); XMLChangeLogSerializer changeLogSerializer = new XMLChangeLogSerializer(); factory.register(new StringChangeLogSerializer()); factory.register(changeLogSerializer); assertEquals(2, factory.getSerializers().size()); factory.unregister(changeLogSerializer); assertEquals(1, factory.getSerializers().size()); } @Test public void reset() { ChangeLogSerializerFactory instance1 = ChangeLogSerializerFactory.getInstance(); ChangeLogSerializerFactory.reset(); assertFalse(instance1 == ChangeLogSerializerFactory.getInstance()); } @SuppressWarnings("unchecked") @Test public void builtInGeneratorsAreFound() { Map<String, ChangeLogSerializer> generators = ChangeLogSerializerFactory.getInstance().getSerializers(); assertEquals(2, generators.size()); } @Test public void getSerializers() { ChangeLogSerializer serializer = ChangeLogSerializerFactory.getInstance().getSerializer("xml"); assertNotNull(serializer); assertTrue(serializer instanceof XMLChangeLogSerializer); } }