Skip to content

Commit 3172e05

Browse files
committed
Extract TestOnSelectedCandidatePairChange
Extract TestOnSelectedCandidatePairChange to its own file.
1 parent 53ecdad commit 3172e05

4 files changed

+127
-122
lines changed

agent_get_best_valid_candidate_pair_test.go

-66
Original file line numberDiff line numberDiff line change
@@ -55,69 +55,3 @@ type TestAgentGetBestValidCandidatePairFixture struct {
5555
prflxRemote Candidate
5656
hostRemote Candidate
5757
}
58-
59-
func newHostRemote(t *testing.T) *CandidateHost {
60-
remoteHostConfig := &CandidateHostConfig{
61-
Network: "udp",
62-
Address: "1.2.3.5",
63-
Port: 12350,
64-
Component: 1,
65-
}
66-
hostRemote, err := NewCandidateHost(remoteHostConfig)
67-
require.NoError(t, err)
68-
return hostRemote
69-
}
70-
71-
func newPrflxRemote(t *testing.T) *CandidatePeerReflexive {
72-
prflxConfig := &CandidatePeerReflexiveConfig{
73-
Network: "udp",
74-
Address: "10.10.10.2",
75-
Port: 19217,
76-
Component: 1,
77-
RelAddr: "4.3.2.1",
78-
RelPort: 43211,
79-
}
80-
prflxRemote, err := NewCandidatePeerReflexive(prflxConfig)
81-
require.NoError(t, err)
82-
return prflxRemote
83-
}
84-
85-
func newSrflxRemote(t *testing.T) *CandidateServerReflexive {
86-
srflxConfig := &CandidateServerReflexiveConfig{
87-
Network: "udp",
88-
Address: "10.10.10.2",
89-
Port: 19218,
90-
Component: 1,
91-
RelAddr: "4.3.2.1",
92-
RelPort: 43212,
93-
}
94-
srflxRemote, err := NewCandidateServerReflexive(srflxConfig)
95-
require.NoError(t, err)
96-
return srflxRemote
97-
}
98-
99-
func newRelayRemote(t *testing.T) *CandidateRelay {
100-
relayConfig := &CandidateRelayConfig{
101-
Network: "udp",
102-
Address: "1.2.3.4",
103-
Port: 12340,
104-
Component: 1,
105-
RelAddr: "4.3.2.1",
106-
RelPort: 43210,
107-
}
108-
relayRemote, err := NewCandidateRelay(relayConfig)
109-
require.NoError(t, err)
110-
return relayRemote
111-
}
112-
113-
func newHostLocal(t *testing.T) *CandidateHost {
114-
localHostConfig := &CandidateHostConfig{
115-
Network: "udp",
116-
Address: "192.168.1.1",
117-
Port: 19216,
118-
Component: 1,
119-
}
120-
hostLocal, err := NewCandidateHost(localHostConfig)
121-
require.NoError(t, err)
122-
return hostLocal
123-
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
2+
// SPDX-License-Identifier: MIT
3+
4+
//go:build !js
5+
// +build !js
6+
7+
package ice
8+
9+
import (
10+
"context"
11+
"testing"
12+
13+
"github.com/stretchr/testify/require"
14+
)
15+
16+
func TestOnSelectedCandidatePairChange(t *testing.T) {
17+
agent, candidatePair := fixtureTestOnSelectedCandidatePairChange(t)
18+
19+
callbackCalled := make(chan struct{}, 1)
20+
err := agent.OnSelectedCandidatePairChange(func(local, remote Candidate) {
21+
close(callbackCalled)
22+
})
23+
require.NoError(t, err)
24+
25+
err = agent.run(context.Background(), func(ctx context.Context, agent *Agent) {
26+
agent.setSelectedPair(candidatePair)
27+
})
28+
require.NoError(t, err)
29+
30+
<-callbackCalled
31+
require.NoError(t, agent.Close())
32+
}
33+
34+
func fixtureTestOnSelectedCandidatePairChange(t *testing.T) (*Agent, *CandidatePair) {
35+
agent, err := NewAgent(&AgentConfig{})
36+
require.NoError(t, err)
37+
38+
candidatePair := makeCandidatePair(t)
39+
return agent, candidatePair
40+
}
41+
42+
func makeCandidatePair(t *testing.T) *CandidatePair {
43+
hostLocal := newHostLocal(t)
44+
relayRemote := newRelayRemote(t)
45+
46+
candidatePair := newCandidatePair(hostLocal, relayRemote, false)
47+
return candidatePair
48+
}

agent_test.go

-56
Original file line numberDiff line numberDiff line change
@@ -25,62 +25,6 @@ import (
2525
"github.com/stretchr/testify/require"
2626
)
2727

28-
func TestOnSelectedCandidatePairChange(t *testing.T) {
29-
report := test.CheckRoutines(t)
30-
defer report()
31-
32-
// Avoid deadlocks?
33-
defer test.TimeOut(1 * time.Second).Stop()
34-
35-
a, err := NewAgent(&AgentConfig{})
36-
if err != nil {
37-
t.Fatalf("Failed to create agent: %s", err)
38-
}
39-
40-
callbackCalled := make(chan struct{}, 1)
41-
if err = a.OnSelectedCandidatePairChange(func(local, remote Candidate) {
42-
close(callbackCalled)
43-
}); err != nil {
44-
t.Fatalf("Failed to set agent OnCandidatePairChange callback: %s", err)
45-
}
46-
47-
hostConfig := &CandidateHostConfig{
48-
Network: "udp",
49-
Address: "192.168.1.1",
50-
Port: 19216,
51-
Component: 1,
52-
}
53-
hostLocal, err := NewCandidateHost(hostConfig)
54-
if err != nil {
55-
t.Fatalf("Failed to construct local host candidate: %s", err)
56-
}
57-
58-
relayConfig := &CandidateRelayConfig{
59-
Network: "udp",
60-
Address: "1.2.3.4",
61-
Port: 12340,
62-
Component: 1,
63-
RelAddr: "4.3.2.1",
64-
RelPort: 43210,
65-
}
66-
relayRemote, err := NewCandidateRelay(relayConfig)
67-
if err != nil {
68-
t.Fatalf("Failed to construct remote relay candidate: %s", err)
69-
}
70-
71-
// Select the pair
72-
if err = a.run(context.Background(), func(ctx context.Context, agent *Agent) {
73-
p := newCandidatePair(hostLocal, relayRemote, false)
74-
agent.setSelectedPair(p)
75-
}); err != nil {
76-
t.Fatalf("Failed to setValidPair(): %s", err)
77-
}
78-
79-
// Ensure that the callback fired on setting the pair
80-
<-callbackCalled
81-
assert.NoError(t, a.Close())
82-
}
83-
8428
type BadAddr struct{}
8529

8630
func (ba *BadAddr) Network() string {

test_utils.go

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
// SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
2+
// SPDX-License-Identifier: MIT
3+
4+
//go:build !js
5+
// +build !js
6+
7+
package ice
8+
9+
import (
10+
"testing"
11+
12+
"github.com/stretchr/testify/require"
13+
)
14+
15+
func newHostRemote(t *testing.T) *CandidateHost {
16+
remoteHostConfig := &CandidateHostConfig{
17+
Network: "udp",
18+
Address: "1.2.3.5",
19+
Port: 12350,
20+
Component: 1,
21+
}
22+
hostRemote, err := NewCandidateHost(remoteHostConfig)
23+
require.NoError(t, err)
24+
return hostRemote
25+
}
26+
27+
func newPrflxRemote(t *testing.T) *CandidatePeerReflexive {
28+
prflxConfig := &CandidatePeerReflexiveConfig{
29+
Network: "udp",
30+
Address: "10.10.10.2",
31+
Port: 19217,
32+
Component: 1,
33+
RelAddr: "4.3.2.1",
34+
RelPort: 43211,
35+
}
36+
prflxRemote, err := NewCandidatePeerReflexive(prflxConfig)
37+
require.NoError(t, err)
38+
return prflxRemote
39+
}
40+
41+
func newSrflxRemote(t *testing.T) *CandidateServerReflexive {
42+
srflxConfig := &CandidateServerReflexiveConfig{
43+
Network: "udp",
44+
Address: "10.10.10.2",
45+
Port: 19218,
46+
Component: 1,
47+
RelAddr: "4.3.2.1",
48+
RelPort: 43212,
49+
}
50+
srflxRemote, err := NewCandidateServerReflexive(srflxConfig)
51+
require.NoError(t, err)
52+
return srflxRemote
53+
}
54+
55+
func newRelayRemote(t *testing.T) *CandidateRelay {
56+
relayConfig := &CandidateRelayConfig{
57+
Network: "udp",
58+
Address: "1.2.3.4",
59+
Port: 12340,
60+
Component: 1,
61+
RelAddr: "4.3.2.1",
62+
RelPort: 43210,
63+
}
64+
relayRemote, err := NewCandidateRelay(relayConfig)
65+
require.NoError(t, err)
66+
return relayRemote
67+
}
68+
69+
func newHostLocal(t *testing.T) *CandidateHost {
70+
localHostConfig := &CandidateHostConfig{
71+
Network: "udp",
72+
Address: "192.168.1.1",
73+
Port: 19216,
74+
Component: 1,
75+
}
76+
hostLocal, err := NewCandidateHost(localHostConfig)
77+
require.NoError(t, err)
78+
return hostLocal
79+
}

0 commit comments

Comments
 (0)