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;