Repository navigation
Expand file tree
/
Copy pathDiscussionTest.php
More file actions
125 lines (95 loc) · 3.52 KB
/
Copy pathDiscussionTest.php
File metadata and controls
125 lines (95 loc) · 3.52 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
<?php
require_once('NingApi.php');
require_once('TestConfig.php');
class DiscussionTest extends PHPUnit_Framework_TestCase {
protected $ningApi;
protected function setUp() {
$subdomain = TestConfig::SUBDOMAIN;
$consumer_key = TestConfig::CONSUMER_KEY;
$consumer_secret = TestConfig::CONSUMER_SECRET;
$ningApi = new NingApi($subdomain, $consumer_key, $consumer_secret);
$this->ningApi = $ningApi;
$this->ningApi->login(TestConfig::EMAIL, TestConfig::PASSWORD);
}
private function create() {
$bundleId = $this->getBundleId();
$parts = array(
'bundleId' => $bundleId,
'title' => 'Discussion Title',
'description' => 'Discussion Description',
'tagNames' => 'test, api'
);
$result = $this->ningApi->post('Discussion', $parts);
$this->assertTrue($result['success']);
return $result;
}
private function getBundleId() {
$bundleId = 'none';
$count = 1;
$fields = 'id';
$entryContentType = 'Discussion';
$path = sprintf('Bundle/recent?count=%s&fields=%s&entryContentType=%s', $count,
$fields, $entryContentType);
$result = $this->ningApi->get($path);
if (isset($result['entry'][0]['id'])) {
$bundleId = $result['entry'][0]['id'];
}
return $bundleId;
}
public function testGet() {
$result = $this->create();
$fields = 'author,title,description';
$path = sprintf('Discussion/?id=%s&fields=%s', $result['id'], $fields);
$result = $this->ningApi->get($path);
$this->assertTrue($result['success']);
}
public function testRecent() {
$count = 3;
$fields = 'title, author.url';
$bundleId = $this->getBundleId();
$path = sprintf('Discussion/recent?count=%s&fields=%s&bundleId=%s', $count,
$fields, $bundleId);
$result = $this->ningApi->get($path);
$this->assertTrue($result['success']);
}
public function testFeatured() {
$count = 3;
$fields = 'title, author.url';
$bundleId = $this->getBundleId();
$path = sprintf('Discussion/featured?count=%s&fields=%s&bundleId=%s', $count,
$fields, $bundleId);
$result = $this->ningApi->get($path);
$this->assertTrue($result['success']);
}
public function testCreate() {
$result = $this->create();
$this->assertTrue($result['success']);
}
public function testUpdate() {
$result = $this->create();
$parts = array(
'title' => 'Updated Discussion Title',
'description' => 'Updated Discussion Description',
'id' => $result['id']
);
$result = $this->ningApi->put('Discussion', $parts);
$this->assertTrue($result['success']);
}
public function testDelete() {
$result = $this->create();
$path = sprintf('Discussion?id=%s', $result['id']);
$result = $this->ningApi->delete($path);
$this->assertTrue($result['success']);
}
public function testCount() {
date_default_timezone_set('UTC');
$date = date('Y-m-d\TH:i:s\Z', strtotime('-2 days'));
$bundleId = $this->getBundleId();
$path = sprintf('Discussion/count?createdAfter=%s&bundleId=%s', $date, $bundleId);
$result = $this->ningApi->get($path);
$this->assertTrue($result['success']);
}
protected function tearDown() {
$this->ningApi = NULL;
}
}