@Test(expected = ConfigurationError.class) public void testIllegalSourceType() { ArrayTypeDescriptor descriptor = createArrayType(""); descriptor.setSource("illegalSource"); context.set("illegalSource", new File("txt.txt")); Generator<Object[]> generator = (Generator<Object[]>) arrayTypeGeneratorFactory.createGenerator( descriptor, "testIllegalSourceType", false, Uniqueness.NONE, context); generator.init(context); }
@Test public void testXlsSource() { ArrayTypeDescriptor parent = createPersonDescriptor(); ArrayTypeDescriptor descriptor = createArrayType("testXlsSource", parent); descriptor.setSource("org/databene/benerator/factory/person.ent.xls"); Generator<Object[]> generator = (Generator<Object[]>) arrayTypeGeneratorFactory.createGenerator( descriptor, "testXlsSource", false, Uniqueness.NONE, context); context.set("otto_age", 89); generator.init(context); expectGeneratedSequence(generator, ALICE, OTTO).withCeasedAvailability(); }
@Test public void testGeneratorSource() { context.set("myGen", new PersonAttrArrayGenerator()); ArrayTypeDescriptor parent = createPersonDescriptor(); ArrayTypeDescriptor descriptor = createArrayType("testGeneratorSource", parent); descriptor.setSource("myGen"); Generator<Object[]> generator = (Generator<Object[]>) arrayTypeGeneratorFactory.createGenerator( descriptor, "testGeneratorSource", false, Uniqueness.NONE, context); generator.init(context); for (int i = 0; i < 10; i++) assertEqualArrays(ALICE, GeneratorUtil.generateNonNull(generator)); }
@Test public void testCsvSource() { ArrayTypeDescriptor parent = createPersonDescriptor(); ArrayTypeDescriptor descriptor = createArrayType("testCsvSource", parent); descriptor.setSource("org/databene/benerator/factory/person.ent.csv"); Generator<Object[]> generator = (Generator<Object[]>) arrayTypeGeneratorFactory.createGenerator( descriptor, "testCsvSource", false, Uniqueness.NONE, context); context.set("ottos_age", 89); generator.init(context); assertEqualArrays(ALICE, GeneratorUtil.generateNonNull(generator)); assertEqualArrays(OTTO, GeneratorUtil.generateNonNull(generator)); assertUnavailable(generator); }
@Test public void testEntitySource() { ArrayTypeDescriptor descriptor = createArrayType("testEntitySourceType"); descriptor.setSource(PersonSource.class.getName()); Generator<Object[]> generator = (Generator<Object[]>) arrayTypeGeneratorFactory.createGenerator( descriptor, "testEntitySource", false, Uniqueness.NONE, context); generator.init(context); for (int i = 0; i < 2; i++) { Object[] product = GeneratorUtil.generateNonNull(generator); assertTrue( "Found: " + ArrayFormat.format(product), Arrays.equals(ALICE, product) || Arrays.equals(BOB, product)); } assertUnavailable(generator); }
@Test public void testCsvDataset() { ArrayTypeDescriptor parent = createPersonDescriptor(); ArrayTypeDescriptor descriptor = createArrayType("testCsvDataset", parent); descriptor.setSource("org/databene/benerator/factory/dataset_{0}.csv"); descriptor.setNesting("org/databene/benerator/factory/testnesting"); descriptor.setDataset("DACH"); Generator<Object[]> generator = (Generator<Object[]>) arrayTypeGeneratorFactory.createGenerator( descriptor, "testCsvDataset", false, Uniqueness.SIMPLE, context); Generator<String> g = WrapperFactory.applyConverter( generator, new ArrayElementExtractor<String>(String.class, 0)); generator.init(context); expectUniquelyGeneratedSet(g, "de", "at", "ch"); assertUnavailable(generator); }
@Test public void testDatabaseSource() throws Exception { // prepare DB DBSystem db = new DBSystem( "db", HSQLUtil.getInMemoryURL("benerator"), HSQLUtil.DRIVER, "sa", null, context.getDataModel()); context.set("db", db); try { db.execute( "create table agft_person (" + " id int NOT NULL," + " name varchar(30) NOT NULL," + " age int NOT NULL" + ")"); db.execute("insert into agft_person (id, name, age) values (1, 'Alice', 23)"); db.execute("insert into agft_person (id, name, age) values (2, 'Otto', 89)"); // prepare descriptor ArrayTypeDescriptor parent = createPersonDescriptor(); ArrayTypeDescriptor descriptor = createArrayType("testDatabaseSource", parent); descriptor.setSource("db"); descriptor.setSelector("select name, age from agft_person"); Generator<Object[]> generator = (Generator<Object[]>) arrayTypeGeneratorFactory.createGenerator( descriptor, "testDatabaseSource", false, Uniqueness.NONE, context); generator.init(context); // verify results assertEqualArrays(ALICE, GeneratorUtil.generateNonNull(generator)); Object[] p2 = GeneratorUtil.generateNonNull(generator); assertEqualArrays(OTTO, p2); assertUnavailable(generator); } finally { db.execute("drop table agft_person if exists"); db.close(); } }