@@ -63,7 +63,7 @@ func TestHandshake(t *testing.T) {
63
63
creditor := protocolTester .Nodes [1 ]
64
64
65
65
// set balance artifially
66
- swap .balances [ creditor .ID ()] = - 42
66
+ swap .saveBalance ( creditor .ID (), - 42 )
67
67
68
68
// create the expected cheque to be received
69
69
cheque := newTestCheque ()
@@ -135,14 +135,17 @@ func TestEmitCheque(t *testing.T) {
135
135
// create the debitor peer
136
136
dPtpPeer := p2p .NewPeer (enode.ID {}, "debitor" , []p2p.Cap {})
137
137
dProtoPeer := protocols .NewPeer (dPtpPeer , nil , Spec )
138
- debitor := NewPeer (dProtoPeer , creditorSwap , debitorSwap .owner .address , debitorSwap .owner .Contract )
138
+ debitor , err := creditorSwap .addPeer (dProtoPeer , debitorSwap .owner .address , debitorSwap .owner .Contract )
139
+ if err != nil {
140
+ t .Fatal (err )
141
+ }
139
142
140
143
// set balance artificially
141
- creditorSwap . balances [ debitor .ID ()] = 42
142
- log .Debug ("balance" , "balance" , creditorSwap . balances [ debitor .ID ()] )
144
+ debitor .setBalance ( 42 )
145
+ log .Debug ("balance" , "balance" , debitor .getBalance () )
143
146
// a safe check: at this point no cheques should be in the swap
144
- if len ( creditorSwap . cheques ) != 0 {
145
- t .Fatalf ("Expected no cheques at creditor, but there are %d :" , len ( creditorSwap . cheques ))
147
+ if debitor . getLastReceivedCheque ( ) != nil {
148
+ t .Fatalf ("Expected no cheques at creditor, but there is %v :" , debitor . getLastReceivedCheque ( ))
146
149
}
147
150
148
151
log .Debug ("create a cheque" )
@@ -179,15 +182,15 @@ func TestEmitCheque(t *testing.T) {
179
182
case <- time .After (4 * time .Second ):
180
183
t .Fatalf ("Timeout waiting for cash transaction to complete" )
181
184
}
182
- log .Debug ("balance" , "balance" , creditorSwap . balances [ debitor .ID ()] )
185
+ log .Debug ("balance" , "balance" , debitor .getBalance () )
183
186
// check that the balance has been reset
184
- if creditorSwap . balances [ debitor .ID ()] != 0 {
185
- t .Fatalf ("Expected debitor balance to have been reset to %d, but it is %d" , 0 , creditorSwap . balances [ debitor .ID ()] )
187
+ if debitor .getBalance () != 0 {
188
+ t .Fatalf ("Expected debitor balance to have been reset to %d, but it is %d" , 0 , debitor .getBalance () )
186
189
}
187
- recvCheque := creditorSwap . loadLastReceivedCheque ( debitor )
190
+ recvCheque := debitor . getLastReceivedCheque ( )
188
191
log .Debug ("expected cheque" , "cheque" , recvCheque )
189
192
if recvCheque != cheque {
190
- t .Fatalf ("Expected exactly one cheque at creditor, but there are %d :" , len ( creditorSwap . cheques ) )
193
+ t .Fatalf ("Expected cheque at creditor, but it was %v :" , recvCheque )
191
194
}
192
195
}
193
196
@@ -205,48 +208,48 @@ func TestTriggerPaymentThreshold(t *testing.T) {
205
208
206
209
// create a dummy pper
207
210
cPeer := newDummyPeerWithSpec (Spec )
208
- creditor := NewPeer (cPeer .Peer , debitorSwap , common.Address {}, common.Address {})
209
- // set the creditor as peer into the debitor's swap
210
- debitorSwap .peers [creditor .ID ()] = creditor
211
+ creditor , err := debitorSwap .addPeer (cPeer .Peer , common.Address {}, common.Address {})
212
+ if err != nil {
213
+ t .Fatal (err )
214
+ }
211
215
212
216
// set the balance to manually be at PaymentThreshold
213
217
overDraft := 42
214
- debitorSwap . balances [ creditor .ID ()] = 0 - DefaultPaymentThreshold
218
+ creditor .setBalance ( - DefaultPaymentThreshold )
215
219
216
220
// we expect a cheque at the end of the test, but not yet
217
- lenCheques := len (debitorSwap .cheques )
218
- if lenCheques != 0 {
219
- t .Fatalf ("Expected no cheques yet, but there are %d" , lenCheques )
221
+ if creditor .getLastSentCheque () != nil {
222
+ t .Fatalf ("Expected no cheques yet, but there is %v:" , creditor .getLastSentCheque ())
220
223
}
221
224
// do some accounting, no error expected, just a WARN
222
- err : = debitorSwap .Add (int64 (- overDraft ), creditor .Peer )
225
+ err = debitorSwap .Add (int64 (- overDraft ), creditor .Peer )
223
226
if err != nil {
224
227
t .Fatal (err )
225
228
}
226
229
227
230
// we should now have a cheque
228
- lenCheques = len (debitorSwap .cheques )
229
- if lenCheques != 1 {
230
- t .Fatalf ("Expected one cheque, but there are %d" , lenCheques )
231
+ if creditor .getLastSentCheque () == nil {
232
+ t .Fatal ("Expected one cheque, but there is none" )
231
233
}
232
- cheque := debitorSwap .cheques [creditor .ID ()]
234
+
235
+ cheque := creditor .getLastSentCheque ()
233
236
expectedAmount := uint64 (overDraft ) + DefaultPaymentThreshold
234
237
if cheque .CumulativePayout != expectedAmount {
235
238
t .Fatalf ("Expected cheque cumulative payout to be %d, but is %d" , expectedAmount , cheque .CumulativePayout )
236
239
}
237
240
238
241
// because no other accounting took place in the meantime the balance should be exactly 0
239
- if debitorSwap . balances [ creditor .ID ()] != 0 {
240
- t .Fatalf ("Expected debitorSwap balance to be 0, but is %d" , debitorSwap . balances [ creditor .ID ()] )
242
+ if creditor .getBalance () != 0 {
243
+ t .Fatalf ("Expected debitorSwap balance to be 0, but is %d" , creditor .getBalance () )
241
244
}
242
245
243
246
// do some accounting again to trigger a second cheque
244
247
if err = debitorSwap .Add (int64 (- DefaultPaymentThreshold ), creditor .Peer ); err != nil {
245
248
t .Fatal (err )
246
249
}
247
250
248
- if debitorSwap . balances [ creditor .ID ()] != 0 {
249
- t .Fatalf ("Expected debitorSwap balance to be 0, but is %d" , debitorSwap . balances [ creditor .ID ()] )
251
+ if creditor .getBalance () != 0 {
252
+ t .Fatalf ("Expected debitorSwap balance to be 0, but is %d" , creditor .getBalance () )
250
253
}
251
254
}
252
255
@@ -260,34 +263,33 @@ func TestTriggerDisconnectThreshold(t *testing.T) {
260
263
261
264
// create a dummy pper
262
265
cPeer := newDummyPeerWithSpec (Spec )
263
- debitor := NewPeer (cPeer .Peer , creditorSwap , common.Address {}, common.Address {})
264
- // set the debitor as peer into the creditor's swap
265
- creditorSwap .peers [debitor .ID ()] = debitor
266
+ debitor , err := creditorSwap .addPeer (cPeer .Peer , common.Address {}, common.Address {})
267
+ if err != nil {
268
+ t .Fatal (err )
269
+ }
266
270
267
271
// set the balance to manually be at DisconnectThreshold
268
272
overDraft := 42
269
273
expectedBalance := int64 (DefaultDisconnectThreshold )
270
274
// we don't expect any change after the test
271
- creditorSwap . balances [ debitor .ID ()] = expectedBalance
275
+ debitor .setBalance ( expectedBalance )
272
276
// we also don't expect any cheques yet
273
- lenCheques := len (creditorSwap .cheques )
274
- if lenCheques != 0 {
275
- t .Fatalf ("Expected no cheques yet, but there are %d" , lenCheques )
277
+ if debitor .getLastSentCheque () != nil {
278
+ t .Fatalf ("Expected no cheques yet, but there is %v" , debitor .getLastSentCheque ())
276
279
}
277
280
// now do some accounting
278
- err : = creditorSwap .Add (int64 (overDraft ), debitor .Peer )
281
+ err = creditorSwap .Add (int64 (overDraft ), debitor .Peer )
279
282
// it should fail due to overdraft
280
283
if err == nil {
281
284
t .Fatal ("Expected an error due to overdraft, but did not get any" )
282
285
}
283
286
// no balance change expected
284
- if creditorSwap . balances [ debitor .ID ()] != expectedBalance {
285
- t .Fatalf ("Expected balance to be %d, but is %d" , expectedBalance , creditorSwap . balances [ debitor .ID ()] )
287
+ if debitor .getBalance () != expectedBalance {
288
+ t .Fatalf ("Expected balance to be %d, but is %d" , expectedBalance , debitor .getBalance () )
286
289
}
287
290
// still no cheques expected
288
- lenCheques = len (creditorSwap .cheques )
289
- if lenCheques != 0 {
290
- t .Fatalf ("Expected still no cheque, but there are %d" , lenCheques )
291
+ if debitor .getLastSentCheque () != nil {
292
+ t .Fatalf ("Expected still no cheques yet, but there is %v" , debitor .getLastSentCheque ())
291
293
}
292
294
293
295
// let's do the whole thing again (actually a bit silly, it's somehow simulating the peer would have been dropped)
@@ -296,13 +298,12 @@ func TestTriggerDisconnectThreshold(t *testing.T) {
296
298
t .Fatal ("Expected an error due to overdraft, but did not get any" )
297
299
}
298
300
299
- if creditorSwap . balances [ debitor .ID ()] != expectedBalance {
300
- t .Fatalf ("Expected balance to be %d, but is %d" , expectedBalance , creditorSwap . balances [ debitor .ID ()] )
301
+ if debitor .getBalance () != expectedBalance {
302
+ t .Fatalf ("Expected balance to be %d, but is %d" , expectedBalance , debitor .getBalance () )
301
303
}
302
304
303
- lenCheques = len (creditorSwap .cheques )
304
- if lenCheques != 0 {
305
- t .Fatalf ("Expected still no cheque, but there are %d" , lenCheques )
305
+ if debitor .getLastSentCheque () != nil {
306
+ t .Fatalf ("Expected no cheques yet, but there is %v" , debitor .getLastSentCheque ())
306
307
}
307
308
}
308
309
0 commit comments