package main import "testing" // NetworkManager's word on each link's names, read from its terse output. func TestNmcliIsReadPerDevice(t *testing.T) { links := parseNmcli("GENERAL.DEVICE:wlp3s0\nGENERAL.STATE:100 (connected)\nIP4.DNS[1]:192.168.1.1\n" + "IP4.DOMAIN[1]:localdomain\n\nGENERAL.DEVICE:docker0\nGENERAL.STATE:100 (connected (externally))\n\n" + "GENERAL.DEVICE:vpn0\nGENERAL.STATE:100 (connected)\nIP4.DNS[1]:192.0.2.53\nIP4.DNS[2]:192.0.2.54\n" + "IP4.DOMAIN[1]:corp.example\n") if len(links) != 2 || links["wlp3s0"].Servers[0] != "192.168.1.1" || links["wlp3s0"].Domains[0] != "localdomain" || len(links["vpn0"].Servers) != 2 || links["vpn0"].Manager != "NetworkManager" { t.Fatalf("read %+v", links) } if _, said := links["docker0"]; said { t.Fatal("a link with no names was said") } }