Skip to content

Instantly share code, notes, and snippets.

@vinsguru
Last active July 2, 2017 04:41
Show Gist options
  • Save vinsguru/6dbdd9fbc408c36183ef11db3fa96a87 to your computer and use it in GitHub Desktop.
Save vinsguru/6dbdd9fbc408c36183ef11db3fa96a87 to your computer and use it in GitHub Desktop.
@JacksonXmlRootElement(localName = "suite")
public class Suite {
@JacksonXmlProperty(isAttribute = true)
private String name;
@JacksonXmlProperty(localName = "test")
@JacksonXmlElementWrapper(useWrapping = false)
private List < Test > tests;
public Suite(String name) {
this.name = name;
this.tests = new ArrayList < Suite.Test > ();
}
public void addTest(String testname, String paramName, String paramValue, String className) {
Test test = new Test(testname);
test.addParam(paramName, paramValue);
Pattern.compile(",").splitAsStream(className).forEach(test::addClass);
this.tests.add(test);
}
class Test {
@JacksonXmlProperty(isAttribute = true)
private String name;
@JacksonXmlProperty(localName = "parameter")
private Parameter param;
@JacksonXmlProperty(localName = "classes")
private Classes klasses;
public Test(String name) {
this.name = name;
klasses = new Classes();
}
public void addParam(String name, String value) {
param = new Parameter(name, value);
}
public void addClass(String name) {
klasses.assClasses(name);
}
}
class Parameter {
@JacksonXmlProperty(isAttribute = true)
private String name;
@JacksonXmlProperty(isAttribute = true)
private String value;
public Parameter(String name, String value) {
this.name = name;
this.value = value;
}
}
class Classes {
@JacksonXmlProperty(localName = "class")
@JacksonXmlElementWrapper(useWrapping = false)
private List < Class > classes;
public Classes() {
this.classes = new ArrayList < Suite.Class > ();
}
public void assClasses(String name) {
this.classes.add(new Class(name));
}
}
class Class {
@JacksonXmlProperty(isAttribute = true)
private String name;
Class(String name) {
this.name = name;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment