Skip to content

Commit 72687d8

Browse files
committed
Check outcome in virtual channel dispute test
1 parent a0ee7ba commit 72687d8

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

client/virtual_channel_test.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"perun.network/go-perun/channel"
2727
chtest "perun.network/go-perun/channel/test"
2828
"perun.network/go-perun/client"
29+
ctest "perun.network/go-perun/client/test"
2930
"perun.network/go-perun/pkg/sync"
3031
"perun.network/go-perun/pkg/test"
3132
"perun.network/go-perun/wire"
@@ -91,6 +92,9 @@ func TestVirtualChannelsDispute(t *testing.T) {
9192
// Ingrid registers and settles channel with Bob.
9293
err = vct.registerAndSettle(ctx, vct.chIngridBob)
9394
assert.NoError(err, "ingrid-bob: register and settle")
95+
96+
// Test final balances.
97+
vct.testFinalBalancesDispute(t)
9498
}
9599

96100
func TestVirtualChannelsDisputeHubFirst(t *testing.T) {
@@ -134,9 +138,26 @@ func TestVirtualChannelsDisputeHubFirst(t *testing.T) {
134138
// Bob settles channel with Ingrid.
135139
err = vct.chBobIngrid.Settle(ctx, false)
136140
assert.NoError(err, "bob-ingrid: settle")
141+
142+
// Test final balances.
143+
vct.testFinalBalancesDispute(t)
144+
}
145+
146+
func (vct *virtualChannelTest) testFinalBalancesDispute(t *testing.T) {
147+
assert := assert.New(t)
148+
backend, asset := vct.backend, vct.asset
149+
got, expected := backend.GetBalance(vct.alice.Identity.Address(), asset), vct.finalBalsAlice[0]
150+
assert.Truef(got.Cmp(expected) == 0, "alice: wrong final balance: got %v, expected %v", got, expected)
151+
got, expected = backend.GetBalance(vct.bob.Identity.Address(), asset), vct.finalBalsBob[0]
152+
assert.Truef(got.Cmp(expected) == 0, "bob: wrong final balance: got %v, expected %v", got, expected)
153+
got, expected = backend.GetBalance(vct.ingrid.Identity.Address(), asset), vct.finalBalIngrid
154+
assert.Truef(got.Cmp(expected) == 0, "ingrid: wrong final balance: got %v, expected %v", got, expected)
137155
}
138156

139157
type virtualChannelTest struct {
158+
alice *Client
159+
bob *Client
160+
ingrid *Client
140161
chAliceIngrid *client.Channel
141162
chIngridAlice *client.Channel
142163
chBobIngrid *client.Channel
@@ -146,7 +167,10 @@ type virtualChannelTest struct {
146167
virtualBalsUpdated []*big.Int
147168
finalBalsAlice []*big.Int
148169
finalBalsBob []*big.Int
170+
finalBalIngrid *big.Int
149171
errs chan error
172+
backend *ctest.MockBackend
173+
asset channel.Asset
150174
}
151175

152176
func setupVirtualChannelTest(t *testing.T, ctx context.Context) (vct virtualChannelTest) {
@@ -155,12 +179,14 @@ func setupVirtualChannelTest(t *testing.T, ctx context.Context) (vct virtualChan
155179

156180
// Set test values.
157181
asset := chtest.NewRandomAsset(rng)
182+
vct.asset = asset
158183
initBalsAlice := []*big.Int{big.NewInt(10), big.NewInt(10)} // with Ingrid
159184
initBalsBob := []*big.Int{big.NewInt(10), big.NewInt(10)} // with Ingrid
160185
initBalsVirtual := []*big.Int{big.NewInt(5), big.NewInt(5)} // Alice proposes
161186
vct.virtualBalsUpdated = []*big.Int{big.NewInt(2), big.NewInt(8)} // Send 3.
162187
vct.finalBalsAlice = []*big.Int{big.NewInt(7), big.NewInt(13)}
163188
vct.finalBalsBob = []*big.Int{big.NewInt(13), big.NewInt(7)}
189+
vct.finalBalIngrid = new(big.Int).Add(vct.finalBalsAlice[1], vct.finalBalsBob[1])
164190
vct.errs = make(chan error, 10)
165191

166192
// Setup clients.
@@ -170,6 +196,8 @@ func setupVirtualChannelTest(t *testing.T, ctx context.Context) (vct virtualChan
170196
t,
171197
)
172198
alice, bob, ingrid := clients[0], clients[1], clients[2]
199+
vct.alice, vct.bob, vct.ingrid = alice, bob, ingrid
200+
vct.backend = alice.Backend // Assumes all clients have same backend.
173201

174202
_channelsIngrid := make(chan *client.Channel, 1)
175203
var openingProposalHandlerIngrid client.ProposalHandlerFunc = func(cp client.ChannelProposal, pr *client.ProposalResponder) {

0 commit comments

Comments
 (0)