func init()

in pkg/cloud/rgraph/workflow/testlib/lb/forwardingrule.go [25:91]


func init() {
	base := ez.Graph{
		Nodes: []ez.Node{
			{Name: "addr"},
			{Name: "fr", Refs: []ez.Ref{{Field: "IPAddress", To: "addr"}, {Field: "Target", To: "thp"}}},
			{Name: "thp", Refs: []ez.Ref{{Field: "UrlMap", To: "um"}}},
			{Name: "um", Refs: []ez.Ref{{Field: "DefaultService", To: "bs"}}},
			{Name: "bs", Refs: []ez.Ref{{Field: "Backends.Group", To: "us-central1-b/neg"}, {Field: "Healthchecks", To: "hc"}}},
			{Name: "hc"},
			{Name: "neg", Zone: "us-central1-b"},
		},
	}

	start := func() *rgraph.Graph { return base.Builder().MustBuild() }

	updateTarget := func() *rgraph.Graph {
		ezg := base.Clone()
		ezg.Set(ez.Node{Name: "fr", Refs: []ez.Ref{{Field: "IPAddress", To: "addr"}, {Field: "Target", To: "thp-other"}}})
		ezg.Set(ez.Node{Name: "thp-other", Refs: []ez.Ref{{Field: "UrlMap", To: "um"}}})
		ezg.Remove("thp")
		return ezg.Builder().MustBuild()
	}
	testlib.Register(&testlib.TestCase{
		Name:        "lb/forwardingrule/update-target",
		Description: "Update a ForwardingRule Target.",
		Steps: []testlib.Step{
			{Description: "Create LB", Graph: start()},
			{Description: "Update Target", Graph: updateTarget()},
		},
	})

	updateLabels := func() *rgraph.Graph {
		ezg := base.Clone()
		ezg.Set(ez.Node{
			Name:      "fr",
			Refs:      []ez.Ref{{Field: "IPAddress", To: "addr"}, {Field: "Target", To: "thp"}},
			SetupFunc: func(x *compute.ForwardingRule) { x.Labels = map[string]string{"foo": "bar"} },
		})
		return ezg.Builder().MustBuild()
	}
	testlib.Register(&testlib.TestCase{
		Name:        "lb/forwardingrule/update-label",
		Description: "Update a ForwardingRule Label.",
		Steps: []testlib.Step{
			{Description: "Create LB", Graph: start()},
			{Description: "Update Labels", Graph: updateLabels()},
		},
	})

	updateDescription := func() *rgraph.Graph {
		ezg := base.Clone()
		ezg.Set(ez.Node{
			Name:      "fr",
			Refs:      []ez.Ref{{Field: "IPAddress", To: "addr"}, {Field: "Target", To: "thp"}},
			SetupFunc: func(x *compute.ForwardingRule) { x.Description = "changed" },
		})
		return ezg.Builder().MustBuild()
	}
	testlib.Register(&testlib.TestCase{
		Name:        "lb/forwardingrule/update-description",
		Description: "Update a ForwardingRule Description. Will recreate the resource.",
		Steps: []testlib.Step{
			{Description: "Create LB", Graph: start()},
			{Description: "Update Labels", Graph: updateDescription()},
		},
	})
}