/******************************************************************************* * (c) Copyright 2016 Hewlett-Packard Development Company, L.P. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Apache License v2.0 which accompany this distribution. * * The Apache License is available at * http://www.apache.org/licenses/LICENSE-2.0 * *******************************************************************************/ package io.cloudslang.lang.tools.build.tester.parse; import com.fasterxml.jackson.annotation.JsonIgnore; import io.cloudslang.lang.tools.build.SlangBuildMain; import java.io.Serializable; import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import static com.google.common.collect.Lists.newArrayList; import static org.apache.commons.collections4.CollectionUtils.isEmpty; /** * Created by stoneo on 3/15/2015. **/ public class SlangTestCase implements Serializable { private static final String UNKNOWN_FILE_PATH = "<unknown file path>"; private String name; private String testFlowPath; private String description; private List<String> testSuites; private String systemPropertiesFile; @JsonIgnore private List<Map> inputs; private List<Map> outputs; private Boolean throwsException; private String result; @JsonIgnore private String filePath; //for jackson private SlangTestCase() { } public SlangTestCase(String name, String testFlowPath, String description, List<String> testSuites, String systemPropertiesFile, List<Map> inputs, List<Map> outputs, Boolean throwsException, String result) { this.name = name; this.testFlowPath = testFlowPath; this.description = description; this.systemPropertiesFile = systemPropertiesFile; this.testSuites = testSuites; this.inputs = inputs; this.outputs = outputs; this.throwsException = throwsException; this.result = result; this.filePath = null; } public SlangTestCase(String name, String testFlowPath, String description, List<String> testSuites, String systemPropertiesFile, List<Map> inputs, List<Map> outputs, Boolean throwsException, String result, String filePath) { this.name = name; this.testFlowPath = testFlowPath; this.description = description; this.systemPropertiesFile = systemPropertiesFile; this.testSuites = testSuites; this.inputs = inputs; this.outputs = outputs; this.throwsException = throwsException; this.result = result; this.filePath = filePath; } public static String generateTestCaseReference(SlangTestCase slangTestCase) { return slangTestCase.getName() + " [" + (StringUtils.isEmpty(slangTestCase.getFilePath()) ? UNKNOWN_FILE_PATH : slangTestCase.getFilePath()) + "]"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTestFlowPath() { return testFlowPath; } public String getDescription() { return description; } public List<String> getTestSuites() { List<String> localTestSuites = this.testSuites; return isEmpty(localTestSuites) ? newArrayList(SlangBuildMain.DEFAULT_TESTS) : newArrayList(localTestSuites); } public String getSystemPropertiesFile() { return systemPropertiesFile; } public void setInputs(List<Map> inputs) { this.inputs = inputs; } public List<Map> getInputs() { return inputs; } public List<Map> getOutputs() { return outputs; } public Boolean getThrowsException() { return throwsException; } public void setThrowsException(boolean throwsException) { this.throwsException = throwsException; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } public String getFilePath() { return filePath; } public void setFilePath(String filePath) { this.filePath = filePath; } @Override public boolean equals(Object o) { return EqualsBuilder.reflectionEquals(this, o); } @Override public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); } }