|
Akka/Scala example source code file (ArithmeticServiceTest.java)
The ArithmeticServiceTest.java Akka example source codepackage supervision; import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.Props; import akka.actor.Status; import akka.testkit.JavaTestKit; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import java.util.stream.IntStream; import static supervision.Expression.*; public class ArithmeticServiceTest { static ActorSystem system; @BeforeClass public static void setup() { system = ActorSystem.create("BuncherTest"); } @AfterClass public static void tearDown() { JavaTestKit.shutdownActorSystem(system); system = null; } @Test public void TheArithmeticServiceShouldCalculateConstantExpressionsProperly(){ new JavaTestKit(system) {{ final ActorRef service = system.actorOf(Props.create(ArithmeticService.class)); final ActorRef probe = getRef(); IntStream.range(-2, 3).forEach(x -> { service.tell(new Const(x), probe); expectMsgEquals(x); }); }}; } @Test public void TheArithmeticServiceShouldCalculateAdditionProperly(){ new JavaTestKit(system) {{ final ActorRef service = system.actorOf(Props.create(ArithmeticService.class)); final ActorRef probe = getRef(); IntStream.range(-2, 3).forEach(x -> IntStream.range(-2, 3).forEach(y -> { service.tell(new Add(new Const(x), new Const(y)), probe); expectMsgEquals(x + y); }) ); }}; } @Test public void TheArithmeticServiceShouldCalculateMultiplicationAndDivisionProperly(){ new JavaTestKit(system) {{ final ActorRef service = system.actorOf(Props.create(ArithmeticService.class)); final ActorRef probe = getRef(); IntStream.range(-2, 3).forEach(x -> IntStream.range(-2, 3).forEach(y -> { service.tell(new Multiply(new Const(x), new Const(y)), probe); expectMsgEquals(x * y); }) ); // Skip zero in the second parameter IntStream.range(-2, 3).forEach(x -> IntStream.of(-2, -1, 1, 2).forEach(y -> { service.tell(new Divide(new Const(x), new Const(y)), probe); expectMsgEquals(x / y); }) ); }}; } @Test public void TheArithmeticServiceShouldSurviveIllegalExpressions(){ new JavaTestKit(system) {{ final ActorRef service = system.actorOf(Props.create(ArithmeticService.class)); final ActorRef probe = getRef(); service.tell(new Divide(new Const(1), new Const(0)), probe); expectMsgClass(Status.Failure.class); service.tell(new Add(null, new Const(0)), probe); expectMsgClass(Status.Failure.class); service.tell(new Add(new Const(1), new Const(0)), probe); expectMsgEquals(1); }}; } } Other Akka source code examplesHere is a short list of links related to this Akka ArithmeticServiceTest.java source code file: |
... this post is sponsored by my books ... | |
![]() #1 New Release! |
![]() FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.