Scroom  0.14
progressinterfacebroadcaster-tests.cc File Reference
#include <boost/test/unit_test.hpp>
#include <scroom/assertions.hh>
#include <scroom/progressinterfacehelpers.hh>
#include "progressstateinterfacestub.hh"
Include dependency graph for progressinterfacebroadcaster-tests.cc:

Functions

 BOOST_AUTO_TEST_CASE (each_child_is_notified)
 
 BOOST_AUTO_TEST_CASE (late_children_receive_current_state)
 
 BOOST_AUTO_TEST_CASE (unsubscribed_children_stop_receiving_events)
 

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/3]

BOOST_AUTO_TEST_CASE ( each_child_is_notified  )
22 {
24  BOOST_CHECK(progressBroadcaster);
25 
27  BOOST_CHECK(stub1);
28  Stuff const r1 = progressBroadcaster->subscribe(ProgressInterfaceFromProgressStateInterfaceForwarder::create(stub1));
29  BOOST_CHECK_EQUAL(ProgressStateInterface::IDLE, stub1->state);
30 
32  BOOST_CHECK(stub2);
33  Stuff const r2 = progressBroadcaster->subscribe(ProgressInterfaceFromProgressStateInterfaceForwarder::create(stub2));
34  BOOST_CHECK_EQUAL(ProgressStateInterface::IDLE, stub2->state);
35 
36  progressBroadcaster->setWorking(0.0);
37  BOOST_CHECK_EQUAL(ProgressStateInterface::WORKING, stub1->state);
38  BOOST_CHECK_EQUAL(ProgressStateInterface::WORKING, stub2->state);
39  BOOST_CHECK_EQUAL(0.0, stub1->progress);
40  BOOST_CHECK_EQUAL(0.0, stub2->progress);
41 
42  progressBroadcaster->setWaiting(0.25);
43  BOOST_CHECK_EQUAL(ProgressStateInterface::WAITING, stub1->state);
44  BOOST_CHECK_EQUAL(ProgressStateInterface::WAITING, stub2->state);
45  BOOST_CHECK_EQUAL(0.25, stub1->progress);
46  BOOST_CHECK_EQUAL(0.25, stub2->progress);
47 
48  progressBroadcaster->setWorking(0.5);
49  BOOST_CHECK_EQUAL(ProgressStateInterface::WORKING, stub1->state);
50  BOOST_CHECK_EQUAL(ProgressStateInterface::WORKING, stub2->state);
51  BOOST_CHECK_EQUAL(0.5, stub1->progress);
52  BOOST_CHECK_EQUAL(0.5, stub2->progress);
53 
54  progressBroadcaster->setFinished();
55  BOOST_CHECK_EQUAL(ProgressStateInterface::FINISHED, stub1->state);
56  BOOST_CHECK_EQUAL(ProgressStateInterface::FINISHED, stub2->state);
57 
58  progressBroadcaster->setIdle();
59  BOOST_CHECK_EQUAL(ProgressStateInterface::IDLE, stub1->state);
60  BOOST_CHECK_EQUAL(ProgressStateInterface::IDLE, stub2->state);
61 }
Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [2/3]

BOOST_AUTO_TEST_CASE ( late_children_receive_current_state  )
64 {
66  BOOST_CHECK(progressBroadcaster);
67 
68  progressBroadcaster->setWorking(0.0);
69 
71  BOOST_CHECK(stub1);
72  Stuff const r1 = progressBroadcaster->subscribe(ProgressInterfaceFromProgressStateInterfaceForwarder::create(stub1));
73  BOOST_CHECK_EQUAL(ProgressStateInterface::WORKING, stub1->state);
74  BOOST_CHECK_EQUAL(0.0, stub1->progress);
75 
76  progressBroadcaster->setWaiting(0.5);
77  BOOST_CHECK_EQUAL(ProgressStateInterface::WAITING, stub1->state);
78  BOOST_CHECK_EQUAL(0.5, stub1->progress);
79 
81  BOOST_CHECK(stub2);
82  Stuff const r2 = progressBroadcaster->subscribe(ProgressInterfaceFromProgressStateInterfaceForwarder::create(stub2));
83 
84  BOOST_CHECK_EQUAL(ProgressStateInterface::WAITING, stub2->state);
85  BOOST_CHECK_EQUAL(0.5, stub2->progress);
86 }
Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [3/3]

BOOST_AUTO_TEST_CASE ( unsubscribed_children_stop_receiving_events  )
89 {
91  BOOST_CHECK(progressBroadcaster);
92 
94  BOOST_CHECK(stub1);
95  Stuff r1 = progressBroadcaster->subscribe(ProgressInterfaceFromProgressStateInterfaceForwarder::create(stub1));
96  BOOST_CHECK_EQUAL(ProgressStateInterface::IDLE, stub1->state);
97 
99  BOOST_CHECK(stub2);
100  Stuff r2 = progressBroadcaster->subscribe(ProgressInterfaceFromProgressStateInterfaceForwarder::create(stub2));
101  BOOST_CHECK_EQUAL(ProgressStateInterface::IDLE, stub2->state);
102 
103  progressBroadcaster->setWorking(0.0);
104  BOOST_CHECK_EQUAL(ProgressStateInterface::WORKING, stub1->state);
105  BOOST_CHECK_EQUAL(ProgressStateInterface::WORKING, stub2->state);
106  BOOST_CHECK_EQUAL(0.0, stub1->progress);
107  BOOST_CHECK_EQUAL(0.0, stub2->progress);
108 
109  r1.reset();
110 
111  progressBroadcaster->setWaiting(0.25);
112  BOOST_CHECK_EQUAL(ProgressStateInterface::WORKING, stub1->state);
113  BOOST_CHECK_EQUAL(0.0, stub1->progress);
114  BOOST_CHECK_EQUAL(ProgressStateInterface::WAITING, stub2->state);
115  BOOST_CHECK_EQUAL(0.25, stub2->progress);
116 
117  r2.reset();
118 
119  progressBroadcaster->setWorking(0.5);
120  BOOST_CHECK_EQUAL(ProgressStateInterface::WORKING, stub1->state);
121  BOOST_CHECK_EQUAL(0.0, stub1->progress);
122  BOOST_CHECK_EQUAL(ProgressStateInterface::WAITING, stub2->state);
123  BOOST_CHECK_EQUAL(0.25, stub2->progress);
124 }
Here is the call graph for this function:
ProgressStateInterfaceStub::create
static Ptr create()
Definition: progressstateinterfacestub.cc:5
BOOST_CHECK_EQUAL
BOOST_CHECK_EQUAL(sample.expectedColors, originalColormap->colors.size())
ProgressStateInterfaceStub::Ptr
boost::shared_ptr< ProgressStateInterfaceStub > Ptr
Definition: progressstateinterfacestub.hh:15
Scroom::Utils::Stuff
boost::shared_ptr< void > Stuff
Definition: stuff.hh:18
Scroom::Utils::ProgressInterfaceBroadcaster::Ptr
boost::shared_ptr< ProgressInterfaceBroadcaster > Ptr
Definition: progressinterfacehelpers.hh:131
create
void create(NewPresentationInterface *interface)
Definition: loader.cc:175