Files
gokill/triggers/ethernet_test.go
2023-11-11 15:28:35 +01:00

83 lines
2.1 KiB
Go

package triggers
import (
"testing"
"github.com/k4lipso/gokill/internal"
)
func TestEthernetDisconnetConfig(t *testing.T) {
type EthernetTest struct {
testConfig internal.KillSwitchConfig
expectedError error
expectedResult EthernetDisconnect
}
testConfigs := []EthernetTest{
EthernetTest{
testConfig: internal.KillSwitchConfig{
Options: []byte("{}"),
},
expectedError: internal.OptionMissingError{"interfaceName"},
expectedResult: EthernetDisconnect{},
},
EthernetTest{
testConfig: internal.KillSwitchConfig{
Options: []byte(`{
"waitTillConnected": false
}`),
},
expectedError: internal.OptionMissingError{"interfaceName"},
expectedResult: EthernetDisconnect{},
},
EthernetTest{
testConfig: internal.KillSwitchConfig{
Options: []byte(`{
"interfaceName": "eth0",
"waitTillConnected": false
}`),
},
expectedError: nil,
expectedResult: EthernetDisconnect{WaitTillConnected: false, InterfaceName: "eth0"},
},
EthernetTest{
testConfig: internal.KillSwitchConfig{
Options: []byte(`{
"interfaceName": "eth0",
"waitTillConnected": true
}`),
},
expectedError: nil,
expectedResult: EthernetDisconnect{WaitTillConnected: true, InterfaceName: "eth0"},
},
EthernetTest{
testConfig: internal.KillSwitchConfig{
Options: []byte("{ \"interfaceName\": \"eth0\" }"),
},
expectedError: nil,
expectedResult: EthernetDisconnect{WaitTillConnected: true, InterfaceName: "eth0"},
},
}
for _, testConfig := range testConfigs {
result, err := CreateEthernetDisconnect(testConfig.testConfig)
if err != testConfig.expectedError {
t.Errorf("Error was incorrect, got: %s, want: %s.", err, testConfig.expectedError)
}
if result.WaitTillConnected != testConfig.expectedResult.WaitTillConnected {
t.Errorf("WaitTillConnected was incorrect, got: %v, want: %v.", result, testConfig.expectedResult)
}
if result.InterfaceName != testConfig.expectedResult.InterfaceName {
t.Errorf("InterfaceName was incorrect, got: %v, want: %v.", result, testConfig.expectedResult)
}
}
}