/******************************************************************************* | |
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved. | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 | |
* which accompanies this distribution. | |
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html | |
* and the Eclipse Distribution License is available at | |
* http://www.eclipse.org/org/documents/edl-v10.php. | |
* | |
* Contributors: | |
* Oracle - initial API and implementation from Oracle TopLink | |
******************************************************************************/ | |
package org.eclipse.persistence.testing.tests.manual; | |
import java.io.*; | |
import org.eclipse.persistence.testing.models.employee.domain.*; | |
import org.eclipse.persistence.sessions.*; | |
import org.eclipse.persistence.testing.framework.*; | |
public class SQLLogToFileTest extends ManualVerifyTestCase { | |
String logFileName; | |
Writer oldLog; | |
/** | |
* SQLLoggingTest constructor comment. | |
*/ | |
public SQLLogToFileTest() { | |
setDescription("This test verifies that SQL can be logged to a file, the sql output should logged."); | |
} | |
private String getLogFileName() { | |
return logFileName; | |
} | |
public void reset() { | |
rollbackTransaction(); | |
// Set SQL logging to previous values | |
getSession().setLog(oldLog); | |
} | |
private void setLogFileName(String newFileName) { | |
logFileName = newFileName; | |
} | |
protected void setLogging() { | |
oldLog = getSession().getLog(); | |
setLogFileName("SQL.LOG"); | |
// Create a PrintStream on the given log file. Tell the session to log | |
// SQL output to this file. | |
try { | |
FileWriter fileWriter = new FileWriter(getLogFileName()); | |
getSession().setLog(fileWriter); | |
} catch (IOException exception) { | |
TestException testException = new TestException("Error opening stream on file " + getLogFileName()); | |
testException.setInternalException(exception); | |
throw testException; | |
} | |
} | |
public void setup() { | |
setLogging(); | |
beginTransaction(); | |
} | |
public void test() { | |
DatabaseSession session = getDatabaseSession(); | |
Employee anEmployee = (org.eclipse.persistence.testing.models.employee.domain.Employee)new org.eclipse.persistence.testing.models.employee.domain.EmployeePopulator().basicEmployeeExample1(); | |
// Insert an employee into the database | |
session.insertObject(anEmployee); | |
// Write an employee into the database | |
session.writeObject(new org.eclipse.persistence.testing.models.employee.domain.EmployeePopulator().basicEmployeeExample2()); | |
// Read all employees from the database | |
session.readAllObjects(Employee.class); | |
// Delete objects from the database | |
session.deleteObject(anEmployee); | |
try { | |
session.getLog().close(); | |
} catch (IOException e) { | |
} | |
// Set SQL logging to previous values | |
session.setLog(oldLog); | |
// Dump the contents of the log file to the screen. | |
getSession().logMessage("================================================================"); | |
getSession().logMessage("Dumping contents of log file (" + getLogFileName() + ") to screen."); | |
try { | |
BufferedReader input = new BufferedReader(new FileReader(getLogFileName())); | |
for (String nextLine = ""; nextLine != null; nextLine = input.readLine()) { | |
getSession().logMessage(nextLine); | |
} | |
} catch (FileNotFoundException exception) { | |
TestException testException = new TestException("The log file was not found :" + getLogFileName()); | |
testException.setInternalException(exception); | |
throw testException; | |
} catch (IOException exception) { | |
TestException testException = new TestException("Could not read from log file :" + getLogFileName()); | |
testException.setInternalException(exception); | |
throw testException; | |
} | |
getSession().logMessage("================== DONE (Dumping contents of log file.) ===================="); | |
} | |
} |