1 package org.openecomp.core.zusammen.plugin.collaboration;
3 public class VersionCollaborationStoreTest {/*
4 private static final String TENANT = "test";
5 private static final String USER = "ItemStateStoreTest_user";
6 private static final SessionContext context =
7 TestUtils.createSessionContext(new UserInfo(USER), TENANT);
10 private VersionDao versionDaoMock;
12 private ElementStore elementCollaborationStore;
15 private VersionStore versionCollaborationStore;
18 public void setUp() throws Exception {
19 MockitoAnnotations.initMocks(this);
20 when(versionCollaborationStore.getVersionDao(anyObject())).thenReturn(versionDaoMock);
24 public void testListPrivateItemVersions() throws Exception {
25 testListItemVersions(Space.PRIVATE, USER);
29 public void testListPublicItemVersions() throws Exception {
30 testListItemVersions(Space.PUBLIC, ZusammenPluginConstants.PUBLIC_SPACE);
34 public void testIsPrivateItemVersionExist() throws Exception {
35 testIsItemVersionExist(Space.PRIVATE, USER);
39 public void testIsPublicItemVersionExist() throws Exception {
40 testIsItemVersionExist(Space.PUBLIC, ZusammenPluginConstants.PUBLIC_SPACE);
44 public void testIsItemVersionExistWhenNot() throws Exception {
46 Id versionId = new Id();
47 doReturn(Optional.empty()).when(versionDaoMock).get(context, USER, itemId, versionId);
50 versionCollaborationStore.isItemVersionExist(context, Space.PRIVATE, itemId, versionId);
51 Assert.assertFalse(itemExist);
55 public void testGetPrivateItemVersion() throws Exception {
56 testGetItemVersion(Space.PRIVATE, USER);
60 public void testGetPublicItemVersion() throws Exception {
61 testGetItemVersion(Space.PUBLIC, ZusammenPluginConstants.PUBLIC_SPACE);
66 public void testGetNonExistingItemVersion() throws Exception {
68 Id versionId = new Id();
69 doReturn(Optional.empty()).when(versionDaoMock).get(context, USER, itemId, versionId);
71 ItemVersion itemVersion =
72 versionCollaborationStore.getItemVersion(context, Space.PRIVATE, itemId, versionId);
73 Assert.assertNull(itemVersion);
77 public void testCreatePrivateItemVersion() throws Exception {
78 testCreateItemVersion(Space.PRIVATE, USER, null);
82 public void testCreatePrivateItemVersionBasedOn() throws Exception {
83 testCreateItemVersion(Space.PRIVATE, USER, new Id());
87 public void testCreatePublicItemVersion() throws Exception {
88 testCreateItemVersion(Space.PUBLIC, ZusammenPluginConstants.PUBLIC_SPACE, null);
92 public void testCreatePublicItemVersionBasedOn() throws Exception {
93 testCreateItemVersion(Space.PUBLIC, ZusammenPluginConstants.PUBLIC_SPACE, new Id());
97 public void testUpdatePrivateItemVersion() throws Exception {
98 testUpdateItemVersion(Space.PRIVATE, USER);
102 public void testUpdatePublicItemVersion() throws Exception {
103 testUpdateItemVersion(Space.PUBLIC, ZusammenPluginConstants.PUBLIC_SPACE);
107 public void testDeletePrivateItemVersion() throws Exception {
108 testDeleteItemVersion(Space.PRIVATE, USER);
112 public void testDeletePublicItemVersion() throws Exception {
113 testDeleteItemVersion(Space.PUBLIC, ZusammenPluginConstants.PUBLIC_SPACE);
117 public void testPublishItemVersionWhenNotDirty() throws Exception {
118 Id itemId = new Id();
119 ItemVersion version = TestUtils.createItemVersion(new Id(), null, "v1", false);
120 doReturn(Optional.of(version)).when(versionDaoMock).get(context, USER, itemId, version.getId());
122 versionCollaborationStore.publishItemVersion(context, itemId, version.getId(), "message");
126 private void testIsItemVersionExist(Space space, String spaceName) {
127 Id itemId = new Id();
128 ItemVersion retrievedVersion = TestUtils.createItemVersion(new Id(), null, "v1");
129 doReturn(Optional.of(retrievedVersion)).when(versionDaoMock)
130 .get(context, spaceName, itemId, retrievedVersion.getId());
133 versionCollaborationStore
134 .isItemVersionExist(context, space, itemId, retrievedVersion.getId());
135 Assert.assertTrue(itemExist);
138 private void testGetItemVersion(Space space, String spaceName) throws Exception {
139 Id itemId = new Id();
140 ItemVersion retrievedVersion = TestUtils.createItemVersion(new Id(), null, "v1");
141 doReturn(Optional.of(retrievedVersion)).when(versionDaoMock)
142 .get(context, spaceName, itemId, retrievedVersion.getId());
144 ItemVersion itemVersion =
145 versionCollaborationStore.getItemVersion(context, space, itemId, retrievedVersion.getId());
146 Assert.assertEquals(itemVersion, retrievedVersion);
149 private void testListItemVersions(Space space, String spaceName) {
150 Id itemId = new Id();
151 ItemVersion v1 = TestUtils.createItemVersion(new Id(), null, "v1");
152 ItemVersion v2 = TestUtils.createItemVersion(new Id(), v1.getId(), "v2");
153 ItemVersion v3 = TestUtils.createItemVersion(new Id(), v2.getId(), "v3");
154 List<ItemVersion> retrievedVersions = Arrays.asList(v1, v2, v3);
155 doReturn(retrievedVersions).when(versionDaoMock).list(context, spaceName, itemId);
157 Collection<ItemVersion> itemVersions =
158 versionCollaborationStore.listItemVersions(context, space, itemId);
159 Assert.assertEquals(itemVersions, retrievedVersions);
162 private void testCreateItemVersion(Space space, String spaceName, Id baseId) {
163 Id itemId = new Id();
164 ItemVersion v1 = TestUtils.createItemVersion(new Id(), baseId, "v1", false);
165 List<ElementEntity> baseVersionElements = mockVersionElements(spaceName, itemId, baseId);
167 ArgumentCaptor<ItemVersion> versionCaptor = ArgumentCaptor.forClass(ItemVersion.class);
169 Date creationTime = new Date();
170 versionCollaborationStore
171 .createItemVersion(context, space, itemId, baseId, v1.getId(), v1.getData(), creationTime);
173 verify(versionDaoMock).create(eq(context), eq(spaceName), eq(itemId), versionCaptor.capture());
174 //baseId, v1.getId(),v1.getData(), creationTime);
176 ItemVersion capturedVersion = versionCaptor.getValue();
177 Assert.assertEquals(baseId, capturedVersion.getBaseId());
178 Assert.assertEquals(v1.getId(), capturedVersion.getId());
179 Assert.assertEquals(v1.getData(), capturedVersion.getData());
180 Assert.assertEquals(creationTime, capturedVersion.getCreationTime());
181 *//* verify(versionDaoMock)
182 .create(anyObject(), anyObject(), anyObject(), anyObject(), anyObject(), anyObject(),
185 *//* if (baseId != null) {
186 baseVersionElements.forEach(element ->
187 verify(elementCollaborationStore).create(eq(context),
188 eq(new ElementEntityContext(spaceName, itemId, v1.getId())),
191 verifyZeroInteractions(elementCollaborationStore);
195 private void testUpdateItemVersion(Space space, String spaceName) {
196 Id itemId = new Id();
197 ItemVersion retrievedVersion = TestUtils.createItemVersion(new Id(), null, "v1", false);
198 doReturn(Optional.of(retrievedVersion)).when(versionDaoMock)
199 .get(context, spaceName, itemId, retrievedVersion.getId());
201 ItemVersionData updatedData = new ItemVersionData();
202 updatedData.setInfo(TestUtils.createInfo("v1 updated"));
203 updatedData.setRelations(
204 Arrays.asList(new Relation(), new Relation(), new Relation(), new Relation()));
205 versionCollaborationStore.updateItemVersion(
206 context, space, itemId, retrievedVersion.getId(), updatedData, new Date());
208 *//*verify(versionDaoMock)
209 .update(context, spaceName, itemId, retrievedVersion.getId(), updatedData, modificationTime);*//*
210 verify(versionDaoMock)
211 .update(anyObject(), anyObject(), anyObject(), anyObject());
215 private void testDeleteItemVersion(Space space, String spaceName) {
216 Id itemId = new Id();
217 Id versionId = new Id();
219 List<ElementEntity> versionElements = mockVersionElements(spaceName, itemId, versionId);
220 versionCollaborationStore.deleteItemVersion(context, space, itemId, versionId);
222 *//* versionElements.forEach(element ->
223 verify(elementCollaborationStore).delete(eq(context),
224 eq(new ElementEntityContext(spaceName, itemId, versionId)),
226 verify(versionDaoMock).delete(context, spaceName, itemId, versionId);
229 private List<ElementEntity> mockVersionElements(String spaceName, Id itemId, Id versionId) {
230 ElementEntity elm1 = new ElementEntity(new Id());
231 ElementEntity elm2 = new ElementEntity(new Id());
232 List<ElementEntity> baseVersionElements = Arrays.asList(elm1, elm2);
233 *//* doReturn(baseVersionElements).when(elementCollaborationStore)
234 .list(eq(context), eq(new ElementEntityContext(spaceName, itemId, versionId)));*//*
235 return baseVersionElements;