private AtomicWrite[] WriteMessages(int from, int to, string pid, IActorRef sender, string writerGuid)
{
Func<long, Persistent> persistent = i => new Persistent("a-" + i, i, pid, string.Empty, false, sender, writerGuid);
var messages = (SupportsAtomicPersistAllOfSeveralEvents
? Enumerable.Range(from, to - 1)
.Select(
i =>
i == to - 1
? new AtomicWrite(
new[] {persistent(i), persistent(i + 1)}.ToImmutableList<IPersistentRepresentation>())
: new AtomicWrite(persistent(i)))
: Enumerable.Range(from, to).Select(i => new AtomicWrite(persistent(i))))
.ToArray();
var probe = CreateTestProbe();
Journal.Tell(new WriteMessages(messages, probe.Ref, ActorInstanceId));
probe.ExpectMsg<WriteMessagesSuccessful>();
for (int i = from; i <= to; i++)
{
var n = i;
probe.ExpectMsg<WriteMessageSuccess>(m =>
m.Persistent.Payload.ToString() == ("a-" + n) && m.Persistent.SequenceNr == (long)n &&
m.Persistent.PersistenceId == Pid);
}
return messages;
}