|
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