forked from cloudfoundry/python-buildpack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathappdynamics_test.go
More file actions
128 lines (109 loc) · 4.23 KB
/
appdynamics_test.go
File metadata and controls
128 lines (109 loc) · 4.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package integration_test
import (
"fmt"
"io"
"net/http"
"path/filepath"
"testing"
"github.com/cloudfoundry/switchblade"
"github.com/sclevine/spec"
. "github.com/cloudfoundry/switchblade/matchers"
. "github.com/onsi/gomega"
)
func testAppDynamics(platform switchblade.Platform, fixtures string) func(*testing.T, spec.G, spec.S) {
return func(t *testing.T, context spec.G, it spec.S) {
var (
Expect = NewWithT(t).Expect
Eventually = NewWithT(t).Eventually
name string
source string
)
it.Before(func() {
var err error
name, err = switchblade.RandomName()
Expect(err).NotTo(HaveOccurred())
source, err = switchblade.Source(filepath.Join(fixtures, "services", "appdynamics"))
Expect(err).NotTo(HaveOccurred())
})
it.After(func() {
Expect(platform.Delete.Execute(name)).To(Succeed())
})
for _, n := range []string{"appdynamics", "app-dynamics"} {
service := "some-" + n
context(fmt.Sprintf("with a service called %s", name), func() {
it("ensures the service can be bound to the app", func() {
deployment, _, err := platform.Deploy.
WithBuildpacks("python_buildpack").
WithServices(map[string]switchblade.Service{
service: {
"account-access-key": "test-key",
"account-name": "test-account",
"host-name": "test-ups-host",
"port": "1234",
"ssl-enabled": true,
},
}).
Execute(name, filepath.Join(fixtures, "services", "appdynamics"))
Expect(err).NotTo(HaveOccurred())
Eventually(deployment).Should(SatisfyAll(
Serve(ContainSubstring(`"APPD_ACCOUNT_ACCESS_KEY": "test-key"`)).WithEndpoint("/appd"),
Serve(ContainSubstring(`"APPD_ACCOUNT_NAME": "test-account"`)).WithEndpoint("/appd"),
Serve(ContainSubstring(`"APPD_CONTROLLER_HOST": "test-ups-host"`)).WithEndpoint("/appd"),
Serve(ContainSubstring(`"APPD_CONTROLLER_PORT": "1234"`)).WithEndpoint("/appd"),
Serve(ContainSubstring(`"APPD_SSL_ENABLED": "on"`)).WithEndpoint("/appd"),
))
response, err := http.Get(fmt.Sprintf("%s/logs", deployment.ExternalURL))
Expect(err).NotTo(HaveOccurred())
defer response.Body.Close()
logs, err := io.ReadAll(response.Body)
Expect(err).NotTo(HaveOccurred())
Expect(string(logs)).To(SatisfyAll(
ContainSubstring("Started proxy with pid"),
ContainSubstring("Started watchdog with pid"),
))
})
})
}
context("when APPD_APP_NAME, APPD_TIER_NAME and APPD_NODE_NAME are set", func() {
it("uses the values", func() {
deployment, _, err := platform.Deploy.
WithBuildpacks("python_buildpack").
WithServices(map[string]switchblade.Service{
"appdynamics": {
"account-access-key": "test-key",
"account-name": "test-account",
"host-name": "test-ups-host",
"port": "1234",
"ssl-enabled": true,
},
}).
WithEnv(map[string]string{
"APPD_APP_NAME": "set-name",
"APPD_TIER_NAME": "set-tier",
"APPD_NODE_NAME": "set-node",
}).
Execute(name, source)
Expect(err).NotTo(HaveOccurred())
Eventually(deployment).Should(SatisfyAll(
Serve(ContainSubstring(`"APPD_ACCOUNT_ACCESS_KEY": "test-key"`)).WithEndpoint("/appd"),
Serve(ContainSubstring(`"APPD_ACCOUNT_NAME": "test-account"`)).WithEndpoint("/appd"),
Serve(ContainSubstring(`"APPD_CONTROLLER_HOST": "test-ups-host"`)).WithEndpoint("/appd"),
Serve(ContainSubstring(`"APPD_CONTROLLER_PORT": "1234"`)).WithEndpoint("/appd"),
Serve(ContainSubstring(`"APPD_SSL_ENABLED": "on"`)).WithEndpoint("/appd"),
Serve(ContainSubstring(`"APPD_APP_NAME": "set-name"`)).WithEndpoint("/appd"),
Serve(ContainSubstring(`"APPD_TIER_NAME": "set-tier"`)).WithEndpoint("/appd"),
Serve(ContainSubstring(`"APPD_NODE_NAME": "set-node"`)).WithEndpoint("/appd"),
))
response, err := http.Get(fmt.Sprintf("%s/logs", deployment.ExternalURL))
Expect(err).NotTo(HaveOccurred())
defer response.Body.Close()
logs, err := io.ReadAll(response.Body)
Expect(err).NotTo(HaveOccurred())
Expect(string(logs)).To(SatisfyAll(
ContainSubstring("Started proxy with pid"),
ContainSubstring("Started watchdog with pid"),
))
})
})
}
}