1 /*******************************************************************************
2 
3     Copyright:
4         Copyright (c) 2017 dunnhumby Germany GmbH.
5         All rights reserved.
6 
7     License:
8         Boost Software License Version 1.0. See LICENSE_BOOST.txt for details.
9         Alternatively, this file may be distributed under the terms of the Tango
10         3-Clause BSD License (see LICENSE_BSD.txt for details).
11 
12 *******************************************************************************/
13 
14 module ocean.task.util.Event_test;
15 
16 import ocean.task.util.Event;
17 import ocean.task.Task;
18 import ocean.task.util.Timer;
19 import ocean.task.Scheduler;
20 import ocean.core.Test;
21 
22 unittest
23 {
24     TaskEvent event;
25     int state = 0;
26 
27     class Task1 : Task
28     {
29         override public void run ( )
30         {
31             state = 1;
32             event.wait();
33             state = 3;
34         }
35     }
36 
37     class Task2 : Task
38     {
39         override public void run ( )
40         {
41             state = 2;
42             .wait(100);
43             event.trigger();
44         }
45     }
46 
47     initScheduler(SchedulerConfiguration.init);
48     theScheduler.schedule(new Task1);
49     test!("==")(state, 1);
50     theScheduler.schedule(new Task2);
51     test!("==")(state, 2);
52     theScheduler.eventLoop();
53     test!("==")(state, 3);
54 }
55 
56 unittest
57 {
58     TaskEvent event;
59     int state = 0;
60 
61     class Task1 : Task
62     {
63         override public void run ( )
64         {
65             state = 1;
66             event.wait();
67             state = 3;
68         }
69     }
70 
71     class Task2 : Task
72     {
73         override public void run ( )
74         {
75             state = 2;
76             event.trigger();
77         }
78     }
79 
80     initScheduler(SchedulerConfiguration.init);
81     theScheduler.schedule(new Task2);
82     test!("==")(state, 2);
83     theScheduler.schedule(new Task1);
84     test!("==")(state, 3);
85     theScheduler.eventLoop();
86 }
87 
88