Akka.Interfaced.Persistence.Tests.TestPersistentActor.Test_PersistentActor_Work C# (CSharp) Method

Test_PersistentActor_Work() private method

private Test_PersistentActor_Work ( ) : System.Threading.Tasks.Task
return System.Threading.Tasks.Task
        public async Task Test_PersistentActor_Work()
        {
            // create
            {
                var eventLog = new List<string>();
                var actor = ActorOfAsTestActorRef<TestNotepadActor>(Props.Create<TestNotepadActor>("notepad1", eventLog));
                var a = actor.Cast<NotepadRef>();
                await a.Clear();
                await a.Write("Apple");
                await a.Write("Banana");
                await a.FlushSnapshot();
                await a.Write("Cinamon");
                var doc = await a.GetDocument();
                await a.CastToIActorRef().GracefulStop(TimeSpan.FromSeconds(5), InterfacedPoisonPill.Instance);

                Assert.Equal(new List<string> { "Apple", "Banana", "Cinamon" }, doc);
                Assert.Equal(new List<string>(), eventLog);
            }

            // incarnation from snapshot & journal
            {
                var eventLog = new List<string>();
                var actor = ActorOfAsTestActorRef<TestNotepadActor>(Props.Create<TestNotepadActor>("notepad1", eventLog));
                var a = actor.Cast<NotepadRef>();
                var doc = await a.GetDocument();

                Assert.Equal(new List<string> { "Apple", "Banana", "Cinamon" }, doc);
                Assert.Equal(new List<string>
                {
                    "OnRecover(SnapshotOffer)",
                    "OnRecover(NotepadWriteEvent)"
                }, eventLog);
            }
        }
    }