EMMA Coverage Report (generated Thu Jan 20 11:39:44 EST 2011)
[all classes][com.hammurapi.eventbus.tests.fastfood]

COVERAGE SUMMARY FOR SOURCE FILE [OrderFulfiller.java]

nameclass, %method, %block, %line, %
OrderFulfiller.java100% (1/1)100% (5/5)88%  (71/81)89%  (18.8/21)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class OrderFulfiller100% (1/1)100% (5/5)88%  (71/81)89%  (18.8/21)
isOK (): boolean 100% (1/1)75%  (6/8)75%  (0.8/1)
matchMainDish (LocalEventDispatchJoinContext, Order, MainDish): void 100% (1/1)86%  (24/28)88%  (7/8)
matchSideDish (LocalEventDispatchJoinContext, Order, SideDish): void 100% (1/1)86%  (24/28)88%  (7/8)
OrderFulfiller (): void 100% (1/1)100% (14/14)100% (3/3)
getFulfilledOrders (): Collection 100% (1/1)100% (3/3)100% (1/1)

1package com.hammurapi.eventbus.tests.fastfood;
2 
3import java.util.Collection;
4import java.util.Collections;
5import java.util.HashSet;
6import java.util.concurrent.atomic.AtomicInteger;
7 
8import com.hammurapi.eventbus.Handler;
9import com.hammurapi.eventbus.local.LocalEventDispatchJoinContext;
10 
11/**
12 * Handler which fulfills orders.
13 * @author Pavel Vlasov
14 *
15 */
16public class OrderFulfiller {
17        
18        private AtomicInteger failureCounter = new AtomicInteger();
19        
20        @Handler("java(*)://order.getMainDishType().equals(mainDish.getClass())")
21        public void matchMainDish(LocalEventDispatchJoinContext<Object, Integer, Object> ctx, Order order, MainDish mainDish) {
22                if (order.setMainDish(mainDish)) {
23                        ctx.consume(mainDish);
24                        if (order.isFulfilled()) {
25                                ctx.consume(order);
26                                fulfilledOrders.add(order);
27                        } else {
28                                ctx.consumeJoin(order);
29                        }
30                } else {
31                        failureCounter.incrementAndGet();
32                }
33        }
34 
35        @Handler("java(*)://order.getSideDishType().equals(sideDish.getClass())")
36        public void matchSideDish(LocalEventDispatchJoinContext<Object, Integer, Object> ctx, Order order, SideDish sideDish) {
37                if (order.setSideDish(sideDish)) {
38                        ctx.consume(sideDish);
39                        if (order.isFulfilled()) {
40                                ctx.consume(order);
41                                fulfilledOrders.add(order);
42                        } else {
43                                ctx.consumeJoin(order);
44                        }
45                } else {
46                        failureCounter.incrementAndGet();
47                }
48        }
49        
50        public boolean isOK() {
51                return failureCounter.get()==0;
52        }
53        
54        private Collection<Order> fulfilledOrders = Collections.synchronizedCollection(new HashSet<Order>());
55        
56        public Collection<Order> getFulfilledOrders() {
57                return fulfilledOrders;
58        }
59 
60}

[all classes][com.hammurapi.eventbus.tests.fastfood]
EMMA 2.0.5312 EclEmma Fix 2 (C) Vladimir Roubtsov