master
go 44 lines 1.63 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package l2topology
4
5 import (
6 "net/netip"
7 "testing"
8
9 "github.com/stretchr/testify/require"
10 )
11
12 func TestResolveDeviceActorType_MapsAndFallsBack(t *testing.T) {
13 require.Equal(t, "switch", resolveDeviceActorType(map[string]string{"type": "switch"}))
14 require.Equal(t, "access_point", resolveDeviceActorType(map[string]string{"type": "Wireless"}))
15 require.Equal(t, "device", resolveDeviceActorType(map[string]string{"type": "unknown-kind"}))
16 require.Equal(t, "device", resolveDeviceActorType(nil))
17 require.True(t, IsDeviceActorType("switch"))
18 require.True(t, IsDeviceActorType(" access_point "))
19 require.False(t, IsDeviceActorType("unknown-kind"))
20 }
21
22 func TestAdjacencySideToEndpoint_FallsBackToRequestedPort(t *testing.T) {
23 addr := netip.MustParseAddr("10.0.0.1")
24 dev := Device{
25 ID: "switch-a",
26 Hostname: "switch-a",
27 SysObject: "1.2.3.4",
28 ChassisID: "00:11:22:33:44:55",
29 Addresses: []netip.Addr{addr},
30 }
31
32 endpoint := adjacencySideToEndpoint(dev, "Gi0/9", nil, nil)
33 require.Equal(t, []string{"00:11:22:33:44:55"}, endpoint.Match.ChassisIDs)
34 require.Equal(t, []string{"00:11:22:33:44:55"}, endpoint.Match.MacAddresses)
35 require.Equal(t, []string{"10.0.0.1"}, endpoint.Match.IPAddresses)
36 _, hasIfIndex := endpoint.Attributes["if_index"]
37 require.False(t, hasIfIndex)
38 require.Equal(t, "Gi0/9", endpoint.Attributes["if_name"])
39 require.Equal(t, "Gi0/9", endpoint.Attributes["port_id"])
40 require.Equal(t, "switch-a", endpoint.Attributes["sys_name"])
41 require.Equal(t, "10.0.0.1", endpoint.Attributes["management_ip"])
42 _, hasDescr := endpoint.Attributes["if_descr"]
43 require.False(t, hasDescr)
44 }