Files
expanded-dms/internal/server/network/backend_networkmanager_state_test.go
2025-11-12 23:59:00 +11:00

83 lines
2.4 KiB
Go

package network
import (
"testing"
"github.com/AvengeMedia/danklinux/internal/errdefs"
mock_gonetworkmanager "github.com/AvengeMedia/danklinux/internal/mocks/github.com/Wifx/gonetworkmanager/v2"
"github.com/Wifx/gonetworkmanager/v2"
"github.com/stretchr/testify/assert"
)
func TestNetworkManagerBackend_UpdatePrimaryConnection(t *testing.T) {
mockNM := mock_gonetworkmanager.NewMockNetworkManager(t)
backend, err := NewNetworkManagerBackend(mockNM)
assert.NoError(t, err)
mockNM.EXPECT().GetPropertyActiveConnections().Return([]gonetworkmanager.ActiveConnection{}, nil)
mockNM.EXPECT().GetPropertyPrimaryConnection().Return(nil, nil)
err = backend.updatePrimaryConnection()
assert.NoError(t, err)
}
func TestNetworkManagerBackend_UpdateEthernetState_NoDevice(t *testing.T) {
mockNM := mock_gonetworkmanager.NewMockNetworkManager(t)
backend, err := NewNetworkManagerBackend(mockNM)
assert.NoError(t, err)
backend.ethernetDevice = nil
err = backend.updateEthernetState()
assert.NoError(t, err)
}
func TestNetworkManagerBackend_UpdateWiFiState_NoDevice(t *testing.T) {
mockNM := mock_gonetworkmanager.NewMockNetworkManager(t)
backend, err := NewNetworkManagerBackend(mockNM)
assert.NoError(t, err)
backend.wifiDevice = nil
err = backend.updateWiFiState()
assert.NoError(t, err)
}
func TestNetworkManagerBackend_ClassifyNMStateReason(t *testing.T) {
mockNM := mock_gonetworkmanager.NewMockNetworkManager(t)
backend, err := NewNetworkManagerBackend(mockNM)
assert.NoError(t, err)
testCases := []struct {
reason uint32
expected string
}{
{NmDeviceStateReasonWrongPassword, errdefs.ErrBadCredentials},
{NmDeviceStateReasonNoSecrets, errdefs.ErrUserCanceled},
{NmDeviceStateReasonSupplicantTimeout, errdefs.ErrBadCredentials},
{NmDeviceStateReasonDhcpClientFailed, errdefs.ErrDhcpTimeout},
{NmDeviceStateReasonNoSsid, errdefs.ErrNoSuchSSID},
{999, errdefs.ErrConnectionFailed},
}
for _, tc := range testCases {
result := backend.classifyNMStateReason(tc.reason)
assert.Equal(t, tc.expected, result)
}
}
func TestNetworkManagerBackend_GetDeviceIP_NoConfig(t *testing.T) {
mockNM := mock_gonetworkmanager.NewMockNetworkManager(t)
mockDevice := mock_gonetworkmanager.NewMockDevice(t)
backend, err := NewNetworkManagerBackend(mockNM)
assert.NoError(t, err)
mockDevice.EXPECT().GetPropertyIP4Config().Return(nil, nil)
ip := backend.getDeviceIP(mockDevice)
assert.Empty(t, ip)
}