github.com/moby/docker@v26.1.3+incompatible/daemon/container_operations_test.go (about)

     1  package daemon
     2  
     3  import (
     4  	"encoding/json"
     5  	"testing"
     6  
     7  	containertypes "github.com/docker/docker/api/types/container"
     8  	networktypes "github.com/docker/docker/api/types/network"
     9  	"github.com/docker/docker/container"
    10  	"github.com/docker/docker/libnetwork"
    11  	"gotest.tools/v3/assert"
    12  	is "gotest.tools/v3/assert/cmp"
    13  )
    14  
    15  func TestDNSNamesOrder(t *testing.T) {
    16  	d := &Daemon{}
    17  	ctr := &container.Container{
    18  		ID:   "35de8003b19e27f636fc6ecbf4d7072558b872a8544f287fd69ad8182ad59023",
    19  		Name: "foobar",
    20  		Config: &containertypes.Config{
    21  			Hostname: "baz",
    22  		},
    23  	}
    24  	nw := buildNetwork(t, map[string]any{
    25  		"id":          "1234567890",
    26  		"name":        "testnet",
    27  		"networkType": "bridge",
    28  		"enableIPv6":  false,
    29  	})
    30  	epSettings := &networktypes.EndpointSettings{
    31  		Aliases: []string{"myctr"},
    32  	}
    33  
    34  	if err := d.updateNetworkConfig(ctr, nw, epSettings, false); err != nil {
    35  		t.Fatal(err)
    36  	}
    37  
    38  	assert.Check(t, is.DeepEqual(epSettings.DNSNames, []string{"foobar", "myctr", "35de8003b19e", "baz"}))
    39  }
    40  
    41  func buildNetwork(t *testing.T, config map[string]any) *libnetwork.Network {
    42  	t.Helper()
    43  
    44  	b, err := json.Marshal(config)
    45  	if err != nil {
    46  		t.Fatal(err)
    47  	}
    48  
    49  	nw := &libnetwork.Network{}
    50  	if err := nw.UnmarshalJSON(b); err != nil {
    51  		t.Fatal(err)
    52  	}
    53  
    54  	return nw
    55  }