From 6c3221381b1963a3815d4bedb14af5dc5955e0db Mon Sep 17 00:00:00 2001 From: Matthias Wessendorf Date: Tue, 16 Jan 2024 16:21:28 +0100 Subject: [PATCH] :dizzy: Testing two sources(brokers) and third invocation for an override on the first (#2118) Signed-off-by: Matthias Wessendorf --- cmd/subscribe_test.go | 81 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/cmd/subscribe_test.go b/cmd/subscribe_test.go index 7548a70404..daf6651884 100644 --- a/cmd/subscribe_test.go +++ b/cmd/subscribe_test.go @@ -100,6 +100,87 @@ func TestSubscribeWithMultiple(t *testing.T) { } +func TestSubscribeWithMultipleBrokersAndOverride(t *testing.T) { + root := fromTempDirectory(t) + + _, err := fn.New().Init(fn.Function{Runtime: "go", Root: root}) + if err != nil { + t.Fatal(err) + } + + cmd := NewSubscribeCmd() + cmd.SetArgs([]string{"--source", "my-broker", "--filter", "foo=go"}) + + if err := cmd.Execute(); err != nil { + t.Fatal(err) + } + + // Now load the function and ensure that the subscription is set correctly. + f, err := fn.NewFunction(root) + if err != nil { + t.Fatal(err) + } + + if f.Deploy.Subscriptions == nil { + t.Fatal("Expected subscription to be present ") + } + if f.Deploy.Subscriptions[0].Source != "my-broker" { + t.Fatalf("Expected subscription for broker to be 'my-broker', but got '%v'", f.Deploy.Subscriptions[0].Source) + } + + if f.Deploy.Subscriptions[0].Filters["foo"] != "go" { + t.Fatalf("Expected subscription filter for 'foo' to be 'go', but got '%v'", f.Deploy.Subscriptions[0].Filters["foo"]) + } + + cmd = NewSubscribeCmd() + cmd.SetArgs([]string{"--filter", "bar=foo"}) + + if err := cmd.Execute(); err != nil { + t.Fatal(err) + } + + // Now load the function and ensure that the subscription is set correctly. + f, err = fn.NewFunction(root) + if err != nil { + t.Fatal(err) + } + + if f.Deploy.Subscriptions == nil { + t.Fatal("Expected subscription to be present ") + } + if f.Deploy.Subscriptions[1].Source != "default" { + t.Fatalf("Expected subscription for broker to be 'default', but got '%v'", f.Deploy.Subscriptions[0].Source) + } + + if f.Deploy.Subscriptions[1].Filters["bar"] != "foo" { + t.Fatalf("Expected subscription filter for 'bar' to be 'foo', but got '%v'", f.Deploy.Subscriptions[0].Filters["foo"]) + } + + cmd = NewSubscribeCmd() + cmd.SetArgs([]string{"--source", "my-broker", "--filter", "foo=golang"}) + + if err := cmd.Execute(); err != nil { + t.Fatal(err) + } + + // Now load the function and ensure that the subscription is set correctly. + f, err = fn.NewFunction(root) + if err != nil { + t.Fatal(err) + } + + if f.Deploy.Subscriptions == nil { + t.Fatal("Expected subscription to be present ") + } + if f.Deploy.Subscriptions[0].Source != "my-broker" { + t.Fatalf("Expected subscription for broker to be 'my-broker', but got '%v'", f.Deploy.Subscriptions[0].Source) + } + + if f.Deploy.Subscriptions[0].Filters["foo"] != "golang" { + t.Fatalf("Expected subscription filter for 'foo' to be 'golang', but got '%v'", f.Deploy.Subscriptions[0].Filters["foo"]) + } +} + func TestSubscribeWithNoExplicitSourceAll(t *testing.T) { root := fromTempDirectory(t)