Files
ice/candidatepair_test.go
2023-04-18 13:46:38 +02:00

137 lines
2.6 KiB
Go

// SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
// SPDX-License-Identifier: MIT
package ice
import (
"testing"
"github.com/stretchr/testify/assert"
)
func hostCandidate() *CandidateHost {
return &CandidateHost{
candidateBase: candidateBase{
candidateType: CandidateTypeHost,
component: ComponentRTP,
},
}
}
func prflxCandidate() *CandidatePeerReflexive {
return &CandidatePeerReflexive{
candidateBase: candidateBase{
candidateType: CandidateTypePeerReflexive,
component: ComponentRTP,
},
}
}
func srflxCandidate() *CandidateServerReflexive {
return &CandidateServerReflexive{
candidateBase: candidateBase{
candidateType: CandidateTypeServerReflexive,
component: ComponentRTP,
},
}
}
func relayCandidate() *CandidateRelay {
return &CandidateRelay{
candidateBase: candidateBase{
candidateType: CandidateTypeRelay,
component: ComponentRTP,
},
}
}
func TestCandidatePairPriority(t *testing.T) {
for _, test := range []struct {
Pair *CandidatePair
WantPriority uint64
}{
{
Pair: newCandidatePair(
hostCandidate(),
hostCandidate(),
false,
),
WantPriority: 9151314440652587007,
},
{
Pair: newCandidatePair(
hostCandidate(),
hostCandidate(),
true,
),
WantPriority: 9151314440652587007,
},
{
Pair: newCandidatePair(
hostCandidate(),
prflxCandidate(),
true,
),
WantPriority: 7998392936314175488,
},
{
Pair: newCandidatePair(
hostCandidate(),
prflxCandidate(),
false,
),
WantPriority: 7998392936314175487,
},
{
Pair: newCandidatePair(
hostCandidate(),
srflxCandidate(),
true,
),
WantPriority: 7277816996102668288,
},
{
Pair: newCandidatePair(
hostCandidate(),
srflxCandidate(),
false,
),
WantPriority: 7277816996102668287,
},
{
Pair: newCandidatePair(
hostCandidate(),
relayCandidate(),
true,
),
WantPriority: 72057593987596288,
},
{
Pair: newCandidatePair(
hostCandidate(),
relayCandidate(),
false,
),
WantPriority: 72057593987596287,
},
} {
if got, want := test.Pair.priority(), test.WantPriority; got != want {
t.Fatalf("CandidatePair(%v).Priority() = %d, want %d", test.Pair, got, want)
}
}
}
func TestCandidatePairEquality(t *testing.T) {
pairA := newCandidatePair(hostCandidate(), srflxCandidate(), true)
pairB := newCandidatePair(hostCandidate(), srflxCandidate(), false)
if !pairA.equal(pairB) {
t.Fatalf("Expected %v to equal %v", pairA, pairB)
}
}
func TestNilCandidatePairString(t *testing.T) {
var nilCandidatePair *CandidatePair
assert.Equal(t, nilCandidatePair.String(), "")
}