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());
}
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));
}
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);
}
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));
}
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());
}
Aggregations