Search in sources :

Example 11 with Folder

use of com.epam.pipeline.entity.pipeline.Folder in project cloud-pipeline by epam.

the class FolderDaoTest method testCRUD.

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void testCRUD() {
    Folder folder = getFolder();
    // load
    Folder loaded = folderDao.loadFolder(folder.getId());
    assertEquals(folder.getId(), loaded.getId());
    assertEquals(folder.getName(), loaded.getName());
    assertNull(folder.getParentId());
    // update
    Folder parent = new Folder();
    parent.setName("Parent");
    parent.setOwner(TEST_USER);
    folderDao.createFolder(parent);
    // loadAll, 2 root projects
    List<Folder> result = folderDao.loadAllFolders();
    assertEquals(2, result.size());
    folder.setParentId(parent.getId());
    folder.setName("Test2");
    folderDao.updateFolder(folder);
    Folder loaded2 = folderDao.loadFolder(folder.getId());
    assertEquals(folder.getId(), loaded2.getId());
    assertEquals(folder.getName(), loaded2.getName());
    assertEquals(folder.getParentId(), loaded2.getParentId());
    Folder loadedParent = folderDao.loadFolder(parent.getId());
    assertEquals(parent.getId(), loadedParent.getId());
    assertEquals(1, loadedParent.getChildFolders().size());
    assertEquals(folder.getId(), loadedParent.getChildFolders().get(0).getId());
    // loadAll
    List<Folder> result2 = folderDao.loadAllFolders();
    assertEquals(1, result2.size());
    // add pipeline
    Pipeline pipeline = ObjectCreatorUtils.constructPipeline(TEST_NAME, TEST_REPO, parent.getId());
    pipeline.setOwner(TEST_USER);
    pipelineDao.createPipeline(pipeline);
    Folder loadedParent2 = folderDao.loadFolder(parent.getId());
    assertEquals(pipeline.getId(), loadedParent2.getPipelines().get(0).getId());
    assertEquals(0, loadedParent2.getChildFolders().get(0).getPipelines().size());
    // delete
    folderDao.deleteFolder(folder.getId());
    assertNull(folderDao.loadFolder(folder.getId()));
    // loadAll
    List<Folder> result3 = folderDao.loadAllFolders();
    assertEquals(1, result3.size());
}
Also used : Folder(com.epam.pipeline.entity.pipeline.Folder) Pipeline(com.epam.pipeline.entity.pipeline.Pipeline) AbstractSpringTest(com.epam.pipeline.AbstractSpringTest) Test(org.junit.Test) Transactional(org.springframework.transaction.annotation.Transactional)

Example 12 with Folder

use of com.epam.pipeline.entity.pipeline.Folder in project cloud-pipeline by epam.

the class FolderDaoTest method testLoadParentFolders.

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void testLoadParentFolders() {
    Folder folder = getFolder();
    Folder folder1 = createFolderWithParent(folder, "folder1");
    Folder folder2 = createFolderWithParent(folder1, "folder2");
    // folder that exists but mustn't be included in actualFolders
    createFolderWithParent(folder1, "folder3");
    List<Folder> expectedFolders = Stream.of(folder, folder1, folder2).collect(Collectors.toList());
    List<FolderWithMetadata> expectedFoldersWithMetadata = createObjectMetadata(expectedFolders);
    List<FolderWithMetadata> actualFoldersWithMetadata = folderDao.loadParentFolders(folder2.getId());
    assertTrue(CollectionUtils.isEqualCollection(actualFoldersWithMetadata, expectedFoldersWithMetadata));
    List<Folder> actualFolders = folderDao.loadFolderWithParents(folder2.getId());
    assertTrue(CollectionUtils.isEqualCollection(actualFolders, expectedFolders));
}
Also used : Folder(com.epam.pipeline.entity.pipeline.Folder) FolderWithMetadata(com.epam.pipeline.entity.metadata.FolderWithMetadata) AbstractSpringTest(com.epam.pipeline.AbstractSpringTest) Test(org.junit.Test) Transactional(org.springframework.transaction.annotation.Transactional)

Example 13 with Folder

use of com.epam.pipeline.entity.pipeline.Folder in project cloud-pipeline by epam.

the class MetadataEntityDaoTest method testCRUDMetadataEntity.

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void testCRUDMetadataEntity() {
    Folder folder = createFolder();
    // metadata entity and metadata class creation
    MetadataClass metadataClass = createMetadataClass(CLASS_NAME_1);
    Map<String, PipeConfValue> data = new LinkedHashMap<>();
    data.put(DATA_KEY_1, new PipeConfValue(DATA_TYPE_1, DATA_VALUE_1));
    MetadataEntity metadataEntity = createMetadataEntity(folder, metadataClass, EXTERNAL_ID_1, data);
    MetadataEntity result = metadataEntityDao.loadAllMetadataEntities().get(0);
    compareMetadata(metadataEntity, result, true);
    // update metadata entity
    metadataEntity.setName(TEST_ENTITY_NAME_2);
    data.put(DATA_KEY_2, new PipeConfValue(DATA_TYPE_2, DATA_VALUE_2));
    metadataEntity.setData(data);
    metadataEntityDao.updateMetadataEntity(metadataEntity);
    MetadataEntity updateResult = metadataEntityDao.loadMetadataEntityById(result.getId());
    Assert.assertEquals(metadataEntity.getName(), updateResult.getName());
    Assert.assertEquals(metadataEntity.getData(), updateResult.getData());
    // update metadata entity data key
    data.put(DATA_KEY_2, new PipeConfValue(DATA_TYPE_1, DATA_VALUE_2));
    metadataEntity.setData(data);
    metadataEntityDao.updateMetadataEntityDataKey(metadataEntity, DATA_KEY_2, DATA_VALUE_2, DATA_TYPE_1);
    MetadataEntity updateKeyResult = metadataEntityDao.loadMetadataEntityByClassNameAndFolderId(metadataEntity.getParent().getId(), metadataEntity.getClassEntity().getName()).get(0);
    Assert.assertEquals(metadataEntity.getData(), updateKeyResult.getData());
    // load metadata entity from root
    MetadataEntity metadataEntityInRoot = new MetadataEntity();
    metadataEntityInRoot.setName(TEST_ENTITY_NAME_3);
    metadataEntityInRoot.setClassEntity(metadataClass);
    metadataEntityInRoot.setExternalId(EXTERNAL_ID_1);
    metadataEntityInRoot.setData(data);
    metadataEntityInRoot.setParent(new Folder());
    metadataEntityDao.createMetadataEntity(metadataEntityInRoot);
    MetadataEntity rootResult = metadataEntityDao.loadRootMetadataEntities().get(0);
    Assert.assertEquals(metadataEntityInRoot.getId(), rootResult.getId());
    Assert.assertEquals(metadataEntityInRoot.getClassEntity().getName(), rootResult.getClassEntity().getName());
    Assert.assertEquals(metadataEntityInRoot.getData(), rootResult.getData());
    // load by external ids
    MetadataEntity entity2 = createMetadataEntity(folder, metadataClass, EXTERNAL_ID_2, data);
    Set<MetadataEntity> existing = metadataEntityDao.loadExisting(folder.getId(), metadataClass.getName(), new HashSet<>(Arrays.asList(EXTERNAL_ID_1, EXTERNAL_ID_2)));
    Assert.assertEquals(new HashSet<>(Arrays.asList(metadataEntity, entity2)), existing);
    // load by inner ids
    Set<MetadataEntity> entitiesByIds = metadataEntityDao.loadByIds(Collections.singleton(entity2.getId()));
    Assert.assertEquals(Collections.singleton(entity2), entitiesByIds);
    // load with folders
    rootResult = metadataEntityDao.loadMetadataEntityWithParents(metadataEntityInRoot.getId());
    Assert.assertEquals(metadataEntityInRoot.getId(), rootResult.getId());
    Assert.assertEquals(metadataEntityInRoot.getData(), rootResult.getData());
    // delete key from metadata entity
    data.clear();
    data.put(DATA_KEY_1, new PipeConfValue(DATA_TYPE_1, DATA_VALUE_1));
    metadataEntity.setData(data);
    metadataEntityDao.deleteMetadataItemKey(metadataEntity.getId(), DATA_KEY_2);
    MetadataEntity deletedKeyResult = metadataEntityDao.loadMetadataEntityById(metadataEntity.getId());
    Assert.assertEquals(metadataEntity.getData(), deletedKeyResult.getData());
    // delete metadata entity
    metadataEntityDao.deleteMetadataEntity(metadataEntity.getId());
    MetadataEntity deletedEntity = metadataEntityDao.loadMetadataEntityById(metadataEntity.getId());
    Assert.assertNull(deletedEntity);
}
Also used : Folder(com.epam.pipeline.entity.pipeline.Folder) Test(org.junit.Test) AbstractSpringTest(com.epam.pipeline.AbstractSpringTest) Transactional(org.springframework.transaction.annotation.Transactional)

Example 14 with Folder

use of com.epam.pipeline.entity.pipeline.Folder in project cloud-pipeline by epam.

the class MetadataEntityDaoTest method shouldInsertCopiesOfExistentMetadataEntities.

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void shouldInsertCopiesOfExistentMetadataEntities() {
    Folder rootFolder = createFolder();
    Folder sourceFolder = createFolder(rootFolder.getId());
    MetadataClass metadataClass1 = createMetadataClass(CLASS_NAME_1);
    MetadataClass metadataClass2 = createMetadataClass(CLASS_NAME_2);
    Map<String, PipeConfValue> data = new HashMap<>();
    MetadataEntity metadataEntity1 = createMetadataEntity(sourceFolder, metadataClass1, EXTERNAL_ID_1, data);
    MetadataEntity metadataEntity2 = createMetadataEntity(sourceFolder, metadataClass2, EXTERNAL_ID_2, data);
    Folder destinationFolder = createFolder(rootFolder.getId());
    metadataEntityDao.insertCopiesOfExistentMetadataEntities(sourceFolder.getId(), destinationFolder.getId());
    List<MetadataEntity> expected = Stream.of(metadataEntity1, metadataEntity2).collect(Collectors.toList());
    List<MetadataEntity> entitiesStoredInSourceFolder = metadataEntityDao.loadAllMetadataEntities().stream().filter(entity -> Objects.equals(entity.getParent().getId(), sourceFolder.getId())).collect(Collectors.toList());
    checkSearchResult(expected, entitiesStoredInSourceFolder);
    expected.forEach(entity -> entity.setParent(destinationFolder));
    List<MetadataEntity> entitiesStoredInDestinationFolder = metadataEntityDao.loadAllMetadataEntities().stream().filter(entity -> Objects.equals(entity.getParent().getId(), destinationFolder.getId())).collect(Collectors.toList());
    Assert.assertEquals(expected.size(), entitiesStoredInDestinationFolder.size());
    Map<String, MetadataEntity> expectedMap = expected.stream().collect(Collectors.toMap(MetadataEntity::getExternalId, Function.identity()));
    entitiesStoredInDestinationFolder.forEach(e -> compareMetadata(expectedMap.get(e.getExternalId()), e, false));
}
Also used : BaseEntity(com.epam.pipeline.entity.BaseEntity) EntityTypeField(com.epam.pipeline.manager.metadata.parser.EntityTypeField) java.util(java.util) Autowired(org.springframework.beans.factory.annotation.Autowired) Test(org.junit.Test) AbstractSpringTest(com.epam.pipeline.AbstractSpringTest) Function(java.util.function.Function) Collectors(java.util.stream.Collectors) Folder(com.epam.pipeline.entity.pipeline.Folder) Stream(java.util.stream.Stream) Propagation(org.springframework.transaction.annotation.Propagation) com.epam.pipeline.entity.metadata(com.epam.pipeline.entity.metadata) ObjectCreatorUtils(com.epam.pipeline.manager.ObjectCreatorUtils) FolderDao(com.epam.pipeline.dao.pipeline.FolderDao) Assert(org.junit.Assert) Transactional(org.springframework.transaction.annotation.Transactional) Folder(com.epam.pipeline.entity.pipeline.Folder) Test(org.junit.Test) AbstractSpringTest(com.epam.pipeline.AbstractSpringTest) Transactional(org.springframework.transaction.annotation.Transactional)

Example 15 with Folder

use of com.epam.pipeline.entity.pipeline.Folder in project cloud-pipeline by epam.

the class MetadataEntityDaoTest method shouldLoadMetadataEntityWithFolders.

@Test
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void shouldLoadMetadataEntityWithFolders() {
    Folder root = createFolder(null);
    root.setParentId(0L);
    Folder folder = createFolder(root.getId());
    folder.setParent(root);
    Folder parent = createFolder(folder.getId());
    parent.setParent(folder);
    MetadataClass metadataClass = createMetadataClass(CLASS_NAME_1);
    Map<String, PipeConfValue> data = new LinkedHashMap<>();
    data.put(DATA_KEY_1, new PipeConfValue(DATA_TYPE_1, DATA_VALUE_1));
    MetadataEntity metadataEntity = createMetadataEntity(parent, metadataClass, EXTERNAL_ID_1, data);
    MetadataEntity result = metadataEntityDao.loadMetadataEntityWithParents(metadataEntity.getId());
    Assert.assertEquals(metadataEntity.getId(), result.getId());
    Assert.assertEquals(metadataEntity.getName(), result.getName());
    Assert.assertEquals(metadataEntity.getParent().getId(), result.getParent().getId());
    Assert.assertEquals(metadataEntity.getExternalId(), result.getExternalId());
    Assert.assertEquals(metadataEntity.getData(), result.getData());
    verifyFolderTree(parent, result.getParent());
}
Also used : Folder(com.epam.pipeline.entity.pipeline.Folder) Test(org.junit.Test) AbstractSpringTest(com.epam.pipeline.AbstractSpringTest) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

Folder (com.epam.pipeline.entity.pipeline.Folder)102 Transactional (org.springframework.transaction.annotation.Transactional)53 Test (org.junit.Test)52 AbstractSpringTest (com.epam.pipeline.AbstractSpringTest)48 EntityVO (com.epam.pipeline.controller.vo.EntityVO)14 AbstractDataStorage (com.epam.pipeline.entity.datastorage.AbstractDataStorage)14 Pipeline (com.epam.pipeline.entity.pipeline.Pipeline)14 MetadataClass (com.epam.pipeline.entity.metadata.MetadataClass)13 RunConfiguration (com.epam.pipeline.entity.configuration.RunConfiguration)11 MetadataEntity (com.epam.pipeline.entity.metadata.MetadataEntity)11 PipeConfValue (com.epam.pipeline.entity.metadata.PipeConfValue)10 AclClass (com.epam.pipeline.entity.security.acl.AclClass)10 Autowired (org.springframework.beans.factory.annotation.Autowired)8 Propagation (org.springframework.transaction.annotation.Propagation)8 MetadataEntityVO (com.epam.pipeline.controller.vo.metadata.MetadataEntityVO)7 PasswordGenerator.generateRandomString (com.epam.pipeline.utils.PasswordGenerator.generateRandomString)6 FolderWithMetadata (com.epam.pipeline.entity.metadata.FolderWithMetadata)5 DataStorageVO (com.epam.pipeline.controller.vo.DataStorageVO)4 AbstractManagerTest (com.epam.pipeline.manager.AbstractManagerTest)4 Collectors (java.util.stream.Collectors)4