public void Journal_optionally_may_reject_non_serializable_events()
{
if (!SupportsRejectingNonSerializableObjects) return;
var msgs = Enumerable.Range(6, 3).Select(i =>
{
var evt = i == 7 ? (object) new NotSerializableEvent(false) : "b-" + i;
return new AtomicWrite(new Persistent(evt, i, Pid, sender: ActorRefs.NoSender, writerGuid: WriterGuid));
});
var probe = CreateTestProbe();
Journal.Tell(new WriteMessages(msgs, probe.Ref, ActorInstanceId));
probe.ExpectMsg<WriteMessagesSuccessful>();
var pid = Pid;
var writerGuid = WriterGuid;
probe.ExpectMsg<WriteMessageSuccess>(m => m.Persistent.SequenceNr == 6L &&
m.Persistent.PersistenceId.Equals(pid) &&
m.Persistent.Sender == null &&
m.Persistent.WriterGuid.Equals(writerGuid) &&
m.Persistent.Payload.Equals("b-6"));
probe.ExpectMsg<WriteMessageRejected>(m => m.Persistent.SequenceNr == 7L &&
m.Persistent.PersistenceId.Equals(pid) &&
m.Persistent.Sender == null &&
m.Persistent.WriterGuid.Equals(writerGuid) &&
m.Persistent.Payload is NotSerializableEvent);
probe.ExpectMsg<WriteMessageSuccess>(m => m.Persistent.SequenceNr == 8L &&
m.Persistent.PersistenceId.Equals(pid) &&
m.Persistent.Sender == null &&
m.Persistent.WriterGuid.Equals(writerGuid) &&
m.Persistent.Payload.Equals("b-8"));
}
}