Beispiel #1
0
  @Test
  public void createAndRead() throws Exception {
    // #create
    ExecutionContext ec = ExecutionContexts.global();
    Agent<Integer> agent = Agent.create(5, ec);
    // #create

    // #read-get
    Integer result = agent.get();
    // #read-get

    // #read-future
    Future<Integer> future = agent.future();
    // #read-future

    assertEquals(result, new Integer(5));
    assertEquals(Await.result(future, Duration.create(5, "s")), new Integer(5));
  }
Beispiel #2
0
public class AgentDocTest {

  private static ExecutionContext ec = ExecutionContexts.global();

  @Test
  public void createAndRead() throws Exception {
    // #create
    ExecutionContext ec = ExecutionContexts.global();
    Agent<Integer> agent = Agent.create(5, ec);
    // #create

    // #read-get
    Integer result = agent.get();
    // #read-get

    // #read-future
    Future<Integer> future = agent.future();
    // #read-future

    assertEquals(result, new Integer(5));
    assertEquals(Await.result(future, Duration.create(5, "s")), new Integer(5));
  }

  @Test
  public void sendAndSendOffAndReadAwait() throws Exception {
    Agent<Integer> agent = Agent.create(5, ec);

    // #send
    // send a value, enqueues this change
    // of the value of the Agent
    agent.send(7);

    // send a Mapper, enqueues this change
    // to the value of the Agent
    agent.send(
        new Mapper<Integer, Integer>() {
          public Integer apply(Integer i) {
            return i * 2;
          }
        });
    // #send

    Mapper<Integer, Integer> longRunningOrBlockingFunction =
        new Mapper<Integer, Integer>() {
          public Integer apply(Integer i) {
            return i * 1;
          }
        };

    ExecutionContext theExecutionContextToExecuteItIn = ec;
    // #send-off
    // sendOff a function
    agent.sendOff(longRunningOrBlockingFunction, theExecutionContextToExecuteItIn);
    // #send-off

    assertEquals(Await.result(agent.future(), Duration.create(5, "s")), new Integer(14));
  }

  @Test
  public void alterAndAlterOff() throws Exception {
    Agent<Integer> agent = Agent.create(5, ec);

    // #alter
    // alter a value
    Future<Integer> f1 = agent.alter(7);

    // alter a function (Mapper)
    Future<Integer> f2 =
        agent.alter(
            new Mapper<Integer, Integer>() {
              public Integer apply(Integer i) {
                return i * 2;
              }
            });
    // #alter

    Mapper<Integer, Integer> longRunningOrBlockingFunction =
        new Mapper<Integer, Integer>() {
          public Integer apply(Integer i) {
            return i * 1;
          }
        };

    ExecutionContext theExecutionContextToExecuteItIn = ec;
    // #alter-off
    // alterOff a function (Mapper)
    Future<Integer> f3 =
        agent.alterOff(longRunningOrBlockingFunction, theExecutionContextToExecuteItIn);
    // #alter-off

    assertEquals(Await.result(f3, Duration.create(5, "s")), new Integer(14));
  }
}