package hub import ( "net" "testing" "github.com/stretchr/testify/assert" "github.com/safing/portbase/modules" _ "github.com/safing/portmaster/service/core/base" "github.com/safing/portmaster/service/core/pmtesting" ) func TestMain(m *testing.M) { // TODO: We need the database module, so maybe set up a module for this package. module := modules.Register("hub", nil, nil, nil, "base") pmtesting.TestMain(m, module) } func TestEquality(t *testing.T) { t.Parallel() // empty match a := &Announcement{} assert.True(t, a.Equal(a), "should match itself") //nolint:gocritic // This is a test. // full match a = &Announcement{ ID: "a", Timestamp: 1, Name: "a", ContactAddress: "a", ContactService: "a", Hosters: []string{"a", "b"}, Datacenter: "a", IPv4: net.IPv4(1, 2, 3, 4), IPv6: net.ParseIP("::1"), Transports: []string{"a", "b"}, Entry: []string{"a", "b"}, Exit: []string{"a", "b"}, } assert.True(t, a.Equal(a), "should match itself") //nolint:gocritic // This is a test. // no match b := &Announcement{ID: "b"} assert.False(t, a.Equal(b), "should not match") b = &Announcement{Timestamp: 2} assert.False(t, a.Equal(b), "should not match") b = &Announcement{Name: "b"} assert.False(t, a.Equal(b), "should not match") b = &Announcement{ContactAddress: "b"} assert.False(t, a.Equal(b), "should not match") b = &Announcement{ContactService: "b"} assert.False(t, a.Equal(b), "should not match") b = &Announcement{Hosters: []string{"b", "c"}} assert.False(t, a.Equal(b), "should not match") b = &Announcement{Datacenter: "b"} assert.False(t, a.Equal(b), "should not match") b = &Announcement{IPv4: net.IPv4(1, 2, 3, 5)} assert.False(t, a.Equal(b), "should not match") b = &Announcement{IPv6: net.ParseIP("::2")} assert.False(t, a.Equal(b), "should not match") b = &Announcement{Transports: []string{"b", "c"}} assert.False(t, a.Equal(b), "should not match") b = &Announcement{Entry: []string{"b", "c"}} assert.False(t, a.Equal(b), "should not match") b = &Announcement{Exit: []string{"b", "c"}} assert.False(t, a.Equal(b), "should not match") } func TestStringify(t *testing.T) { t.Parallel() assert.Equal(t, "", (&Hub{ID: "abcdefg", Info: &Announcement{}}).String()) assert.Equal(t, "", (&Hub{ID: "abcdefgh", Info: &Announcement{}}).String()) assert.Equal(t, "", (&Hub{ID: "abcdefghi", Info: &Announcement{}}).String()) assert.Equal(t, "", (&Hub{ID: "abcdefghi", Info: &Announcement{Name: "Franz"}}).String()) assert.Equal(t, "", (&Hub{ID: "abcdefghi", Info: &Announcement{Name: "AProbablyAutoGeneratedName"}}).String()) }