/*
 *
 * Copyright (c) 2025 Bocloud Technologies Co., Ltd.
 * installer is licensed under Mulan PSL v2.
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain n copy of Mulan PSL v2 at:
 *          http://license.coscl.org.cn/MulanPSL2
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PSL v2 for more details.
 *
 */
package net

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestAddressMatchesIP(t *testing.T) {
	assert.True(t, AddressMatchesIP("122.235.189.16/24", "122.235.189.16"))
	assert.False(t, AddressMatchesIP("122.235.189.16/24", "122.235.189.1"))
	assert.True(t, AddressMatchesIP("192.168.1.1", "192.168.1.1"))
	assert.False(t, AddressMatchesIP("192.168.1.1/24", "192.168.1.2"))
}

func TestInterface(t *testing.T) {
	t.Run("GetAllInterfaceIP", func(t *testing.T) {
		intf, err := GetAllInterfaceIP()
		if err != nil {
			t.Fatal(err)
			return
		}
		t.Log(intf)
	})

	t.Run("GetInterfaceFromIp", func(t *testing.T) {
		ip := "127.0.0.1"
		intf, err := GetInterfaceFromIp(ip)
		if err != nil {
			t.Fatal(err)
			return
		}
		t.Log(intf)
	})

	t.Run("InterfaceByName", func(t *testing.T) {
		ni := new(networkInterface)
		ni.InterfaceByName("eth0")
	})
}