package org.hibernate.eclipse.console.test; import java.io.File; import java.net.URL; import java.util.ArrayList; import java.util.List; import java.util.Properties; import junit.framework.TestCase; import org.hibernate.console.ConsoleConfiguration; import org.hibernate.console.KnownConfigurations; import org.hibernate.console.KnownConfigurationsAdapter; import org.hibernate.console.preferences.ConsoleConfigurationPreferences; import org.jboss.tools.hibernate.runtime.spi.ISessionFactory; import org.w3c.dom.Element; public class KnownConfigurationsTest extends TestCase { public KnownConfigurationsTest(String name) { super( name ); } static class CCListener extends KnownConfigurationsAdapter { List<ConsoleConfiguration> added = new ArrayList<ConsoleConfiguration>(); public void configurationAdded(ConsoleConfiguration root) { added.add(root); } public void sessionFactoryBuilt(ConsoleConfiguration ccfg, ISessionFactory builtFactory) { fail(ConsoleTestMessages.KnownConfigurationsTest_no_sf_should_be_build); } public void sessionFactoryClosing(ConsoleConfiguration configuration, ISessionFactory closingFactory) { fail(ConsoleTestMessages.KnownConfigurationsTest_no_sf_should_be_closed); } public void configurationRemoved(ConsoleConfiguration root, boolean forUpdate) { if(!added.remove(root)) { fail(ConsoleTestMessages.KnownConfigurationsTest_trying_remove_non_existing_console); } } } public void testKnownConfigurations() { KnownConfigurations knownConfigurations = KnownConfigurations.getInstance(); ConsoleConfiguration[] configurations = knownConfigurations.getConfigurations(); assertEquals(0, configurations.length); CCListener listener = new CCListener(); try { knownConfigurations.addConsoleConfigurationListener(listener); assertEquals(0, listener.added.size()); ConsoleConfigurationPreferences preferences = new ConsoleConfigurationPreferences() { public void setName(String name) { // TODO Auto-generated method stub } public void readStateFrom(Element element) { // TODO Auto-generated method stub } public void writeStateTo(Element node) { // TODO Auto-generated method stub } public File getPropertyFile() { // TODO Auto-generated method stub return null; } public File getConfigXMLFile() { // TODO Auto-generated method stub return null; } public Properties getProperties() { // TODO Auto-generated method stub return null; } public File[] getMappingFiles() { // TODO Auto-generated method stub return null; } public URL[] getCustomClassPathURLS() { // TODO Auto-generated method stub return null; } public String getName() { return ConsoleTestMessages.KnownConfigurationsTest_fake_prefs; } public String getEntityResolverName() { // TODO Auto-generated method stub return null; } public ConfigurationMode getConfigurationMode() { // TODO Auto-generated method stub return null; } public String getNamingStrategy() { // TODO Auto-generated method stub return null; } public String getPersistenceUnitName() { // TODO Auto-generated method stub return null; } public String getConnectionProfileName() { // TODO Auto-generated method stub return null; } public String getDialectName() { // TODO Auto-generated method stub return null; } @Override public String getHibernateVersion() { return null; } }; ConsoleConfigurationPreferences preferences2 = new ConsoleConfigurationPreferences() { String name = ConsoleTestMessages.KnownConfigurationsTest_new_test; public void setName(String name) { this.name = name; } public void readStateFrom(Element element) { // TODO Auto-generated method stub } public void writeStateTo(Element node) { // TODO Auto-generated method stub } public File getPropertyFile() { // TODO Auto-generated method stub return null; } public File getConfigXMLFile() { // TODO Auto-generated method stub return null; } public Properties getProperties() { // TODO Auto-generated method stub return null; } public File[] getMappingFiles() { // TODO Auto-generated method stub return null; } public URL[] getCustomClassPathURLS() { // TODO Auto-generated method stub return null; } public String getName() { return name; } public String getEntityResolverName() { // TODO Auto-generated method stub return null; } public ConfigurationMode getConfigurationMode() { // TODO Auto-generated method stub return null; } public String getNamingStrategy() { // TODO Auto-generated method stub return null; } public String getPersistenceUnitName() { // TODO Auto-generated method stub return null; } public String getConnectionProfileName() { // TODO Auto-generated method stub return null; } public String getDialectName() { // TODO Auto-generated method stub return null; } @Override public String getHibernateVersion() { // TODO Auto-generated method stub return null; } }; ConsoleConfiguration configuration = new ConsoleConfiguration(preferences); ConsoleConfiguration configuration2 = new ConsoleConfiguration(preferences2); knownConfigurations.addConfiguration(configuration, false); knownConfigurations.addConfiguration(configuration2, false); configurations = knownConfigurations.getConfigurations(); assertEquals(2,configurations.length); assertEquals(listener.added.size(), 0); knownConfigurations.addConfiguration(configuration, true); knownConfigurations.addConfiguration(configuration2, true); configurations = knownConfigurations.getConfigurations(); assertEquals(2,configurations.length); assertEquals(listener.added.size(), 2); knownConfigurations.removeConfiguration(configuration, false); knownConfigurations.removeConfiguration(configuration2, false); configurations = knownConfigurations.getConfigurations(); assertEquals(0,configurations.length); assertEquals(listener.added.size(), 0); } finally { KnownConfigurations.getInstance().removeConfigurationListener(listener); } } }