Package net.sourceforge.squirrel_sql.plugins.sqlparam

Source Code of net.sourceforge.squirrel_sql.plugins.sqlparam.SQLParamPluginTest

/*
* Copyright (C) 2008 Rob Manning
* manningr@users.sourceforge.net
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/
package net.sourceforge.squirrel_sql.plugins.sqlparam;

import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.isA;
import net.sourceforge.squirrel_sql.client.gui.session.SessionPanel;
import net.sourceforge.squirrel_sql.client.plugin.AbstractPluginTest;
import net.sourceforge.squirrel_sql.client.plugin.DatabaseProductVersionData;
import net.sourceforge.squirrel_sql.client.plugin.ISessionPlugin;
import net.sourceforge.squirrel_sql.client.session.ISQLPanelAPI;
import net.sourceforge.squirrel_sql.client.session.ISession;
import net.sourceforge.squirrel_sql.client.session.event.ISQLExecutionListener;

import org.easymock.EasyMock;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;


public class SQLParamPluginTest extends AbstractPluginTest implements DatabaseProductVersionData
  @Before
  public void setUp() throws Exception
  {
    classUnderTest = new SQLParamPlugin();
  }

  @After
  public void tearDown() throws Exception
  {
    classUnderTest = null;
  }   

  // Bug 2746982: Error occured in IPlugin.sessionEnded() for SQL Parametrisat
  // My theory here is that the session ending method was called twice (possibly user clicked the close
  // session tab 'X' and close application window 'X' in rapid succession.  In any case, the plugin
  // shouldn't behave badly if this happens - no guarantees that the PluginManager won't send spurious
  // close events on shutdown.
  @Test
  public void testMultipleSessionEndings() {
   
    ISession mockSession = mockHelper.createMock("mockSession", ISession.class);
    SessionPanel mockSessionPanel = mockHelper.createMock("mockSessionPanel", SessionPanel.class);
    ISQLPanelAPI mockSQLPanelAPI = mockHelper.createMock("mockSQLPanelAPI", ISQLPanelAPI.class);
    EasyMock.makeThreadSafe(mockSQLPanelAPI, true);
   
    expect(mockSession.getSessionSheet()).andStubReturn(mockSessionPanel);
    expect(mockSessionPanel.getSQLPaneAPI()).andStubReturn(mockSQLPanelAPI);
    mockSQLPanelAPI.addSQLExecutionListener(isA(ISQLExecutionListener.class));
    expectLastCall().anyTimes();
    mockSQLPanelAPI.removeSQLExecutionListener(isA(ISQLExecutionListener.class));
    expectLastCall().anyTimes();
   
    mockHelper.replayAll();
   
    ((ISessionPlugin)classUnderTest).sessionCreated(mockSession);
    ((ISessionPlugin)classUnderTest).sessionStarted(mockSession);
    // Give the AWT thread time to finish processing the event.
    Thread.yield();
   
    ((ISessionPlugin)classUnderTest).sessionEnding(mockSession);
    ((ISessionPlugin)classUnderTest).sessionEnding(mockSession);

   
    mockHelper.verifyAll();
  }
 
}
TOP

Related Classes of net.sourceforge.squirrel_sql.plugins.sqlparam.SQLParamPluginTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.