blob: 0903f0f7a837668922ff586d9e9c43649d970a09 [file] [log] [blame]
/*******************************************************************************
* 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.framework;
import java.sql.Timestamp;
import java.util.*;
import org.eclipse.persistence.indirection.*;
import org.eclipse.persistence.sessions.DatabaseLogin;
import java.net.*;
import org.eclipse.persistence.*;
/**
* <b>Purpose</b>: holds all the test results and test summary of a loadBuild<p>
* <b>Description</b>: This class is used to save a load build to database<p>
* <b>Responsibilities</b>:<ul>
* <li>
* </ul>
* @author Steven Vo
*/
public class LoadBuildSummary {
public long id;
public String userName;
public String loginChoice;
public String os;
public String jvm;
public String machine;
public String toplinkVersion;
public int numberOfTests;
public int errors;
public int fatalErrors;
public DatabaseLogin databaseLogin;
public Timestamp timestamp;
protected ValueHolderInterface summaries = new ValueHolder();
protected ValueHolderInterface results = new ValueHolder();
/**
* LoadBuildSummary constructor comment.
*/
public LoadBuildSummary() {
try {
this.os = System.getProperty("os.name");
this.jvm = System.getProperty("java.vm.version");
this.toplinkVersion = Version.getVersion() + " :" + Version.getBuildNumber();
this.machine = InetAddress.getLocalHost().getHostName();
// Trim the machine name only because of network issues.
if (this.machine.indexOf(".") != -1) {
this.machine = this.machine.substring(0, this.machine.indexOf("."));
}
} catch (Exception ignore) {
}
}
public String getMachine() {
return machine;
}
public String getToplinkVersion() {
return toplinkVersion;
}
public String getJVM() {
return jvm;
}
public String getOS() {
return os;
}
public String getLoginChoice() {
return loginChoice;
}
/**
*
* @param summary org.eclipse.persistence.testing.framework.TestResultsSummary
*/
public void addResult(TestResult result) {
if (results == null) {
results = new ValueHolder(new Vector());
} else if (results.getValue() == null) {
results.setValue(new Vector());
}
getResults().addElement(result);
}
/**
*
* @param summary org.eclipse.persistence.testing.framework.TestResultsSummary
*/
public void addSummary(TestResultsSummary summary) {
if (summaries == null) {
summaries = new ValueHolder(new Vector());
} else if (summaries.getValue() == null) {
summaries.setValue(new Vector());
}
for (Enumeration enumtr = getSummaries().elements(); enumtr.hasMoreElements();) {
TestResultsSummary element = (TestResultsSummary)enumtr.nextElement();
if (element.getName().equals(summary.getName())) {
getSummaries().removeElement(element);
}
}
getSummaries().addElement(summary);
}
/**
*
* @return int
*/
public void computeNumberOfTestsAndErrors() {
Vector rootSummaries = new Vector();
numberOfTests = 0;
errors = 0;
fatalErrors = 0;
for (Enumeration enumtr = getSummaries().elements(); enumtr.hasMoreElements();) {
TestResultsSummary summary = (TestResultsSummary)enumtr.nextElement();
if (summary.getParent() == null) {
rootSummaries.addElement(summary);
}
}
for (Enumeration enumtr = rootSummaries.elements(); enumtr.hasMoreElements();) {
TestResultsSummary summary = (TestResultsSummary)enumtr.nextElement();
numberOfTests += summary.getTotalTests();
errors += summary.getErrors();
fatalErrors += summary.getFatalErrors();
}
for (Enumeration enumtr = getResults().elements(); enumtr.hasMoreElements();) {
TestResult result = (TestResult)enumtr.nextElement();
if (result.hasError()) {
errors++;
} else if (result.hasFatalError()) {
fatalErrors++;
}
}
numberOfTests += getResults().size();
}
/**
*
* @return java.util.Vector
*/
public Vector getResults() {
if (results == null) {
results = new ValueHolder(new Vector());
} else if (results.getValue() == null) {
results.setValue(new Vector());
}
return (Vector)results.getValue();
}
public ValueHolderInterface getResultsHolder() {
return results;
}
public Vector getSummaries() {
if (summaries == null) {
summaries = new ValueHolder(new Vector());
} else if (summaries.getValue() == null) {
summaries.setValue(new Vector());
}
return (Vector)summaries.getValue();
}
public ValueHolderInterface getSummariesHolder() {
return summaries;
}
public void initializeLoadBuild() {
if (getResults() != null) {
for (Enumeration enumtr = getResults().elements(); enumtr.hasMoreElements();) {
TestResult result = (TestResult)enumtr.nextElement();
result.setLoadBuildSummary(this);
}
}
if (getSummaries() != null) {
for (Enumeration enum1 = getSummaries().elements(); enum1.hasMoreElements();) {
TestResultsSummary summary = (TestResultsSummary)enum1.nextElement();
summary.setLoadBuildSummary(this);
for (Enumeration enum2 = summary.getResults().elements(); enum2.hasMoreElements();) {
TestResult result = (TestResult)enum2.nextElement();
result.setLoadBuildSummary(this);
}
}
}
// remove test result that belongs to a testSummary
for (int i = 0; i < getResults().size(); i++) {
if (((TestResult)getResults().elementAt(i)).getSummary() != null) {
getResults().removeElementAt(i);
i--;
}
}
}
/**
*
* @return java.lang.Boolean
*/
public boolean isEmpty() {
return ((getSummaries().size() == 0) && (getResults().size() == 0));
}
public void setLoadBuildSummaryForTests() {
if (getResults() != null) {
for (Enumeration enumtr = getResults().elements(); enumtr.hasMoreElements();) {
TestResult result = (TestResult)enumtr.nextElement();
result.setLoadBuildSummary(this);
}
}
if (getSummaries() != null) {
for (Enumeration enum1 = getSummaries().elements(); enum1.hasMoreElements();) {
TestResultsSummary summary = (TestResultsSummary)enum1.nextElement();
summary.setLoadBuildSummary(this);
for (Enumeration enum2 = summary.getResults().elements(); enum2.hasMoreElements();) {
TestResult result = (TestResult)enum2.nextElement();
result.setLoadBuildSummary(this);
}
}
}
// remove test result that belongs to a testSummary
for (int i = 0; i < getResults().size(); i++) {
if (((TestResult)getResults().elementAt(i)).getSummary() != null) {
getResults().removeElementAt(i);
i--;
}
}
}
public void setResults(Vector theResults) {
results.setValue(theResults);
}
public void setResultsHolder(ValueHolderInterface holder) {
results = holder;
}
/**
*
* @return java.util.Vector
*/
public void setSummaries(Vector theSummaries) {
summaries.setValue(theSummaries);
}
public void setSummariesHolder(ValueHolderInterface holder) {
summaries = holder;
}
}