package org.jboss.windup.testutil.html;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* Tests the contents of the compatible files report
*/
public class TestCompatibleReportUtil extends TestReportUtil
{
/**
* Checks that a sis listed with the given name and technology
*/
public boolean checkFileInReport(String name, String technology)
{
List<WebElement> elements = getDriver().findElements(By.tagName("table"));
if (elements == null || elements.isEmpty())
{
throw new CheckFailedException("Unable to find any static Compatible table element");
}
boolean result = false;
for (WebElement el : elements)
{
result |= checkValueInTable(el, name, technology);
}
return result;
}
/**
* Checks that a sis listed with the given name and technology
*/
public boolean checkTableWithoutDuplicates()
{
List<WebElement> elements = getDriver().findElements(By.tagName("table"));
if (elements == null || elements.isEmpty())
{
throw new CheckFailedException("Unable to find any static Compatible table element");
}
for (WebElement element : elements)
{
//for a single table
Set<String> foundClasses = new HashSet<>();
List<WebElement> rowElements = element.findElements(By.xpath(".//tr"));
for (WebElement rowElement : rowElements)
{
List<WebElement> tdElements = rowElement.findElements(By.xpath(".//td[position() = " + (1) + "]"));
if (tdElements.size() != 1)
{
break;
}
String firstElementString = tdElements.get(0).getText().trim();
String withoutExtension = firstElementString.replaceAll("\\.class", "");
withoutExtension = withoutExtension.replaceAll("\\.java", "");
if (foundClasses.contains(withoutExtension))
{
return false;
}
else
{
foundClasses.add(withoutExtension);
}
}
}
return true;
}
}