@@ -2,7 +2,10 @@ package gcloudcx_test
2
2
3
3
import (
4
4
"context"
5
+ "encoding/json"
5
6
"fmt"
7
+ "os"
8
+ "path/filepath"
6
9
"reflect"
7
10
"strings"
8
11
"testing"
@@ -64,12 +67,6 @@ func (suite *ResponseManagementSuite) SetupSuite() {
64
67
secret := core .GetEnvAsString ("PURECLOUD_CLIENTSECRET" , "" )
65
68
suite .Require ().NotEmpty (secret , "PURECLOUD_CLIENTSECRET is not set" )
66
69
67
- value = core .GetEnvAsString ("PURECLOUD_DEPLOYMENTID" , "" )
68
- suite .Require ().NotEmpty (value , "PURECLOUD_DEPLOYMENTID is not set" )
69
-
70
- deploymentID , err := uuid .Parse (value )
71
- suite .Require ().NoError (err , "PURECLOUD_DEPLOYMENTID is not a valid UUID" )
72
-
73
70
value = core .GetEnvAsString ("RESPONSE_MANAGEMENT_LIBRARY_ID" , "" )
74
71
suite .Require ().NotEmpty (value , "RESPONSE_MANAGEMENT_LIBRARY_ID is not set in your environment" )
75
72
@@ -89,9 +86,8 @@ func (suite *ResponseManagementSuite) SetupSuite() {
89
86
suite .Require ().NotEmpty (suite .ResponseName , "RESPONSE_MANAGEMENT_RESPONSE_NAME is not set in your environment" )
90
87
91
88
suite .Client = gcloudcx .NewClient (& gcloudcx.ClientOptions {
92
- Region : region ,
93
- DeploymentID : deploymentID ,
94
- Logger : suite .Logger ,
89
+ Region : region ,
90
+ Logger : suite .Logger ,
95
91
}).SetAuthorizationGrant (& gcloudcx.ClientCredentialsGrant {
96
92
ClientID : clientID ,
97
93
Secret : secret ,
@@ -130,9 +126,71 @@ func (suite *ResponseManagementSuite) AfterTest(suiteName, testName string) {
130
126
suite .Logger .Record ("duration" , duration .String ()).Infof ("Test End: %s %s" , testName , strings .Repeat ("-" , 80 - 11 - len (testName )))
131
127
}
132
128
129
+ func (suite * ResponseManagementSuite ) LoadTestData (filename string ) []byte {
130
+ data , err := os .ReadFile (filepath .Join ("." , "testdata" , filename ))
131
+ suite .Require ().NoErrorf (err , "Failed to Load Data. %s" , err )
132
+ return data
133
+ }
134
+
135
+ func (suite * ResponseManagementSuite ) UnmarshalData (filename string , v interface {}) error {
136
+ data := suite .LoadTestData (filename )
137
+ suite .Logger .Infof ("Loaded %s: %s" , filename , string (data ))
138
+ return json .Unmarshal (data , v )
139
+ }
140
+
133
141
// #endregion: Suite Tools }}}
134
142
// *****************************************************************************
135
143
144
+ func (suite * ResponseManagementSuite ) TestCanUnmarshalCampaignSMSTemplate () {
145
+ var response gcloudcx.ResponseManagementResponse
146
+
147
+ err := suite .UnmarshalData ("response-campaignsms-template.json" , & response )
148
+ suite .Require ().NoError (err , "Failed to unmarshal response" )
149
+ suite .Assert ().Equal ("response-01" , response .Name )
150
+ suite .Assert ().Equal (uuid .MustParse ("86CABAAE-BD5E-4615-A4F2-712467E808F0" ), response .ID )
151
+ suite .Assert ().Equal (12 , response .Version )
152
+ suite .Assert ().Equal ("CampaignSmsTemplate" , response .GetType ())
153
+ suite .Assert ().Equal (time .Date (2023 , 7 , 25 , 7 , 30 , 10 , 449000000 , time .UTC ), response .DateCreated )
154
+ suite .Require ().NotNil (response .CreatedBy , "Respnose CreatedBy should not be nil" )
155
+ suite .Assert ().Equal (uuid .MustParse ("DDA998ED-2258-4317-8070-2745465B8B28" ), response .CreatedBy .ID )
156
+ suite .Require ().Len (response .Libraries , 1 )
157
+ suite .Assert ().Equal (uuid .MustParse ("2035D559-793E-4F4B-9A09-118D9C265EFD" ), response .Libraries [0 ].ID )
158
+ suite .Assert ().Equal ("Test Library" , response .Libraries [0 ].Name )
159
+ suite .Require ().Len (response .Texts , 1 )
160
+ suite .Assert ().Equal ("text/plain" , response .Texts [0 ].ContentType )
161
+ suite .Assert ().Equal ("Hello {{Name}}" , response .Texts [0 ].Content )
162
+ suite .Require ().Len (response .Substitutions , 1 )
163
+ suite .Assert ().Equal ("Name" , response .Substitutions [0 ].ID )
164
+ suite .Assert ().Equal ("John Doe" , response .Substitutions [0 ].Default )
165
+ }
166
+
167
+ func (suite * ResponseManagementSuite ) TestCanUnmarshalMessageTemplate () {
168
+ var response gcloudcx.ResponseManagementResponse
169
+
170
+ err := suite .UnmarshalData ("response-message-template.json" , & response )
171
+ suite .Require ().NoError (err , "Failed to unmarshal response" )
172
+ suite .Assert ().Equal ("response-02" , response .Name )
173
+ suite .Assert ().Equal (uuid .MustParse ("A7F1F131-7E50-4117-982A-2D5C55C9ED5E" ), response .ID )
174
+ suite .Assert ().Equal (1 , response .Version )
175
+ suite .Assert ().Equal ("MessagingTemplate" , response .GetType ())
176
+ suite .Assert ().Equal (time .Date (2023 , 7 , 25 , 7 , 30 , 10 , 449000000 , time .UTC ), response .DateCreated )
177
+ suite .Require ().NotNil (response .CreatedBy , "Respnose CreatedBy should not be nil" )
178
+ suite .Assert ().Equal (uuid .MustParse ("DDA998ED-2258-4317-8070-2745465B8B28" ), response .CreatedBy .ID )
179
+ suite .Require ().Len (response .Libraries , 1 )
180
+ suite .Assert ().Equal (uuid .MustParse ("2035D559-793E-4F4B-9A09-118D9C265EFD" ), response .Libraries [0 ].ID )
181
+ suite .Assert ().Equal ("Test Library" , response .Libraries [0 ].Name )
182
+ suite .Require ().Len (response .Texts , 1 )
183
+ suite .Assert ().Equal ("text/plain" , response .Texts [0 ].ContentType )
184
+ suite .Assert ().Equal ("Hello {{Name}}" , response .Texts [0 ].Content )
185
+ suite .Require ().Len (response .Substitutions , 1 )
186
+ suite .Assert ().Equal ("Name" , response .Substitutions [0 ].ID )
187
+ suite .Assert ().Equal ("John Doe" , response .Substitutions [0 ].Default )
188
+ suite .Assert ().Equal ("whatsApp" , response .TemplateType )
189
+ suite .Assert ().Equal ("template-01" , response .TemplateName )
190
+ suite .Assert ().Equal ("templates" , response .TemplateNamespace )
191
+ suite .Assert ().Equal ("en_US" , response .TemplateLanguage )
192
+ }
193
+
136
194
func (suite * ResponseManagementSuite ) TestCanFetchLibraryByID () {
137
195
library , err := gcloudcx .Fetch [gcloudcx.ResponseManagementLibrary ](context .Background (), suite .Client , suite .LibraryID )
138
196
if err != nil {
0 commit comments