package org.molgenis.data.rest.v2;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
public class AttributeFilterConverterTest
{
private AttributeFilterConverter attributeFilterConverter;
@BeforeMethod
public void setUpBeforeMethod()
{
attributeFilterConverter = new AttributeFilterConverter();
}
@Test
public void convertSingleAttribute()
{
AttributeFilter attributeFilter = new AttributeFilter().add("attr0");
assertEquals(attributeFilterConverter.convert("attr0"), attributeFilter);
}
@Test
public void convertSingleAttributeEscapeComma()
{
AttributeFilter attributeFilter = new AttributeFilter().add("attr,0");
assertEquals(attributeFilterConverter.convert("attr\\,0"), attributeFilter);
}
// @Test
// public void convertSingleAttributeEscapeSlash()
// {
// AttributeFilter attributeFilter = new AttributeFilter().add("attr/0");
// assertEquals(attributeFilterConverter.convert("attr//0"), attributeFilter);
// }
@Test
public void convertSingleAttributeEscapeParenthesisLeft()
{
AttributeFilter attributeFilter = new AttributeFilter().add("attr(0");
assertEquals(attributeFilterConverter.convert("attr\\(0"), attributeFilter);
}
@Test
public void convertSingleAttributeEscapeParenthesisRight()
{
AttributeFilter attributeFilter = new AttributeFilter().add("attr)0");
assertEquals(attributeFilterConverter.convert("attr\\)0"), attributeFilter);
}
// @Test
// public void convertSingleAttributeSubSelectionSingleAttributeSlash()
// {
// AttributeFilter attributeFilter = new AttributeFilter().add("attr0", new AttributeFilter().add("subattr0"));
// assertEquals(attributeFilterConverter.convert("attr0/subattr0"), attributeFilter);
// }
@Test
public void convertSingleAttributeSubSelectionSingleAttributeParenthesis()
{
AttributeFilter attributeFilter = new AttributeFilter().add("attr0", new AttributeFilter().add("subattr0"));
assertEquals(attributeFilterConverter.convert("attr0(subattr0)"), attributeFilter);
}
@Test
public void convertSingleAttributeSubSelectionSingleAttributeParenthesisWildcard()
{
AttributeFilter attributeFilter = new AttributeFilter()
.add("attr0", new AttributeFilter().setIncludeAllAttrs(true));
assertEquals(attributeFilterConverter.convert("attr0(*)"), attributeFilter);
}
@Test
public void convertSingleAttributeSubSelectionMultipleAttributes()
{
AttributeFilter attributeFilter = new AttributeFilter()
.add("attr0", new AttributeFilter().add("subattr0").add("subattr1"));
assertEquals(attributeFilterConverter.convert("attr0(subattr0,subattr1)"), attributeFilter);
}
@Test
public void convertSingleAttributeSubSelectionMultipleAttributesWildcard1()
{
AttributeFilter attributeFilter = new AttributeFilter()
.add("attr0", new AttributeFilter().add("subattr0").setIncludeAllAttrs(true));
assertEquals(attributeFilterConverter.convert("attr0(subattr0,*)"), attributeFilter);
}
@Test
public void convertSingleAttributeSubSelectionMultipleAttributesWildcard2()
{
AttributeFilter attributeFilter = new AttributeFilter()
.add("attr0", new AttributeFilter().add("subattr1").setIncludeAllAttrs(true));
assertEquals(attributeFilterConverter.convert("attr0(*,subattr1)"), attributeFilter);
}
@Test
public void convertSingleAttributeSubSubSelection()
{
AttributeFilter attributeFilter = new AttributeFilter()
.add("attr0", new AttributeFilter().add("subattr0", new AttributeFilter().add("subsubattr0")));
assertEquals(attributeFilterConverter.convert("attr0(subattr0(subsubattr0)"), attributeFilter);
}
@Test
public void convertMultipleAttributes()
{
AttributeFilter attributeFilter = new AttributeFilter().add("attr0").add("attr1");
assertEquals(attributeFilterConverter.convert("attr0,attr1"), attributeFilter);
}
// @Test
// public void convertMultipleAttributesSubSelectionSingleAttributeSlash()
// {
// AttributeFilter attributeFilter = new AttributeFilter().add("attr0").add("attr1",
// new AttributeFilter().add("subattr1"));
// assertEquals(attributeFilterConverter.convert("attr0,attr1/subattr1"), attributeFilter);
// }
@Test
public void convertMultipleAttributesSubSelectionSingleAttributeParenthesis()
{
AttributeFilter attributeFilter = new AttributeFilter().add("attr0")
.add("attr1", new AttributeFilter().add("subattr1"));
assertEquals(attributeFilterConverter.convert("attr0,attr1(subattr1)"), attributeFilter);
}
@Test
public void convertMultipleAttributesSubSelectionSingleAttributeParenthesisWildcard()
{
AttributeFilter attributeFilter = new AttributeFilter().add("attr0")
.add("attr1", new AttributeFilter().setIncludeAllAttrs(true));
assertEquals(attributeFilterConverter.convert("attr0,attr1(*)"), attributeFilter);
}
@Test
public void convertMultipleAttributesSubSelectionMultipleAttributes()
{
AttributeFilter attributeFilter = new AttributeFilter().add("attr0")
.add("attr1", new AttributeFilter().add("subattr1").add("subattr2"));
assertEquals(attributeFilterConverter.convert("attr0,attr1(subattr1,subattr2)"), attributeFilter);
}
@Test
public void convertMultipleAttributesSubSelectionMultipleAttributesWildCard1()
{
AttributeFilter attributeFilter = new AttributeFilter().add("attr0")
.add("attr1", new AttributeFilter().add("subattr1").setIncludeAllAttrs(true));
assertEquals(attributeFilterConverter.convert("attr0,attr1(subattr1,*)"), attributeFilter);
}
@Test
public void convertMultipleAttributesSubSelectionMultipleAttributesWildCard2()
{
AttributeFilter attributeFilter = new AttributeFilter().add("attr0")
.add("attr1", new AttributeFilter().add("subattr2").setIncludeAllAttrs(true));
assertEquals(attributeFilterConverter.convert("attr0,attr1(*,subattr2)"), attributeFilter);
}
}