.dynamicResultSets(2);
AkibanInformationSchema inAIS = builder.ais();
AkibanInformationSchema outAIS = writeAndRead(inAIS);
Routine proc = outAIS.getRoutine(SCHEMA, "PROC1");
assertNotNull(proc);
SQLJJar jar = proc.getSQLJJar();
assertNotNull(jar);
assertEquals("myjar", jar.getName().getTableName());
assertEquals("http://example.com/procs.jar", jar.getURL().toString());
assertEquals("java", proc.getLanguage());
assertEquals(Routine.CallingConvention.JAVA, proc.getCallingConvention());
assertEquals(3, proc.getParameters().size());
assertEquals("x1", proc.getParameters().get(0).getName());
assertEquals(Parameter.Direction.IN, proc.getParameters().get(0).getDirection());
assertEquals("BIGINT", proc.getParameters().get(0).getTypeName());
assertEquals("x2", proc.getParameters().get(1).getName());
assertEquals("BIGINT", proc.getParameters().get(1).getTypeName());
assertEquals(Parameter.Direction.IN, proc.getParameters().get(1).getDirection());
assertEquals("d", proc.getParameters().get(2).getName());
assertEquals("DOUBLE", proc.getParameters().get(2).getTypeName());
assertEquals(Parameter.Direction.OUT, proc.getParameters().get(2).getDirection());
assertEquals("com.acme.Procs", proc.getClassName());
assertEquals("proc1", proc.getMethodName());
assertEquals(Routine.SQLAllowed.READS_SQL_DATA, proc.getSQLAllowed());
assertEquals(2, proc.getDynamicResultSets());
}