1 package org.openecomp.sdc.be.model.jsontitan.operations;
4 import org.junit.After;
5 import org.junit.Before;
6 import org.junit.BeforeClass;
8 import org.junit.runner.RunWith;
9 import org.openecomp.sdc.be.dao.config.TitanSpringConfig;
10 import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
11 import org.openecomp.sdc.be.dao.jsongraph.TitanDao;
12 import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
13 import org.openecomp.sdc.be.model.*;
14 import org.openecomp.sdc.be.model.config.ModelOperationsSpringConfig;
15 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
16 import org.springframework.beans.factory.annotation.Autowired;
17 import org.springframework.test.context.ContextConfiguration;
18 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
20 import java.util.List;
22 import static java.util.Arrays.asList;
23 import static org.assertj.core.api.Assertions.assertThat;
26 @RunWith(SpringJUnit4ClassRunner.class)
27 @ContextConfiguration(classes = {TitanSpringConfig.class, ModelOperationsSpringConfig.class})
28 public class GroupsOperationTest extends ModelTestBase {
31 private GroupsOperation groupsOperation;
37 private ToscaOperationFacade toscaOperationFacade;
38 private Component container;
41 public static void initClass() {
46 public void setUp() throws Exception {
47 container = new Resource();
48 container.setUniqueId(CONTAINER_ID);
49 Either<GraphVertex, TitanOperationStatus> createdCmpt = titanDao.createVertex(createBasicContainerGraphVertex());
50 assertThat(createdCmpt.isLeft()).isTrue();
55 public void tearDown() throws Exception {
60 public void addGroups_whenContainerHasNoGroups_associateContainerWithGroup() {
61 GroupDefinition g1 = createGroupDefinition("g1");
62 GroupDefinition g2 = createGroupDefinition("g2");
63 Either<List<GroupDefinition>, StorageOperationStatus> createGroups = groupsOperation.addGroups(container, asList(g1, g2));
64 assertThat(createGroups.isLeft()).isTrue();
66 ComponentParametersView getGroupsFilter = new ComponentParametersView(true);
67 getGroupsFilter.setIgnoreGroups(false);
68 Component cmptWithGroups = toscaOperationFacade.getToscaElement(CONTAINER_ID, getGroupsFilter).left().value();
69 assertThat(cmptWithGroups.getGroups())
70 .usingElementComparatorOnFields("name", "uniqueId")
71 .containsExactlyInAnyOrder(g1, g2);
75 public void addGroups_whenContainerHasGroups_addTheGivenGroupsToTheGroupsList() {
76 GroupDefinition g1 = createGroupDefinition("g1");
77 GroupDefinition g2 = createGroupDefinition("g2");
78 groupsOperation.addGroups(container, asList(g1, g2)).left().value();
80 GroupDefinition g3 = createGroupDefinition("g3");
81 GroupDefinition g4 = createGroupDefinition("g4");
83 groupsOperation.addGroups(container, asList(g3, g4)).left().value();
85 ComponentParametersView getGroupsFilter = new ComponentParametersView(true);
86 getGroupsFilter.setIgnoreGroups(false);
87 Component cmptWithGroups = toscaOperationFacade.getToscaElement(CONTAINER_ID, getGroupsFilter).left().value();
88 assertThat(cmptWithGroups.getGroups())
89 .usingElementComparatorOnFields("name", "uniqueId")
90 .containsExactlyInAnyOrder(g1, g2, g3, g4);
94 private GroupDefinition createGroupDefinition(String id) {
95 GroupDefinition groupDefinition = new GroupDefinition();
96 groupDefinition.setUniqueId(id);
97 groupDefinition.setName("name" + id);
98 return groupDefinition;