/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.usergrid.chop.webapp.dao.model;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.apache.usergrid.chop.api.Run;
import org.apache.usergrid.chop.webapp.elasticsearch.Util;
import java.util.Map;
/**
* Corresponds to the summary of a single chop test run of a test class for a commit
*/
public class BasicRun implements Run {
private String id;
private String commitId;
private String runner;
private int runNumber;
private String testName;
private String chopType;
private long iterations;
private long totalTestsRun;
private int threads;
private long delay;
private long time;
private long actualTime;
private long minTime;
private long maxTime;
private long avgTime;
private long failures;
private long ignores;
private long startTime;
private long stopTime;
private boolean saturate;
/**
* @param id
* @param commitId
* @param runner hostname of the runner
* @param runNumber
* @param testName
*/
public BasicRun( String id, String commitId, String runner, int runNumber, String testName ) {
this.commitId = commitId;
this.runner = runner;
this.runNumber = runNumber;
this.testName = testName;
this.id = id;
}
@Override
public int hashCode() {
return new HashCodeBuilder()
.append( commitId )
.append( runner )
.append( runNumber )
.append( testName )
.toHashCode();
}
public void copyJson( Map<String, Object> json ) {
setChopType( Util.getString( json, "chopType" ) );
setIterations( Util.getInt( json, "actualIterations" ) );
setTotalTestsRun( Util.getInt( json, "totalTestsRun" ) );
setThreads( Util.getInt( json, "threads" ) );
setDelay( Util.getInt( json, "delay" ) );
setTime( Util.getInt( json, "time" ) );
setActualTime( Util.getInt( json, "actualTime" ) );
setMinTime( Util.getInt( json, "minTime" ) );
setMaxTime( Util.getInt( json, "maxTime" ) );
setAvgTime( Util.getInt( json, "meanTime" ) );
setFailures( Util.getInt( json, "failures" ) );
setIgnores( Util.getInt( json, "ignores" ) );
setStartTime( Util.getLong( json, "startTime" ) );
setStopTime( Util.getLong( json, "stopTime" ) );
setSaturate( Util.getBoolean( json, "saturate" ) );
}
public String getId() {
return id;
}
public String getCommitId() {
return commitId;
}
public String getRunner() {
return runner;
}
public int getRunNumber() {
return runNumber;
}
@Override
public String getTestName() {
return testName;
}
public long getIterations() {
return iterations;
}
public long getTotalTestsRun() {
return totalTestsRun;
}
public String getChopType() {
return chopType;
}
public int getThreads() {
return threads;
}
public long getDelay() {
return delay;
}
public long getTime() {
return time;
}
public long getActualTime() {
return actualTime;
}
public long getMinTime() {
return minTime;
}
public long getMaxTime() {
return maxTime;
}
public long getAvgTime() {
return avgTime;
}
public long getFailures() {
return failures;
}
public long getIgnores() {
return ignores;
}
public long getStartTime() {
return startTime;
}
public long getStopTime() {
return stopTime;
}
public boolean getSaturate() {
return saturate;
}
public void setIterations( long iterations ) {
this.iterations = iterations;
}
public void setTotalTestsRun( long totalTestsRun ) {
this.totalTestsRun = totalTestsRun;
}
public void setChopType( String chopType ) {
this.chopType = chopType;
}
public void setThreads( int threads ) {
this.threads = threads;
}
public void setDelay( long delay ) {
this.delay = delay;
}
public void setTime( long time ) {
this.time = time;
}
public void setActualTime( long actualTime ) {
this.actualTime = actualTime;
}
public void setMinTime( long minTime ) {
this.minTime = minTime;
}
public void setMaxTime( long maxTime ) {
this.maxTime = maxTime;
}
public void setAvgTime( long avgTime ) {
this.avgTime = avgTime;
}
public void setFailures( long failures ) {
this.failures = failures;
}
public void setIgnores( long ignores ) {
this.ignores = ignores;
}
public void setStartTime( long startTime ) {
this.startTime = startTime;
}
public void setStopTime( long stopTime ) {
this.stopTime = stopTime;
}
public void setSaturate( boolean saturate ) {
this.saturate = saturate;
}
public String toString() {
return new ToStringBuilder( this, ToStringStyle.SHORT_PREFIX_STYLE )
.append( "id", id )
.append( "runNumber", runNumber )
.append( "commitId", commitId )
.append( "actualTime", actualTime )
.append( "minTime", minTime )
.append( "maxTime", maxTime )
.append( "avgTime", avgTime )
.append( "failures", failures )
.append( "ignores", ignores )
.append( "runner", runner )
.append( "testName", testName )
.append( "chopType", chopType )
.append( "iterations", iterations )
.append( "totalTestsRun", totalTestsRun )
.append( "threads", threads )
.append( "delay", delay )
.append( "time", time )
.append( "startTime", startTime )
.append( "stopTime", stopTime )
.append( "saturate", saturate )
.toString();
}
}