/* * Copyright 2009 Google Inc. * * Licensed 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 com.google.jstestdriver; import com.google.common.collect.Maps; import java.util.Map; /** * @author jeremiele@google.com (Jeremie Lenfant-Engelmann) */ // TODO(corysmith): move to protocol package. // TODO(corysmith): factor out a parsed test result. public class TestResult { public enum Result { passed, failed, error, started } private String result; private String message; private String parsedMessage; private String stack; private String log; private String testCaseName; private String testName; private float time; private BrowserInfo browserInfo; private Map<String, String> data = Maps.newHashMap(); public Map<String, String> getData() { return data; } public TestResult(BrowserInfo browser, String result, String message, String log, String testCaseName, String testName, float time) { this.browserInfo = browser; this.result = result; this.message = message; this.log = log; this.testCaseName = testCaseName; this.testName = testName; this.time = time; } public TestResult() { } public Result getResult() { return Result.valueOf(result); } public String getMessage() { return message; } public String getTestCaseName() { return testCaseName; } public String getTestName() { return testName; } public float getTime() { return time; } public void setBrowserInfo(BrowserInfo browserInfo) { this.browserInfo = browserInfo; } public void setParsedMessage(String parsedMessage) { this.parsedMessage = parsedMessage; } public void setStack(String stack) { this.stack = stack; } public String getParsedMessage() { return parsedMessage; } public String getStack() { return stack; } public BrowserInfo getBrowserInfo() { return browserInfo; } public String getLog() { return log; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((browserInfo == null) ? 0 : browserInfo.hashCode()); result = prime * result + ((log == null) ? 0 : log.hashCode()); result = prime * result + ((message == null) ? 0 : message.hashCode()); result = prime * result + ((parsedMessage == null) ? 0 : parsedMessage.hashCode()); result = prime * result + ((this.result == null) ? 0 : this.result.hashCode()); result = prime * result + ((stack == null) ? 0 : stack.hashCode()); result = prime * result + ((testCaseName == null) ? 0 : testCaseName.hashCode()); result = prime * result + ((testName == null) ? 0 : testName.hashCode()); result = prime * result + Float.floatToIntBits(time); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; TestResult other = (TestResult) obj; if (browserInfo == null) { if (other.browserInfo != null) return false; } else if (!browserInfo.equals(other.browserInfo)) return false; if (log == null) { if (other.log != null) return false; } else if (!log.equals(other.log)) return false; if (message == null) { if (other.message != null) return false; } else if (!message.equals(other.message)) return false; if (parsedMessage == null) { if (other.parsedMessage != null) return false; } else if (!parsedMessage.equals(other.parsedMessage)) return false; if (result == null) { if (other.result != null) return false; } else if (!result.equals(other.result)) return false; if (stack == null) { if (other.stack != null) return false; } else if (!stack.equals(other.stack)) return false; if (testCaseName == null) { if (other.testCaseName != null) return false; } else if (!testCaseName.equals(other.testCaseName)) return false; if (testName == null) { if (other.testName != null) return false; } else if (!testName.equals(other.testName)) return false; if (Float.floatToIntBits(time) != Float.floatToIntBits(other.time)) return false; return true; } @Override public String toString() { return String.format("%s: %s; %s; %s; %s; %s,; %s; %s", getClass().getSimpleName(), browserInfo, result, message, log, testCaseName, testName, time); } }