/* See LICENSE for licensing and NOTICE for copyright. */ package org.ldaptive.beans.generate; import org.ldaptive.schema.Schema; import org.ldaptive.schema.SchemaFactory; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; /** * Unit tests for {@link BeanGenerator}. * * @author Middleware Services */ public class BeanGeneratorTest { /** * Test data for bean generator. * * @return custom objects * * @throws Exception if a schema cannot be read */ @DataProvider(name = "schemas") public Object[][] createSchemas() throws Exception { return new Object[][] { new Object[] { SchemaFactory.createSchema(BeanGeneratorTest.class.getResourceAsStream("/subschema.ldif")), "org.ldaptive.beans.schema.subschema", new String[] {"inetOrgPerson"}, }, new Object[] { SchemaFactory.createSchema(BeanGeneratorTest.class.getResourceAsStream("/allschema.ldif")), "org.ldaptive.beans.schema.allschema", new String[] {"inetOrgPerson"}, }, }; } /** * @param schema to generate beans from * @param packageName to generate beans in * @param objectClasses to generate beans for * * @throws Exception On test failure. */ @Test(groups = {"beans"}, dataProvider = "schemas") public void generate(final Schema schema, final String packageName, final String[] objectClasses) throws Exception { final BeanGenerator generator = new BeanGenerator(); generator.setSchema(schema); generator.setObjectClasses(objectClasses); generator.setPackageName(packageName); generator.setUseOperationalAttributes(true); generator.setUseOptionalAttributes(true); generator.setIncludeSuperiorClasses(true); generator.generate(); generator.write("target/generated-test-sources/ldaptive"); } }