package controllers

import (
	"testing"

	"chainweaver.org.cn/chainweaver/mira/mira-network-manager/conf"
	"chainweaver.org.cn/chainweaver/mira/mira-network-manager/models"

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

func init() {
	conf.InitConfig("../conf/config.yaml")
	conf.InitDBConnections()
}

func TestGetSortedAvailablePortsInRange(t *testing.T) {
	portNumberPool := map[string]int8{
		"10000": 0,
		"10001": 1,
		"10002": 0,
		"10003": 0,
		"10004": 1,
	}
	beginPort := 10001
	endPort := 10003
	expectedResult := []string{"10002", "10003"}
	result := getSortedAvailablePortsInRange(portNumberPool, beginPort, endPort)
	assert.Equal(t, expectedResult, result)
}

func TestPortExist(t *testing.T) {
	portNumber := "10000"
	ports := []*models.Port{
		{PortNumber: "10000"},
		{PortNumber: "10001"},
		{PortNumber: "10002"},
	}
	result := portExist(portNumber, ports)
	assert.True(t, result)
}