|
14 | 14 | * test your applications logic without any fear of ASAP bugs.
|
15 | 15 | *
|
16 | 16 | */
|
17 |
| -public class ASAPPeerMock implements ASAPPeerServices { |
18 |
| - private final CharSequence peerName; |
19 |
| - private boolean connected = false; |
20 |
| - |
| 17 | +public class ASAPPeerMock extends ASAPBasicAbstractPeer implements ASAPPeerServices { |
21 | 18 | public ASAPPeerMock(CharSequence peerName) {
|
22 |
| - this.peerName = peerName; |
| 19 | + super(peerName); |
23 | 20 | }
|
24 | 21 |
|
25 | 22 | public ASAPPeerMock() {
|
@@ -86,6 +83,37 @@ private void takeMessages(ASAPPeerMock asapPeerMock, int tmpEra, Map<CharSequenc
|
86 | 83 | }
|
87 | 84 | }
|
88 | 85 |
|
| 86 | + private void notifyMessagesReceived(Map<CharSequence, Map<CharSequence, List<byte[]>>> appUriMessages) { |
| 87 | + // notify about new messages == simulate sending |
| 88 | + for(CharSequence appName : appUriMessages.keySet()) { |
| 89 | + Map<CharSequence, List<byte[]>> appMap = appUriMessages.get(appName); |
| 90 | + if(appMap != null) { |
| 91 | + Set<CharSequence> uris = appMap.keySet(); |
| 92 | + for(CharSequence uri : uris) { |
| 93 | + List<byte[]> serializedAppPDUs = appMap.get(uri); |
| 94 | + ASAPMessages messagesMock = new ASAPMessagesMock(appName, uri, serializedAppPDUs); |
| 95 | + this.asapMessageReceivedListenerManager.notifyReceived(appName, messagesMock, true); |
| 96 | + } |
| 97 | + } |
| 98 | + } |
| 99 | + } |
| 100 | + |
| 101 | + private void notifyMessageReceived() { |
| 102 | + Map<CharSequence, Map<CharSequence, List<byte[]>>> appUriMessages = null; |
| 103 | + synchronized(this.appMsgStorage) { |
| 104 | + if(this.appMsgStorage.isEmpty()) return; // nothing to do |
| 105 | + // else copy |
| 106 | + appUriMessages = this.appMsgStorage; |
| 107 | + // create empty |
| 108 | + this.appMsgStorage = new HashMap<>(); |
| 109 | + |
| 110 | + // now: new message can be written and do not disturb notification process |
| 111 | + } |
| 112 | + |
| 113 | + // notify about new messages == simulate sending |
| 114 | + this.notifyMessagesReceived(appUriMessages); |
| 115 | + } |
| 116 | + |
89 | 117 | private CharSequence getPeerName() {
|
90 | 118 | return this.peerName;
|
91 | 119 | }
|
@@ -134,78 +162,6 @@ public void sendASAPMessage(CharSequence appName, CharSequence uri, byte[] messa
|
134 | 162 | List<byte[]> storage = this.getStorage(appName, uri);
|
135 | 163 | storage.add(message);
|
136 | 164 | }
|
137 |
| - |
138 |
| - if(this.connected) this.notifyMessageReceived(); |
139 |
| - } |
140 |
| - |
141 |
| - //////////////////////////////////////////////////////////////////////////////////////////////////////// |
142 |
| - // ASAPMessageReceivedListener // |
143 |
| - //////////////////////////////////////////////////////////////////////////////////////////////////////// |
144 |
| - private ASAPMessageReceivedListenerManager asapMessageReceivedListenerManager = |
145 |
| - new ASAPMessageReceivedListenerManager(); |
146 |
| - |
147 |
| - public void addASAPMessageReceivedListener(CharSequence format, ASAPMessageReceivedListener listener) { |
148 |
| - this.asapMessageReceivedListenerManager.addASAPMessageReceivedListener(format, listener); |
149 |
| - } |
150 |
| - |
151 |
| - private void notifyMessagesReceived(Map<CharSequence, Map<CharSequence, List<byte[]>>> appUriMessages) { |
152 |
| - // notify about new messages == simulate sending |
153 |
| - for(CharSequence appName : appUriMessages.keySet()) { |
154 |
| - Map<CharSequence, List<byte[]>> appMap = appUriMessages.get(appName); |
155 |
| - if(appMap != null) { |
156 |
| - Set<CharSequence> uris = appMap.keySet(); |
157 |
| - for(CharSequence uri : uris) { |
158 |
| - List<byte[]> serializedAppPDUs = appMap.get(uri); |
159 |
| - ASAPMessages messagesMock = new ASAPMessagesMock(appName, uri, serializedAppPDUs); |
160 |
| - this.asapMessageReceivedListenerManager.notifyReceived(appName, messagesMock, true); |
161 |
| - } |
162 |
| - } |
163 |
| - } |
164 |
| - } |
165 |
| - |
166 |
| - private void notifyMessageReceived() { |
167 |
| - Map<CharSequence, Map<CharSequence, List<byte[]>>> appUriMessages = null; |
168 |
| - synchronized(this.appMsgStorage) { |
169 |
| - if(this.appMsgStorage.isEmpty()) return; // nothing to do |
170 |
| - // else copy |
171 |
| - appUriMessages = this.appMsgStorage; |
172 |
| - // create empty |
173 |
| - this.appMsgStorage = new HashMap<>(); |
174 |
| - |
175 |
| - // now: new message can be written and do not disturb notification process |
176 |
| - } |
177 |
| - |
178 |
| - // notify about new messages == simulate sending |
179 |
| - this.notifyMessagesReceived(appUriMessages); |
180 | 165 | }
|
181 | 166 |
|
182 |
| - //////////////////////////////////////////////////////////////////////////////////////////////////////// |
183 |
| - // ASAPEnvironmentChangesListener // |
184 |
| - //////////////////////////////////////////////////////////////////////////////////////////////////////// |
185 |
| - |
186 |
| - private ASAPEnvironmentChangesListenerManager environmentChangesListenerManager = |
187 |
| - new ASAPEnvironmentChangesListenerManager(); |
188 |
| - |
189 |
| - @Override |
190 |
| - public void addASAPEnvironmentChangesListener(ASAPEnvironmentChangesListener changesListener) { |
191 |
| - this.environmentChangesListenerManager.addASAPEnvironmentChangesListener(changesListener); |
192 |
| - } |
193 |
| - |
194 |
| - @Override |
195 |
| - public void removeASAPEnvironmentChangesListener(ASAPEnvironmentChangesListener changesListener) { |
196 |
| - this.environmentChangesListenerManager.removeASAPEnvironmentChangesListener(changesListener); |
197 |
| - } |
198 |
| - |
199 |
| - //////////////////////////////////////////////////////////////////////////////////////////////////////// |
200 |
| - // util // |
201 |
| - //////////////////////////////////////////////////////////////////////////////////////////////////////// |
202 |
| - |
203 |
| - private void log(String msg) { |
204 |
| - StringBuilder sb = new StringBuilder(); |
205 |
| - sb.append(this.peerName); |
206 |
| - sb.append(": "); |
207 |
| - sb.append(msg); |
208 |
| - |
209 |
| - System.out.println(sb.toString()); |
210 |
| - } |
211 | 167 | }
|
0 commit comments