Browse code

added appinfo/info.xml appinfo/signature.json CHANGELOG.txt lib/AppInfo/Application.php css/style.css providers/Plivo

DoubleBastionAdmin authored on 05/11/2025 13:35:09
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,205 @@
1
+<?php
2
+
3
+namespace Plivo\Tests\Resources;
4
+
5
+
6
+
7
+
8
+use Plivo\Http\PlivoRequest;
9
+use Plivo\Http\PlivoResponse;
10
+use Plivo\Tests\BaseTestCase;
11
+
12
+
13
+/**
14
+ * Class CampaignTest
15
+ * @package Plivo\Tests\Resources
16
+ */
17
+class CampaignTest extends BaseTestCase {
18
+
19
+    public function testCampaignCreate()
20
+    {
21
+        $request = new PlivoRequest(
22
+            'POST',
23
+            'Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/',
24
+            [
25
+                'brand_id' => "B8OD95Z",
26
+                'campaign_alias' => "campaign name sssample",
27
+                'vertical' => "INSURANCE",
28
+                'usecase' => "MIXED",
29
+                'sub_usecases' => [
30
+                    "CUSTOMER_CARE",
31
+                    "2FA"
32
+                ],
33
+                'description' => "sample description text should be minimum 40 character",
34
+                'embedded_link' => False,
35
+                'embedded_phone' => False,
36
+                'age_gated' => False,
37
+                'direct_lending' => False,
38
+                'subscriber_optin' => True,
39
+                'subscriber_optout' => True,
40
+                'subscriber_help' => True,
41
+                'affiliate_marketing' => False,
42
+                'sample1' => "sample 1 should be 20 minimum character",
43
+                'sample2' => "sample 2 should be 20 minimum character",
44
+                'message_flow' => "message_flow should be 20 minimum character",
45
+                'help_message' => "help_message should be 20 minimum character",
46
+                'optout_message' => "optout_message should be 20 minimum character"
47
+            ]);
48
+        $body = file_get_contents(__DIR__ . '/../Mocks/campaignCreationResponse.json');
49
+
50
+        $this->mock(new PlivoResponse($request,200, $body));
51
+
52
+        $actual = $this->client->campaign->create("B8OD95Z", "campaign name sssample","INSURANCE", "MIXED", [
53
+            "CUSTOMER_CARE",
54
+            "2FA"
55
+        ], "sample description text should be minimum 40 character", False, False, False, False, True, True, True, False, "sample 1 should be 20 minimum character", "sample 2 should be 20 minimum character", "message_flow should be 20 minimum character", "help_message should be 20 minimum character", "optout_message should be 20 minimum character");
56
+
57
+        $this->assertRequest($request);
58
+
59
+        self::assertNotNull($actual);
60
+    }
61
+
62
+    public function testGetCampaign()
63
+    {
64
+        $campaignID = "CMPT4EP";
65
+        $request = new PlivoRequest(
66
+            'GET',
67
+            'Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/'.$campaignID.'/',
68
+            []);
69
+        $body = file_get_contents(__DIR__ . '/../Mocks/campaignGetResponse.json');
70
+
71
+        $this->mock(new PlivoResponse($request,200, $body));
72
+
73
+        $actual = $this->client->campaign->get($campaignID);
74
+        self::assertNotNull($actual);
75
+        $this->assertRequest($request);
76
+
77
+    }
78
+
79
+    public function testCampaignImport()
80
+    {
81
+        $request = new PlivoRequest(
82
+            'POST',
83
+            'Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/Import/',
84
+            [
85
+                'campaign_id' => "CNTQ0OD",
86
+                'campaign_alias' => "New Contact by vinay for ct",
87
+
88
+            ]);
89
+        $body = file_get_contents(__DIR__ . '/../Mocks/campaignImportResponse.json');
90
+
91
+        $this->mock(new PlivoResponse($request,200, $body));
92
+
93
+        $actual = $this->client->campaign->import_campaign("CNTQ0OD","New Contact by vinay for ct");
94
+
95
+        $this->assertRequest($request);
96
+
97
+        self::assertNotNull($actual);
98
+    }
99
+
100
+    public function testCampaignUpdate()
101
+    {
102
+        $campaignID = "CMPT4EP";
103
+        $request = new PlivoRequest(
104
+            'POST',
105
+            'Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/'.$campaignID.'/',
106
+            [
107
+                
108
+                'reseller_id' => "",
109
+                'description' => "",
110
+                'sample1' => "sample 1 should be 20 minimum character",
111
+                'sample2' => "",
112
+                'message_flow' => "",
113
+                'help_message' => "",
114
+                'optout_message' => "",
115
+                'optin_keywords' => "",
116
+                'optout_keywords' => "",
117
+                'optin_message' => "",
118
+                'help_keywords' => "",
119
+                
120
+            ]);
121
+        $body = file_get_contents(__DIR__ . '/../Mocks/campaignUpdateResponse.json');
122
+
123
+        $this->mock(new PlivoResponse($request,200, $body));
124
+
125
+        $actual = $this->client->campaign->update($campaignID, "","","sample 1 should be 20 minimum character","","","","","","","","");
126
+
127
+        $this->assertRequest($request);
128
+
129
+        self::assertNotNull($actual);
130
+    }
131
+   
132
+    
133
+    function testCampaignList()
134
+    {
135
+        $request = new PlivoRequest(
136
+            'Get',
137
+            'Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/',
138
+            []);
139
+        $body = file_get_contents(__DIR__ . '/../Mocks/campaignListResponse.json');
140
+        
141
+        $this->mock(new PlivoResponse($request,202, $body));
142
+        
143
+        $actual = $this->client->campaign->list();
144
+        
145
+        $this->assertRequest($request);
146
+        
147
+        self::assertNotNull($actual);
148
+    }
149
+
150
+    function testCampaignGetNumber()
151
+    {
152
+        $campaignID = "CRIGC80";
153
+        $number = "14845007032";
154
+        $request = new PlivoRequest(
155
+            'GET',
156
+            'Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/'.$campaignID.'/Number'.'/'. $number.'/',
157
+            []);
158
+        $body = file_get_contents(__DIR__ . '/../Mocks/campaignGetNumberResponse.json');
159
+
160
+        $this->mock(new PlivoResponse($request,200, $body));
161
+
162
+        $actual = $this->client->campaign->getNumber($campaignID,$number);
163
+        self::assertNotNull($actual);
164
+        $this->assertRequest($request);
165
+
166
+    }
167
+
168
+    function testCampaignListNumber()
169
+    {
170
+        $campaignID = "CRIGC80";
171
+        $request = new PlivoRequest(
172
+            'Get',
173
+            'Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/'.$campaignID.'/Number'. '/',
174
+            []);
175
+        $body = file_get_contents(__DIR__ . '/../Mocks/campaignListNumberResponse.json');
176
+        
177
+        $this->mock(new PlivoResponse($request,202, $body));
178
+        
179
+        $actual = $this->client->campaign->listNumber($campaignID);
180
+        
181
+        $this->assertRequest($request);
182
+        
183
+        self::assertNotNull($actual);
184
+
185
+    }
186
+
187
+    public function testDeleteCampaign()
188
+    {
189
+        $campaignID = "CMPT4EP";
190
+        $request = new PlivoRequest(
191
+            'DELETE',
192
+            'Account/MAXXXXXXXXXXXXXXXXXX/10dlc/Campaign/'.$campaignID.'/',
193
+            []);
194
+        $body = file_get_contents(__DIR__ . '/../Mocks/campaignDeleteResponse.json');
195
+
196
+        $this->mock(new PlivoResponse($request,200, $body));
197
+
198
+        $actual = $this->client->campaign->delete($campaignID);
199
+        self::assertNotNull($actual);
200
+        $this->assertRequest($request);
201
+
202
+    }
203
+
204
+
205
+}