Package org.akka.essentials.unittest.example

Source Code of org.akka.essentials.unittest.example.TickTockTest

package org.akka.essentials.unittest.example;

import static akka.pattern.Patterns.ask;
import junit.framework.Assert;

import org.akka.essentials.unittest.actors.TickTock;
import org.akka.essentials.unittest.actors.TickTock.Tick;
import org.akka.essentials.unittest.actors.TickTock.Tock;
import org.junit.Test;

import akka.actor.ActorSystem;
import akka.actor.Props;
import akka.dispatch.Await;
import akka.testkit.TestActorRef;
import akka.util.Duration;

import com.typesafe.config.ConfigFactory;

public class TickTockTest {
  static ActorSystem _system = ActorSystem.create("TestSys", ConfigFactory
      .load().getConfig("TestSys"));

  @Test
  public void testOne() {
    TestActorRef<TickTock> actorRef = TestActorRef.apply(new Props(
        TickTock.class), _system);

    // get access to the underlying actor object
    TickTock actor = actorRef.underlyingActor();
    // access the methods the actor object and directly pass arguments and
    // test
    actor.tock(new Tock("tock something"));
    Assert.assertTrue(actor.state);

  }

  @Test
  public void testTwo() throws Exception {
    TestActorRef<TickTock> actorRef = TestActorRef.apply(new Props(
        TickTock.class), _system);

    String result = (String) Await.result(ask(actorRef, new Tick("msg"), 5000),
        Duration.parse("5 second"));

    Assert.assertEquals("processed the tick message", result);
  }

  @Test
  public void testThree() throws Exception {
    TestActorRef<TickTock> actorRef = TestActorRef.apply(new Props(
        TickTock.class), _system);
    try {
      actorRef.receive("do something");
      //should not reach here
      Assert.fail();
    } catch (IllegalArgumentException e) {
      Assert.assertEquals(e.getMessage(), "boom!");
    }
  }
 
}
TOP

Related Classes of org.akka.essentials.unittest.example.TickTockTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.