public void CleanupDoneInlineWithoutArbiter()
{
Port<int> pa = new Port<int> ();
Port<string> pb = new Port<string> ();
Type[] types = new Type[] { typeof (int), typeof (string) };
IPortReceive[] ports = new IPortReceive[] { pa, pb };
int count = 1;
Handler<ICollection[]> handler = (cols) => { };
var mig = new MultipleItemGather (types, ports, count, handler);
var dq = new SerialDispatchQueue ();
dq.exec = false;
mig.TaskQueue = dq;
mig.Execute ();
var rec = ports [0].GetReceivers () [0];
var rec2 = ports [0].GetReceivers () [1];
ITask task = null;
Assert.IsTrue (rec.Evaluate (new PortElement<int> (10), ref task), "#1");
Assert.IsNotNull (task, "#2");
Assert.AreEqual (ReceiverTaskState.CleanedUp, mig.State, "#3");
Assert.AreEqual (ReceiverTaskState.Persistent, rec.State, "#4");
Assert.AreEqual (ReceiverTaskState.Persistent, rec2.State, "#5");
Assert.AreEqual (0, dq.count, "#6");
}