83 lines
2.1 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|