package net.jsunit.model; import org.jdom.Document; import org.jdom.Element; import java.util.List; @SuppressWarnings({"unchecked"}) public class TestRunResultBuilder { public static final String NAME = "testRunResult"; private BrowserSource browserSource; public TestRunResultBuilder(BrowserSource browserSource) { this.browserSource = browserSource; } public TestRunResult build(Document document) { TestRunResult result = new TestRunResult(); Element propertiesElement = document.getRootElement().getChild("properties"); if (propertiesElement != null) updateWithProperties(result, propertiesElement.getChildren()); updateWithBrowserResults(document, result); return result; } private void updateWithBrowserResults(Document document, TestRunResult result) { BrowserResultBuilder browserBuilder = new BrowserResultBuilder(browserSource); List<Element> children = document.getRootElement().getChildren("browserResult"); for (Element element : children) { BrowserResult browserResult = browserBuilder.build(element); result.addBrowserResult(browserResult); } } private void updateWithProperties(TestRunResult result, List<Element> properties) { for (Element propertyElement : properties) { String name = propertyElement.getAttribute("name").getValue(); String value = propertyElement.getAttribute("value").getValue(); if (name.equals("os")) result.setOsString(value); else if (name.equals("ipAddress")) result.setIpAddress(value); else if (name.equals("hostname")) result.setHostname(value); } } }