Added Equal func

This commit is contained in:
Juan Batiz-Benet 2014-09-16 06:08:48 -07:00
parent 0624ab3bf7
commit 74443fca31
2 changed files with 40 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package multiaddr
import (
"bytes"
"fmt"
"strings"
)
@ -19,6 +20,11 @@ func NewMultiaddr(s string) (*Multiaddr, error) {
return &Multiaddr{Bytes: b}, nil
}
// Equal tests whether two multiaddrs are equal
func (m *Multiaddr) Equal(m2 *Multiaddr) bool {
return bytes.Equal(m.Bytes, m2.Bytes)
}
// String returns the string representation of a Multiaddr
func (m *Multiaddr) String() (string, error) {
return bytesToString(m.Bytes)

View File

@ -6,6 +6,40 @@ import (
"testing"
)
func newMultiaddr(t *testing.T, a string) *Multiaddr {
m, err := NewMultiaddr(a)
if err != nil {
t.Error(err)
}
return m
}
func TestEqual(t *testing.T) {
m1 := newMultiaddr(t, "/ip4/127.0.0.1/udp/1234")
m2 := newMultiaddr(t, "/ip4/127.0.0.1/tcp/1234")
m3 := newMultiaddr(t, "/ip4/127.0.0.1/tcp/1234")
if m1.Equal(m2) {
t.Error("should not be equal")
}
if m2.Equal(m1) {
t.Error("should not be equal")
}
if !m2.Equal(m3) {
t.Error("should be equal")
}
if !m3.Equal(m2) {
t.Error("should be equal")
}
if !m1.Equal(m1) {
t.Error("should be equal")
}
}
func TestStringToBytes(t *testing.T) {
testString := func(s string, h string) {