comparison UnitTestsSources/TestMessageBroker.cpp @ 373:d6136a7e914d

making branch am-2 the new mainline
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 05 Nov 2018 10:06:18 +0100
parents 3897f9f28cfa
children 1d9dd542adfe
comparison
equal deleted inserted replaced
371:fe4befe03935 373:d6136a7e914d
1 ///**
2 // * Stone of Orthanc
3 // * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
4 // * Department, University Hospital of Liege, Belgium
5 // * Copyright (C) 2017-2018 Osimis S.A., Belgium
6 // *
7 // * This program is free software: you can redistribute it and/or
8 // * modify it under the terms of the GNU Affero General Public License
9 // * as published by the Free Software Foundation, either version 3 of
10 // * the License, or (at your option) any later version.
11 // *
12 // * This program is distributed in the hope that it will be useful, but
13 // * WITHOUT ANY WARRANTY; without even the implied warranty of
14 // * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 // * Affero General Public License for more details.
16 // *
17 // * You should have received a copy of the GNU Affero General Public License
18 // * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 // **/
20
21
22 //#include "gtest/gtest.h"
23
24 //#include "../Framework/Messages/MessageBroker.h"
25 //#include "../Framework/Messages/IMessage.h"
26 //#include "../Framework/Messages/IObservable.h"
27 //#include "../Framework/Messages/IObserver.h"
28 //#include "../Framework/StoneEnumerations.h"
29
30
31 //static int test1Counter = 0;
32 //static int test2Counter = 0;
33 //class MyFullObserver : public OrthancStone::IObserver
34 //{
35
36 //public:
37 // MyFullObserver(OrthancStone::MessageBroker& broker)
38 // : OrthancStone::IObserver(broker)
39 // {
40 //// DeclareHandledMessage(OrthancStone::MessageType_Test1);
41 //// DeclareIgnoredMessage(OrthancStone::MessageType_Test2);
42 // }
43
44
45 // void HandleMessage(OrthancStone::IObservable& from, const OrthancStone::IMessage& message) {
46 // switch (message.GetType())
47 // {
48 // case OrthancStone::MessageType_Test1:
49 // test1Counter++;
50 // break;
51 // case OrthancStone::MessageType_Test2:
52 // test2Counter++;
53 // break;
54 // default:
55 // throw OrthancStone::MessageNotDeclaredException(message.GetType());
56 // }
57 // }
58
59 //};
60
61 //class MyPartialObserver : public OrthancStone::IObserver
62 //{
63
64 //public:
65 // MyPartialObserver(OrthancStone::MessageBroker& broker)
66 // : OrthancStone::IObserver(broker)
67 // {
68 //// DeclareHandledMessage(OrthancStone::MessageType_Test1);
69 // // don't declare Test2 on purpose
70 // }
71
72
73 // void HandleMessage(OrthancStone::IObservable& from, const OrthancStone::IMessage& message) {
74 // switch (message.GetType())
75 // {
76 // case OrthancStone::MessageType_Test1:
77 // test1Counter++;
78 // break;
79 // case OrthancStone::MessageType_Test2:
80 // test2Counter++;
81 // break;
82 // default:
83 // throw OrthancStone::MessageNotDeclaredException(message.GetType());
84 // }
85 // }
86
87 //};
88
89
90 //class MyObservable : public OrthancStone::IObservable
91 //{
92
93 //public:
94 // MyObservable(OrthancStone::MessageBroker& broker)
95 // : OrthancStone::IObservable(broker)
96 // {
97 // DeclareEmittableMessage(OrthancStone::MessageType_Test1);
98 // DeclareEmittableMessage(OrthancStone::MessageType_Test2);
99 // }
100
101 //};
102
103
104 //TEST(MessageBroker, NormalUsage)
105 //{
106 // OrthancStone::MessageBroker broker;
107 // MyObservable observable(broker);
108
109 // test1Counter = 0;
110
111 // // no observers have been registered -> nothing shall happen
112 // observable.EmitMessage(OrthancStone::IMessage(OrthancStone::MessageType_Test1));
113
114 // ASSERT_EQ(0, test1Counter);
115
116 // // register an observer, check it is called
117 // MyFullObserver fullObserver(broker);
118 // ASSERT_NO_THROW(observable.RegisterObserver(fullObserver));
119
120 // observable.EmitMessage(OrthancStone::IMessage(OrthancStone::MessageType_Test1));
121
122 // ASSERT_EQ(1, test1Counter);
123
124 // // register an invalid observer, check it raises an exception
125 // MyPartialObserver partialObserver(broker);
126 // ASSERT_THROW(observable.RegisterObserver(partialObserver), OrthancStone::MessageNotDeclaredException);
127
128 // // check an exception is thrown when the observable emits an undeclared message
129 // ASSERT_THROW(observable.EmitMessage(OrthancStone::IMessage(OrthancStone::MessageType_LayerSource_GeometryReady)), OrthancStone::MessageNotDeclaredException);
130
131 // // unregister the observer, make sure nothing happens afterwards
132 // observable.UnregisterObserver(fullObserver);
133 // observable.EmitMessage(OrthancStone::IMessage(OrthancStone::MessageType_Test1));
134 // ASSERT_EQ(1, test1Counter);
135 //}
136
137 //TEST(MessageBroker, DeleteObserverWhileRegistered)
138 //{
139 // OrthancStone::MessageBroker broker;
140 // MyObservable observable(broker);
141
142 // test1Counter = 0;
143
144 // {
145 // // register an observer, check it is called
146 // MyFullObserver observer(broker);
147 // observable.RegisterObserver(observer);
148
149 // observable.EmitMessage(OrthancStone::IMessage(OrthancStone::MessageType_Test1));
150
151 // ASSERT_EQ(1, test1Counter);
152 // }
153
154 // // at this point, the observer has been deleted, the handle shall not be called again (and it shall not crash !)
155 // observable.EmitMessage(OrthancStone::IMessage(OrthancStone::MessageType_Test1));
156
157 // ASSERT_EQ(1, test1Counter);
158 //}