-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathSaveGroupTest.php
More file actions
139 lines (131 loc) · 2.88 KB
/
SaveGroupTest.php
File metadata and controls
139 lines (131 loc) · 2.88 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
129
130
131
132
133
134
135
136
137
138
139
<?php
/**
* Group::saveGroup()のテスト
*
* @author Noriko Arai <arai@nii.ac.jp>
* @author Yuna Miyashita <butackle@gmail.com>
* @link http://www.netcommons.org NetCommons Project
* @license http://www.netcommons.org/license.txt NetCommons License
* @copyright Copyright 2014, NetCommons Project
*/
App::uses('GroupsModelTestBase', 'Groups.Test/Case');
/**
* Group::saveGroup()のテスト
*
* @author Yuna Miyashita <butackle@gmail.com>
* @package NetCommons\Groups\Test\Case\Model\Group
*/
class GroupSaveGroupUserTest extends GroupsModelTestBase {
/**
* saveGroup()のテスト
*
* @dataProvider dataProviderSaveGroup
* @param array $inputData 入力データ
* @param bool saveResult セーブ結果
* @return void
*/
public function testSaveGroup($inputData = [], $saveResult = 1) {
$isUpdate = isset($inputData['Group']['id']);
$this->assertTrue(
$this->_classGroup->saveGroup($inputData) === $saveResult, 'セーブ結果が想定と異なります。'
);
$expectedCount = $saveResult ? 2 : 1;
$expectedCount -= $saveResult && $isUpdate ? 1 : 0;
$this->assertEqual(
$expectedCount,
$this->_group->find('count'),
'データ登録数が想定と異なります。'
);
}
/**
* testSaveGroup用dataProvider
*
* ### 戻り値
* - inputData: 入力データ
* - saveResult: セーブ結果
*/
public function dataProviderSaveGroup() {
//長い名前を作成
$longName = '';
$chars = array_flip(array_merge(range('a', 'z'), range('0', '9'), range('A', 'Z')));
for ($i = 0; $i < 1000; ++$i) {
$longName .= array_rand($chars);
}
return array(
//登録可能
array(
[
'Group' => [ 'name' => 'TestInsert' ],
'GroupsUser' => [ ['user_id' => '1'] ]
],
true
),
//登録可能
array(
[
'name' => 'テストInsert',
'GroupsUser' => [ ['user_id' => '2'], ['user_id' => '3'] ]
],
true
),
//更新可能
array(
[
'Group' => [
'id' => 1,
'name' => 'TestInsert',
],
'GroupsUser' => [ ['user_id' => '1'] ]
],
true
),
//更新可能
array(
[
'Group' => [
'id' => 1,
'name' => 'テストInsert',
],
'GroupsUser' => [ ['user_id' => '2'], ['user_id' => '3'] ]
],
true
),
//NULL
array(
'Group' => [ 'Error' => 1, ],
false
),
//名前なし
array(
[
'Group' => [ 'Error' => 1, ],
'GroupsUser' => [ ['user_id' => '2'], ['user_id' => '3'] ]
],
false
),
array(
[
'Group' => [ 'id' => 1, ],
'GroupsUser' => [ ['user_id' => '2'], ['user_id' => '3'] ]
],
false
),
//GroupsUserなし
array(
[ 'name' => 'テストInsert'],
false
),
//長すぎる名前
array(
[
'Group' => [
'id' => 1,
'name' => $longName,
],
'GroupsUser' => [ ['user_id' => '2'], ['user_id' => '3'] ]
],
false
),
);
}
}