Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
themeEmacs
protected void persistenceSnapShot()  {
    new TestKit(system) {{
    	ActorRef probe = getRef();	    	
    	
		Props snapShotActorProp = ext.props("snapShotActor");			
		System.out.println("===== snapShotActor 액터생성");
		ActorRef snapShotActor = system.actorOf(snapShotActorProp, "snapShotActor");
		
		System.out.println("=====  event 생성");
		snapShotActor.tell("커피", ActorRef.noSender());
		snapShotActor.tell("사탕", ActorRef.noSender());
		snapShotActor.tell("커피", ActorRef.noSender());
		snapShotActor.tell("스테이크", ActorRef.noSender());
		snapShotActor.tell("라면", ActorRef.noSender()); // <-- 복구기대 상태
		snapShotActor.tell("사탕", ActorRef.noSender());  
		snapShotActor.tell("커피", ActorRef.noSender());

		System.out.println("===== 상태확인");
		snapShotActor.tell( "print" , ActorRef.noSender());			
		expectNoMessage(java.time.Duration.ofSeconds(1));
		
		System.out.println("=====  snapShotActor 종료또는 비정상종료");
		snapShotActor.tell( akka.actor.PoisonPill.getInstance() , ActorRef.noSender());			
		expectNoMessage(java.time.Duration.ofSeconds(1));
		
		
		System.out.println("=====  snapShotActor 재생성");
		ActorRef snapShotActo2 = system.actorOf(snapShotActorProp, "eventActor");
		
		System.out.println("=====  상태 복원확인을 위해 probe를 액터 참조자로 지정");
		snapShotActo2.tell( "print" , probe );
		
		// === 기대결과 1초이내에 '라면을 먹은 상태'임을 확인 : 비동기 메시지를 확인할수검사하는방법중하나 있는 방법중하나 
		expectMsgEquals(java.time.Duration.ofSeconds(1), "라면을 먹은 상태" );			
    }};
}

...