mirror of
https://github.com/AdguardTeam/AdGuardHome.git
synced 2024-11-29 10:28:53 +03:00
fd25dcacbd
Squashed commit of the following:
commit d0b37e3de1552ea42d776461045a76ff0ae18128
Merge: 025c29bcd ee619b2db
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date: Thu Apr 4 18:58:08 2024 +0300
Merge branch 'master' into AG-27492-client-runtime-index
commit 025c29bcd279b5448908df7c3a1a997a64095641
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date: Mon Apr 1 17:20:15 2024 +0300
client: imp code
commit 548a15c000db3989b1398e68fa4c05a450e93ea0
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date: Thu Mar 28 13:43:17 2024 +0300
all: add tests
commit c9015e732f1e0475ec8cf95487c9ec56cd69a395
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date: Mon Mar 25 16:33:30 2024 +0300
all: imp docs
commit 81e8b944928176733b2971b2b6400b55496a7843
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date: Mon Mar 25 15:33:17 2024 +0300
all: imp code
commit 1428d60bf72d7a0ffd9dc854403391646f82c6cc
Author: Stanislav Chzhen <s.chzhen@adguard.com>
Date: Mon Mar 25 14:45:01 2024 +0300
all: client runtime index
85 lines
1.4 KiB
Go
85 lines
1.4 KiB
Go
package client_test
|
|
|
|
import (
|
|
"net/netip"
|
|
"testing"
|
|
|
|
"github.com/AdguardTeam/AdGuardHome/internal/client"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestRuntimeIndex(t *testing.T) {
|
|
const cliSrc = client.SourceARP
|
|
|
|
var (
|
|
ip1 = netip.MustParseAddr("1.1.1.1")
|
|
ip2 = netip.MustParseAddr("2.2.2.2")
|
|
ip3 = netip.MustParseAddr("3.3.3.3")
|
|
)
|
|
|
|
ri := client.NewRuntimeIndex()
|
|
currentSize := 0
|
|
|
|
testCases := []struct {
|
|
ip netip.Addr
|
|
name string
|
|
hosts []string
|
|
src client.Source
|
|
}{{
|
|
src: cliSrc,
|
|
ip: ip1,
|
|
name: "1",
|
|
hosts: []string{"host1"},
|
|
}, {
|
|
src: cliSrc,
|
|
ip: ip2,
|
|
name: "2",
|
|
hosts: []string{"host2"},
|
|
}, {
|
|
src: cliSrc,
|
|
ip: ip3,
|
|
name: "3",
|
|
hosts: []string{"host3"},
|
|
}}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
rc := client.NewRuntime(tc.ip)
|
|
rc.SetInfo(tc.src, tc.hosts)
|
|
|
|
ri.Add(rc)
|
|
currentSize++
|
|
|
|
got := ri.Client(tc.ip)
|
|
assert.Equal(t, rc, got)
|
|
})
|
|
}
|
|
|
|
t.Run("size", func(t *testing.T) {
|
|
assert.Equal(t, currentSize, ri.Size())
|
|
})
|
|
|
|
t.Run("range", func(t *testing.T) {
|
|
s := 0
|
|
|
|
ri.Range(func(rc *client.Runtime) (cont bool) {
|
|
s++
|
|
|
|
return true
|
|
})
|
|
|
|
assert.Equal(t, currentSize, s)
|
|
})
|
|
|
|
t.Run("delete", func(t *testing.T) {
|
|
ri.Delete(ip1)
|
|
currentSize--
|
|
|
|
assert.Equal(t, currentSize, ri.Size())
|
|
})
|
|
|
|
t.Run("delete_by_src", func(t *testing.T) {
|
|
assert.Equal(t, currentSize, ri.DeleteBySource(cliSrc))
|
|
assert.Equal(t, 0, ri.Size())
|
|
})
|
|
}
|