/* See LICENSE for licensing and NOTICE for copyright. */ package org.ldaptive.schema; import java.util.Collections; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; /** * Unit tests for {@link Syntax}. * * @author Middleware Services */ public class SyntaxTest { /** * Test data for attribute syntax. * * @return attribute syntax and string definition */ @DataProvider(name = "definitions") public Object[][] createDefinitions() { return new Object[][] { new Object[] { new Syntax("1.3.6.1.4.1.1466.115.121.1.5", null, null), "( 1.3.6.1.4.1.1466.115.121.1.5 )", }, new Object[] { new Syntax("1.3.6.1.4.1.1466.115.121.1.5", "Binary", null), "( 1.3.6.1.4.1.1466.115.121.1.5 DESC 'Binary' )", }, new Object[] { new Syntax( "1.3.6.1.4.1.1466.115.121.1.5", "Binary", new Extensions("X-NOT-HUMAN-READABLE", Collections.singletonList("TRUE"))), "( 1.3.6.1.4.1.1466.115.121.1.5 DESC 'Binary' X-NOT-HUMAN-READABLE 'TRUE' )", }, }; } /** * @param attributeSyntax to compare * @param definition to parse * * @throws Exception On test failure. */ @Test(groups = {"schema"}, dataProvider = "definitions") public void parse(final Syntax attributeSyntax, final String definition) throws Exception { final Syntax parsed = Syntax.parse(definition); Assert.assertEquals(attributeSyntax, parsed); Assert.assertEquals(definition, parsed.format()); Assert.assertEquals(attributeSyntax.format(), parsed.format()); } }