Search in sources :

Example 16 with ActorMessage

use of actor4j.core.messages.ActorMessage in project actor4j-core by relvaner.

the class MatcherFeature method before.

@Before
public void before() {
    matcher = new ActorMessageMatcher();
    matcher.match(-5, new Consumer<ActorMessage<?>>() {

        @Override
        public void accept(ActorMessage<?> message) {
            postconditions[0] = message.tag;
        }
    }).matchAny(new Consumer<ActorMessage<?>>() {

        @Override
        public void accept(ActorMessage<?> message) {
            postconditions[1] = message.tag;
        }
    }).match(15, new Consumer<ActorMessage<?>>() {

        @Override
        public void accept(ActorMessage<?> message) {
            postconditions[0] = message.tag;
        }
    }).matchElse(new Consumer<ActorMessage<?>>() {

        @Override
        public void accept(ActorMessage<?> message) {
            postconditions[0] = message.tag;
        }
    }).match(String.class, new Consumer<ActorMessage<?>>() {

        @Override
        public void accept(ActorMessage<?> message) {
            postconditions[0] = 1976;
        }
    }).match(String.class, new Predicate<ActorMessage<?>>() {

        @Override
        public boolean test(ActorMessage<?> message) {
            return message.valueAsString().equals("Hello World!");
        }
    }, new Consumer<ActorMessage<?>>() {

        @Override
        public void accept(ActorMessage<?> message) {
            postconditions[0] = 1976 + 1;
        }
    }).match(17, new Consumer<ActorMessage<?>>() {

        @Override
        public void accept(ActorMessage<?> message) {
            postconditions[0] = message.tag;
        }
    });
}
Also used : Consumer(java.util.function.Consumer) ActorMessageMatcher(actor4j.core.utils.ActorMessageMatcher) ActorMessage(actor4j.core.messages.ActorMessage) Predicate(java.util.function.Predicate) Before(org.junit.Before)

Example 17 with ActorMessage

use of actor4j.core.messages.ActorMessage in project actor4j-core by relvaner.

the class ActorMessageMatcher method match.

public ActorMessageMatcher match(final UUID[] sources, final int tag, Consumer<ActorMessage<?>> action) {
    checkAction(action);
    MatchTuple tuple = new MatchTuple();
    tuple.predicate = new Predicate<ActorMessage<?>>() {

        @Override
        public boolean test(ActorMessage<?> message) {
            boolean result = false;
            if (message.tag == tag)
                for (UUID source : sources) if (message.source.equals(source)) {
                    result = true;
                    break;
                }
            return result;
        }
    };
    tuple.action = action;
    matches.add(tuple);
    return this;
}
Also used : ActorMessage(actor4j.core.messages.ActorMessage) UUID(java.util.UUID)

Aggregations

ActorMessage (actor4j.core.messages.ActorMessage)17 UUID (java.util.UUID)14 CountDownLatch (java.util.concurrent.CountDownLatch)10 Test (org.junit.Test)10 Actor (actor4j.core.actors.Actor)8 Consumer (java.util.function.Consumer)8 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)7 ActorFactory (actor4j.core.utils.ActorFactory)6 ActorSystem (actor4j.core.ActorSystem)5 ArrayList (java.util.ArrayList)3 Assert (org.junit.Assert)3 Timer (java.util.Timer)2 TimerTask (java.util.TimerTask)2 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 ActorTimer (actor4j.core.ActorTimer)1 EmbeddedActor (actor4j.core.actors.EmbeddedActor)1 PersistentActor (actor4j.core.actors.PersistentActor)1 PrimaryActor (actor4j.core.actors.PrimaryActor)1 PseudoActor (actor4j.core.actors.PseudoActor)1 SecondaryActor (actor4j.core.actors.SecondaryActor)1