orion/emlid/updater/wifi_networks_test.go

146 lines
3.0 KiB
Go

package updater
import (
"context"
"fmt"
"math/rand"
"testing"
"time"
"forge.cadoles.com/Pyxis/orion/emlid"
)
func TestClientSavedWiFiNetworks(t *testing.T) {
if !*runUpdaterIntegrationTests {
t.Skip("To run this test, use: go test -updater-integration")
}
client := NewClient(
emlid.WithStandardLogger(),
emlid.WithEndpoint(*reachHost, 80),
)
if err := client.Connect(); err != nil {
t.Fatal(err)
}
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
_, err := client.WifiNetworks(ctx)
if err != nil {
t.Error(err)
}
defer client.Close()
}
func TestClientCRUDWiFiNetwork(t *testing.T) {
if !*runUpdaterIntegrationTests {
t.Skip("To run this test, use: go test -updater-integration")
}
client := NewClient(
emlid.WithStandardLogger(),
emlid.WithEndpoint(*reachHost, 80),
)
if err := client.Connect(); err != nil {
t.Fatal(err)
}
ssid := fmt.Sprintf("wifi_test_%d", rand.Uint32())
ctx := context.Background()
addWifiContext, addWifiCancel := context.WithTimeout(ctx, 5*time.Second)
defer addWifiCancel()
done, err := client.AddWifiNetwork(addWifiContext, ssid, SecurityOpen, "")
if err != nil {
t.Error(err)
}
if g, e := done, true; g != e {
t.Errorf("AddWifiNetwork() -> done: got '%v', expected '%v'", g, e)
}
wifiContext, wifiCancel := context.WithTimeout(ctx, 5*time.Second)
defer wifiCancel()
networks, err := client.WifiNetworks(wifiContext)
if err != nil {
t.Error(err)
}
found := false
for _, n := range networks {
if n.SSID == ssid {
found = true
break
}
}
if g, e := found, true; g != e {
t.Errorf("wifi network '%s' should exists", ssid)
}
removeWifiContext, removeWifiCancel := context.WithTimeout(ctx, 5*time.Second)
defer removeWifiCancel()
done, err = client.RemoveWifiNetwork(removeWifiContext, ssid)
if err != nil {
t.Error(err)
}
if g, e := done, true; g != e {
t.Errorf("RemoveWifiNetwork() -> done: got '%v', expected '%v'", g, e)
}
defer client.Close()
}
func TestClientWifiNetworkJoin(t *testing.T) {
if !*runUpdaterIntegrationTests {
t.Skip("To run this test, use: go test -updater-integration")
}
if !*runJoinNetworkTest {
t.Skip("To run this test, use: go test -updater-join-network-test")
}
client := NewClient(
emlid.WithStandardLogger(),
emlid.WithEndpoint(*reachHost, 80),
)
if err := client.Connect(); err != nil {
t.Fatal(err)
}
ssid := fmt.Sprintf("wifi_test_%d", rand.Uint32())
ctx := context.Background()
addWifiContext, addWifiCancel := context.WithTimeout(ctx, 5*time.Second)
defer addWifiCancel()
done, err := client.AddWifiNetwork(addWifiContext, ssid, SecurityOpen, "")
if err != nil {
t.Error(err)
}
if g, e := done, true; g != e {
t.Errorf("AddWifiNetwork() -> done: got '%v', expected '%v'", g, e)
}
joinWifiContext, joinWifiCancel := context.WithTimeout(ctx, 5*time.Second)
defer joinWifiCancel()
if err := client.JoinWifiNetwork(joinWifiContext, ssid, true); err != nil {
t.Error(err)
}
time.Sleep(5 * time.Second)
defer client.Close()
}