| package daemon | |
| import ( | |
| "encoding/json" | |
| "testing" | |
| containertypes "github.com/docker/docker/api/types/container" | |
| networktypes "github.com/docker/docker/api/types/network" | |
| "github.com/docker/docker/container" | |
| "github.com/docker/docker/libnetwork" | |
| "gotest.tools/v3/assert" | |
| is "gotest.tools/v3/assert/cmp" | |
| ) | |
| func TestDNSNamesOrder(t *testing.T) { | |
| d := &Daemon{} | |
| ctr := &container.Container{ | |
| ID: "35de8003b19e27f636fc6ecbf4d7072558b872a8544f287fd69ad8182ad59023", | |
| Name: "foobar", | |
| Config: &containertypes.Config{ | |
| Hostname: "baz", | |
| }, | |
| } | |
| nw := buildNetwork(t, map[string]any{ | |
| "id": "1234567890", | |
| "name": "testnet", | |
| "networkType": "bridge", | |
| "enableIPv6": false, | |
| }) | |
| epSettings := &networktypes.EndpointSettings{ | |
| Aliases: []string{"myctr"}, | |
| } | |
| if err := d.updateNetworkConfig(ctr, nw, epSettings, false); err != nil { | |
| t.Fatal(err) | |
| } | |
| assert.Check(t, is.DeepEqual(epSettings.DNSNames, []string{"foobar", "myctr", "35de8003b19e", "baz"})) | |
| } | |
| func buildNetwork(t *testing.T, config map[string]any) *libnetwork.Network { | |
| t.Helper() | |
| b, err := json.Marshal(config) | |
| if err != nil { | |
| t.Fatal(err) | |
| } | |
| nw := &libnetwork.Network{} | |
| if err := nw.UnmarshalJSON(b); err != nil { | |
| t.Fatal(err) | |
| } | |
| return nw | |
| } |