001
014
015 package com.liferay.portal.service.test;
016
017 import com.liferay.portal.kernel.test.rule.DeleteAfterTestRun;
018 import com.liferay.portal.kernel.test.util.GroupTestUtil;
019 import com.liferay.portal.kernel.util.GetterUtil;
020 import com.liferay.portal.model.Group;
021 import com.liferay.portal.model.TreeModel;
022
023 import java.util.ArrayList;
024 import java.util.List;
025
026 import org.junit.After;
027 import org.junit.Assert;
028 import org.junit.Before;
029 import org.junit.Test;
030
031
034 public abstract class BaseLocalServiceTreeTestCase {
035
036 @Before
037 public void setUp() throws Exception {
038 group = GroupTestUtil.addGroup();
039
040 createTree();
041 }
042
043 @After
044 public void tearDown() throws Exception {
045 for (int i = _treeModels.size() - 1; i >= 0; i--) {
046 deleteTreeModel(_treeModels.get(i));
047 }
048 }
049
050 @Test
051 public void testRebuildTree() throws Exception {
052 rebuildTree();
053
054 for (TreeModel treeModel : _treeModels) {
055 long primaryKey = GetterUtil.getLong(treeModel.getPrimaryKeyObj());
056
057 treeModel = getTreeModel(primaryKey);
058
059 Assert.assertEquals(
060 treeModel.buildTreePath(), treeModel.getTreePath());
061 }
062 }
063
064 protected abstract TreeModel addTreeModel(TreeModel parentTreeModel)
065 throws Exception;
066
067 protected void createTree() throws Exception {
068
069
084
085 TreeModel treeModelA = addTreeModel(null);
086
087 _treeModels.add(treeModelA);
088
089 TreeModel treeModelAA = addTreeModel(treeModelA);
090
091 _treeModels.add(treeModelAA);
092
093 TreeModel treeModelAAA = addTreeModel(treeModelAA);
094
095 _treeModels.add(treeModelAAA);
096
097 TreeModel treeModelAAB = addTreeModel(treeModelAA);
098
099 _treeModels.add(treeModelAAB);
100
101 TreeModel treeModelAAC = addTreeModel(treeModelAA);
102
103 _treeModels.add(treeModelAAC);
104
105 TreeModel treeModelAAD = addTreeModel(treeModelAA);
106
107 _treeModels.add(treeModelAAD);
108
109 TreeModel treeModelAB = addTreeModel(treeModelA);
110
111 _treeModels.add(treeModelAB);
112
113 TreeModel treeModelABA = addTreeModel(treeModelAB);
114
115 _treeModels.add(treeModelABA);
116
117 TreeModel treeModelABB = addTreeModel(treeModelAB);
118
119 _treeModels.add(treeModelABB);
120
121 TreeModel treeModelABC = addTreeModel(treeModelAB);
122
123 _treeModels.add(treeModelABC);
124
125 TreeModel treeModelAC = addTreeModel(treeModelA);
126
127 _treeModels.add(treeModelAC);
128
129 TreeModel treeModelACA = addTreeModel(treeModelAC);
130
131 _treeModels.add(treeModelACA);
132
133 TreeModel treeModelACB = addTreeModel(treeModelAC);
134
135 _treeModels.add(treeModelACB);
136
137
152
153 TreeModel treeModelB = addTreeModel(null);
154
155 _treeModels.add(treeModelB);
156
157 TreeModel treeModelBA = addTreeModel(treeModelB);
158
159 _treeModels.add(treeModelBA);
160
161 TreeModel treeModelBAA = addTreeModel(treeModelBA);
162
163 _treeModels.add(treeModelBAA);
164
165 TreeModel treeModelBAB = addTreeModel(treeModelBA);
166
167 _treeModels.add(treeModelBAB);
168
169 TreeModel treeModelBB = addTreeModel(treeModelB);
170
171 _treeModels.add(treeModelBB);
172
173 TreeModel treeModelBBA = addTreeModel(treeModelBB);
174
175 _treeModels.add(treeModelBBA);
176
177 TreeModel treeModelBBB = addTreeModel(treeModelBB);
178
179 _treeModels.add(treeModelBBB);
180
181 TreeModel treeModelBBC = addTreeModel(treeModelBB);
182
183 _treeModels.add(treeModelBBC);
184
185 TreeModel treeModelBC = addTreeModel(treeModelB);
186
187 _treeModels.add(treeModelBC);
188
189 TreeModel treeModelBCA = addTreeModel(treeModelBC);
190
191 _treeModels.add(treeModelBCA);
192
193 TreeModel treeModelBCB = addTreeModel(treeModelBC);
194
195 _treeModels.add(treeModelBCB);
196
197 TreeModel treeModelBCC = addTreeModel(treeModelBC);
198
199 _treeModels.add(treeModelBCC);
200
201 TreeModel treeModelBCD = addTreeModel(treeModelBC);
202
203 _treeModels.add(treeModelBCD);
204 }
205
206 protected abstract void deleteTreeModel(TreeModel treeModel)
207 throws Exception;
208
209 protected abstract TreeModel getTreeModel(long primaryKey) throws Exception;
210
211 protected abstract void rebuildTree() throws Exception;
212
213 @DeleteAfterTestRun
214 protected Group group;
215
216 private final List<TreeModel> _treeModels = new ArrayList<>();
217
218 }