Search in sources :

Example 21 with ParameterValue

use of org.ligoj.app.model.ParameterValue in project ligoj-api by ligoj.

the class ToVoConverterTest method apply.

@Test
public void apply() {
    // Sub user repository
    final IamProvider iamProvider = Mockito.mock(IamProvider.class);
    final IUserRepository userRepository = Mockito.mock(IUserRepository.class);
    final IamConfiguration configuration = new IamConfiguration();
    configuration.setUserRepository(userRepository);
    Mockito.when(iamProvider.getConfiguration()).thenReturn(configuration);
    Mockito.when(userRepository.findById(ArgumentMatchers.anyString())).then(invocation -> toUser((String) invocation.getArguments()[0]));
    // Stub subscriptions
    final List<Object[]> subscriptions = new ArrayList<>();
    final Parameter parameter1 = new Parameter();
    parameter1.setId(IdentityResource.PARAMETER_GROUP);
    parameter1.setType(ParameterType.TEXT);
    parameter1.setOwner(new Node());
    final Parameter parameter2 = new Parameter();
    parameter2.setId(IdentityResource.PARAMETER_GROUP);
    parameter2.setType(ParameterType.TEXT);
    parameter2.setOwner(new Node());
    final Parameter parameter3 = new Parameter();
    parameter3.setId("any");
    parameter3.setType(ParameterType.TEXT);
    parameter3.setOwner(new Node());
    final ParameterValue value1 = new ParameterValue();
    value1.setId(1);
    value1.setParameter(parameter1);
    value1.setData("G");
    final ParameterValue value2 = new ParameterValue();
    value2.setId(2);
    value2.setParameter(parameter2);
    value2.setData("any");
    final ParameterValue value3 = new ParameterValue();
    value3.setId(3);
    value3.setParameter(parameter3);
    value3.setData("any");
    final Subscription subscription = new Subscription();
    subscription.setId(1);
    final Node node = new Node();
    node.setId("service:n2");
    subscription.setNode(node);
    subscriptions.add(new Object[] { subscription, value1 });
    subscriptions.add(new Object[] { subscription, value2 });
    subscriptions.add(new Object[] { subscription, value3 });
    // Subscription without status
    final Subscription subscription2 = new Subscription();
    subscription2.setId(-1);
    final Node node2 = new Node();
    node2.setId("service:n1");
    subscription2.setNode(node2);
    subscriptions.add(new Object[] { subscription2, value3 });
    // Stub events
    final Map<Integer, EventVo> events = new HashMap<>();
    final EventVo event = new EventVo();
    event.setSubscription(1);
    event.setNode(new NodeVo());
    event.setValue("UP");
    events.put(1, event);
    // Call
    final ToVoConverter converter = new ToVoConverter(this::toUser, subscriptions, events);
    final Project entity = new Project();
    entity.setId(1);
    entity.setName("N");
    entity.setDescription("D");
    entity.setLastModifiedBy("U1");
    entity.setLastModifiedDate(new Date());
    entity.setCreatedBy("U2");
    entity.setCreatedDate(new Date());
    entity.setPkey("PK");
    entity.setTeamLeader("U3");
    entity.setSubscriptions(Arrays.asList(new Subscription[] { subscription, subscription2 }));
    final ProjectVo vo = converter.apply(entity);
    // Check
    Assertions.assertEquals("N", vo.getName());
    Assertions.assertEquals("D", vo.getDescription());
    Assertions.assertEquals("PK", vo.getPkey());
    Assertions.assertEquals("U2", vo.getCreatedBy().getId());
    Assertions.assertNotNull(vo.getCreatedDate());
    Assertions.assertEquals("U1", vo.getLastModifiedBy().getId());
    Assertions.assertNotNull(vo.getLastModifiedDate());
    Assertions.assertEquals("U3", vo.getTeamLeader().getId());
    Assertions.assertEquals(1, vo.getId().intValue());
    Assertions.assertEquals(2, vo.getSubscriptions().size());
    // Check the statuses and their order by node
    final List<SubscriptionVo> subscriptionsVo = vo.getSubscriptions();
    Assertions.assertNull(subscriptionsVo.get(0).getStatus());
    Assertions.assertEquals("service:n1", subscriptionsVo.get(0).getNode().getId());
    Assertions.assertEquals(NodeStatus.UP, subscriptionsVo.get(1).getStatus());
    Assertions.assertEquals("service:n2", subscriptionsVo.get(1).getNode().getId());
}
Also used : ParameterValue(org.ligoj.app.model.ParameterValue) HashMap(java.util.HashMap) Node(org.ligoj.app.model.Node) ArrayList(java.util.ArrayList) IUserRepository(org.ligoj.app.iam.IUserRepository) IamProvider(org.ligoj.app.iam.IamProvider) Date(java.util.Date) Project(org.ligoj.app.model.Project) Parameter(org.ligoj.app.model.Parameter) IamConfiguration(org.ligoj.app.iam.IamConfiguration) Subscription(org.ligoj.app.model.Subscription) SubscriptionVo(org.ligoj.app.resource.subscription.SubscriptionVo) NodeVo(org.ligoj.app.api.NodeVo) EventVo(org.ligoj.app.resource.node.EventVo) Test(org.junit.jupiter.api.Test)

Example 22 with ParameterValue

use of org.ligoj.app.model.ParameterValue in project ligoj-api by ligoj.

the class ToVoConverter method apply.

@Override
public ProjectVo apply(final Project entity) {
    final ProjectVo vo = new ProjectVo();
    vo.copyAuditData(entity, userConverter);
    DescribedBean.copy(entity, vo);
    vo.setPkey(entity.getPkey());
    vo.setTeamLeader(userConverter.apply(entity.getTeamLeader()));
    // Build the subscriptions
    final Map<Integer, SubscriptionVo> subscriptions = new TreeMap<>();
    for (final Object[] resultSet : this.subscriptionsAndParam) {
        // Add subscription value
        final ParameterValue parameterValue = (ParameterValue) resultSet[1];
        addVo(subscriptions, (Subscription) resultSet[0]).getParameters().put(parameterValue.getParameter().getId(), ParameterValueResource.parseValue(parameterValue, new ParameterValueVo()));
    }
    // Merge with subscription without parameters
    entity.getSubscriptions().forEach(s -> addVo(subscriptions, s));
    // Return the subscription to order by the related node
    vo.setSubscriptions(subscriptions.values().stream().sorted(Comparator.comparing(s -> s.getNode().getId(), String::compareTo)).collect(Collectors.toList()));
    return vo;
}
Also used : ParameterValueResource(org.ligoj.app.resource.node.ParameterValueResource) NodeStatus(org.ligoj.app.api.NodeStatus) SubscriptionVo(org.ligoj.app.resource.subscription.SubscriptionVo) HashMap(java.util.HashMap) EventVo(org.ligoj.app.resource.node.EventVo) Function(java.util.function.Function) Collectors(java.util.stream.Collectors) ParameterValueVo(org.ligoj.app.resource.node.ParameterValueVo) List(java.util.List) NodeResource(org.ligoj.app.resource.node.NodeResource) TreeMap(java.util.TreeMap) Map(java.util.Map) UserOrg(org.ligoj.app.iam.UserOrg) Subscription(org.ligoj.app.model.Subscription) Comparator(java.util.Comparator) ParameterValue(org.ligoj.app.model.ParameterValue) Project(org.ligoj.app.model.Project) DescribedBean(org.ligoj.bootstrap.core.DescribedBean) ParameterValueVo(org.ligoj.app.resource.node.ParameterValueVo) ParameterValue(org.ligoj.app.model.ParameterValue) TreeMap(java.util.TreeMap) SubscriptionVo(org.ligoj.app.resource.subscription.SubscriptionVo)

Example 23 with ParameterValue

use of org.ligoj.app.model.ParameterValue in project ligoj-api by ligoj.

the class ParameterValueResourceTest method createIntegerNoConstraint.

@Test
public void createIntegerNoConstraint() {
    final ParameterValueCreateVo parameterValue = new ParameterValueCreateVo();
    parameterValue.setParameter(parameterRepository.findOne("c_19").getId());
    parameterValue.setInteger(-100);
    final ParameterValue entity = resource.createInternal(parameterValue);
    Assertions.assertEquals(parameterValue.getParameter(), entity.getParameter().getId());
    Assertions.assertEquals("-100", entity.getData());
}
Also used : ParameterValue(org.ligoj.app.model.ParameterValue) AbstractAppTest(org.ligoj.app.AbstractAppTest) Test(org.junit.jupiter.api.Test)

Example 24 with ParameterValue

use of org.ligoj.app.model.ParameterValue in project ligoj-api by ligoj.

the class ParameterValueResourceTest method findMultiple.

@Test
public void findMultiple() {
    final Parameter parameter = parameterRepository.findOne("c_23");
    final ParameterValue parameterValueEntity = newParameterValue("[0,2]", parameter);
    em.persist(parameterValueEntity);
    em.flush();
    final ParameterValueVo valueVo = resource.toVo(parameterValueEntity);
    Assertions.assertEquals(parameter.getId(), valueVo.getParameter().getId());
    Assertions.assertEquals("[0, 2]", valueVo.getSelections().toString());
    Assertions.assertNotNull(valueVo.getCreatedDate());
    Assertions.assertNotNull(valueVo.getCreatedBy());
}
Also used : ParameterValue(org.ligoj.app.model.ParameterValue) Parameter(org.ligoj.app.model.Parameter) AbstractAppTest(org.ligoj.app.AbstractAppTest) Test(org.junit.jupiter.api.Test)

Example 25 with ParameterValue

use of org.ligoj.app.model.ParameterValue in project ligoj-api by ligoj.

the class ParameterValueResourceTest method toMapValues.

@Test
public void toMapValues() {
    final List<ParameterValue> values = new ArrayList<>();
    final Parameter p1 = new Parameter();
    p1.setId("p1");
    final Parameter p2 = new Parameter();
    p2.setId("p2");
    values.add(newParameterValue("u1", p1));
    values.add(newParameterValue("u2", p2));
    final Map<String, String> valuesAsMap = resource.toMapValues(values);
    Assertions.assertEquals(2, valuesAsMap.size());
    Assertions.assertEquals("u1", valuesAsMap.get("p1"));
    Assertions.assertEquals("u2", valuesAsMap.get("p2"));
}
Also used : ParameterValue(org.ligoj.app.model.ParameterValue) ArrayList(java.util.ArrayList) Parameter(org.ligoj.app.model.Parameter) AbstractAppTest(org.ligoj.app.AbstractAppTest) Test(org.junit.jupiter.api.Test)

Aggregations

ParameterValue (org.ligoj.app.model.ParameterValue)35 Test (org.junit.jupiter.api.Test)28 AbstractAppTest (org.ligoj.app.AbstractAppTest)27 Parameter (org.ligoj.app.model.Parameter)16 ArrayList (java.util.ArrayList)7 Node (org.ligoj.app.model.Node)6 HashMap (java.util.HashMap)5 Subscription (org.ligoj.app.model.Subscription)4 Date (java.util.Date)3 List (java.util.List)3 Map (java.util.Map)3 Function (java.util.function.Function)3 Collectors (java.util.stream.Collectors)3 NodeStatus (org.ligoj.app.api.NodeStatus)3 NodeVo (org.ligoj.app.api.NodeVo)3 Collection (java.util.Collection)2 Entry (java.util.Map.Entry)2 Optional (java.util.Optional)2 BiFunction (java.util.function.BiFunction)2 CacheRemoveAll (javax.cache.annotation.CacheRemoveAll)2