Skip to content

Commit 2837d35

Browse files
committed
Document other behaviors
1 parent 9320261 commit 2837d35

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

interface.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ type Multiaddr interface {
5050
// Decapsulate removes a Multiaddr wrapping. For example:
5151
//
5252
// /ip4/1.2.3.4/tcp/80 decapsulate /tcp/80 = /ip4/1.2.3.4
53+
// /ip4/1.2.3.4/tcp/80 decapsulate /udp/80 = /ip4/1.2.3.4/tcp/80
54+
// /ip4/1.2.3.4/tcp/80 decapsulate /ip4/1.2.3.4 = nil
5355
//
5456
Decapsulate(Multiaddr) Multiaddr
5557

multiaddr_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,16 @@ func TestDecapsulateComment(t *testing.T) {
434434
if rest.String() != "/ip4/1.2.3.4" {
435435
t.Fatalf("Documented behavior is not correct. Expected %v saw %v", "/ip4/1.2.3.4/", rest.String())
436436
}
437+
438+
m = StringCast("/ip4/1.2.3.4/tcp/80")
439+
rest = m.Decapsulate(StringCast("/udp/80"))
440+
if !rest.Equal(m) {
441+
t.Fatalf("Documented behavior is not correct. Expected %v saw %v", "/ip4/1.2.3.4/tcp/80", rest.String())
442+
}
443+
444+
m = StringCast("/ip4/1.2.3.4/tcp/80")
445+
rest = m.Decapsulate(StringCast("/ip4/1.2.3.4"))
446+
require.Nil(t, rest, "expected a nil multiaddr if we decapsulate everything")
437447
}
438448

439449
func assertValueForProto(t *testing.T, a Multiaddr, p int, exp string) {

0 commit comments

Comments
 (0)