FlowDescription desc = new DualIdentityFlow<Simple>(in1, in2, out1, out2);
JobflowInfo info = compile(flow, desc);
assertThat(info, not(nullValue()));
List<ExternalIoCommandProvider> commands = info.getCommandProviders();
ExternalIoCommandProvider provider = WindGateIoProcessor.findRelated(commands);
assertThat(provider, not(nullValue()));
CommandContext context = new CommandContext("home", "id", "");
List<Command> importer = provider.getImportCommand(context);
List<Command> exporter = provider.getExportCommand(context);
List<Command> finalizer = provider.getFinalizeCommand(context);
assertThat(importer.size(), is(2));
assertThat(exporter.size(), is(1));
assertThat(finalizer.size(), is(2));
assertThat(mode(importer, "testing"), is(WindGateIoProcessor.OPT_BEGIN));
assertThat(mode(importer, "other"), is(WindGateIoProcessor.OPT_ONESHOT));