/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
+ * Copyright (C) 2019-2021 Nordix Foundation.
+ * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.models.tosca.simple.concepts;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
import java.time.Duration;
-import java.util.Date;
-
+import java.time.Instant;
import org.junit.Test;
import org.onap.policy.models.base.PfConceptKey;
import org.onap.policy.models.base.PfReferenceKey;
-import org.onap.policy.models.base.PfValidationResult;
-import org.onap.policy.models.tosca.simple.concepts.JpaToscaConstraintLogical.Operation;
-import org.onap.policy.models.tosca.simple.concepts.JpaToscaConstraintLogicalString;
-import org.onap.policy.models.tosca.simple.concepts.JpaToscaEventFilter;
-import org.onap.policy.models.tosca.simple.concepts.JpaToscaTimeInterval;
-import org.onap.policy.models.tosca.simple.concepts.JpaToscaTrigger;
/**
* DAO test for ToscaTrigger.
*/
public class JpaToscaTriggerTest {
+ private static final String KEY_IS_NULL = "key is marked .*on.*ull but is null";
+ private static final String EVENT_TYPE = "EventType";
+ private static final String ACTION = "Action";
+ private static final String A_METHOD = "A Method";
+ private static final String A_DESCRIPTION = "A Description";
+ private static final String VERSION_001 = "0.0.1";
+
@Test
public void testTriggerPojo() {
assertNotNull(new JpaToscaTrigger());
assertNotNull(new JpaToscaTrigger(new PfReferenceKey()));
- assertNotNull(new JpaToscaTrigger(new PfReferenceKey(), "EventType", "Action"));
+ assertNotNull(new JpaToscaTrigger(new PfReferenceKey(), EVENT_TYPE, ACTION));
assertNotNull(new JpaToscaTrigger(new JpaToscaTrigger()));
- try {
- new JpaToscaTrigger((PfReferenceKey) null);
- fail("test should throw an exception");
- } catch (Exception exc) {
- assertEquals("key is marked @NonNull but is null", exc.getMessage());
- }
-
- try {
- new JpaToscaTrigger(null, null, null);
- fail("test should throw an exception");
- } catch (Exception exc) {
- assertEquals("key is marked @NonNull but is null", exc.getMessage());
- }
-
- try {
- new JpaToscaTrigger(null, "EventType", null);
- fail("test should throw an exception");
- } catch (Exception exc) {
- assertEquals("key is marked @NonNull but is null", exc.getMessage());
- }
-
- try {
- new JpaToscaTrigger(null, "EventType", "Action");
- fail("test should throw an exception");
- } catch (Exception exc) {
- assertEquals("key is marked @NonNull but is null", exc.getMessage());
- }
-
- try {
- new JpaToscaTrigger(null, null, "Action");
- fail("test should throw an exception");
- } catch (Exception exc) {
- assertEquals("key is marked @NonNull but is null", exc.getMessage());
- }
-
- try {
- new JpaToscaTrigger(new PfReferenceKey(), null, null);
- fail("test should throw an exception");
- } catch (Exception exc) {
- assertEquals("eventType is marked @NonNull but is null", exc.getMessage());
- }
-
- try {
- new JpaToscaTrigger(new PfReferenceKey(), "EventType", null);
- fail("test should throw an exception");
- } catch (Exception exc) {
- assertEquals("action is marked @NonNull but is null", exc.getMessage());
- }
-
- try {
- new JpaToscaTrigger(new PfReferenceKey(), null, "Action");
- fail("test should throw an exception");
- } catch (Exception exc) {
- assertEquals("eventType is marked @NonNull but is null", exc.getMessage());
- }
-
- try {
- new JpaToscaTrigger((JpaToscaTrigger) null);
- fail("test should throw an exception");
- } catch (Exception exc) {
- assertEquals("copyConcept is marked @NonNull but is null", exc.getMessage());
- }
-
- PfConceptKey tparentKey = new PfConceptKey("tParentKey", "0.0.1");
+ assertThatThrownBy(() -> new JpaToscaTrigger((PfReferenceKey) null)).hasMessageMatching(KEY_IS_NULL);
+
+ assertThatThrownBy(() -> new JpaToscaTrigger(null, null, null)).hasMessageMatching(KEY_IS_NULL);
+
+ assertThatThrownBy(() -> new JpaToscaTrigger(null, EVENT_TYPE, null)).hasMessageMatching(KEY_IS_NULL);
+
+ assertThatThrownBy(() -> new JpaToscaTrigger(null, EVENT_TYPE, ACTION)).hasMessageMatching(KEY_IS_NULL);
+
+ assertThatThrownBy(() -> new JpaToscaTrigger(null, null, ACTION)).hasMessageMatching(KEY_IS_NULL);
+
+ assertThatThrownBy(() -> new JpaToscaTrigger(new PfReferenceKey(), null, null))
+ .hasMessageMatching("eventType is marked .*on.*ull but is null");
+
+ assertThatThrownBy(() -> new JpaToscaTrigger(new PfReferenceKey(), EVENT_TYPE, null))
+ .hasMessageMatching("action is marked .*on.*ull but is null");
+
+ assertThatThrownBy(() -> new JpaToscaTrigger(new PfReferenceKey(), null, ACTION))
+ .hasMessageMatching("eventType is marked .*on.*ull but is null");
+
+ assertThatThrownBy(() -> new JpaToscaTrigger((JpaToscaTrigger) null)).isInstanceOf(NullPointerException.class);
+ }
+
+ @Test
+ public void testTriggerConstraints() {
+ PfConceptKey tparentKey = new PfConceptKey("tParentKey", VERSION_001);
PfReferenceKey tkey = new PfReferenceKey(tparentKey, "trigger0");
- JpaToscaTrigger tdt = new JpaToscaTrigger(tkey, "EventType", "Action");
+ JpaToscaTrigger tdt = new JpaToscaTrigger(tkey, EVENT_TYPE, ACTION);
JpaToscaTimeInterval schedule =
- new JpaToscaTimeInterval(new PfReferenceKey(tkey, "sched"), new Date(), new Date());
+ new JpaToscaTimeInterval(new PfReferenceKey(tkey, "sched"), Instant.now(), Instant.now());
tdt.setSchedule(schedule);
JpaToscaEventFilter targetFilter =
- new JpaToscaEventFilter(new PfReferenceKey(tkey, "filter"), new PfConceptKey("NodeName", "0.0.1"));
+ new JpaToscaEventFilter(new PfReferenceKey(tkey, "filter"), new PfConceptKey("NodeName", VERSION_001));
tdt.setTargetFilter(targetFilter);
- JpaToscaConstraintLogicalString lsc =
- new JpaToscaConstraintLogicalString(new PfReferenceKey(tkey, "sc"), Operation.EQ, "hello");
+ JpaToscaConstraintLogical lsc = new JpaToscaConstraintLogical(JpaToscaConstraintOperation.EQ, "hello");
tdt.setCondition(lsc);
assertEquals(lsc, tdt.getCondition());
tdt.setConstraint(lsc);
tdt.setPeriod(Duration.ZERO);
assertEquals(Duration.ZERO, tdt.getPeriod());
- tdt.setDescription("A Description");
- assertEquals("A Description", tdt.getDescription());
+ tdt.setDescription(A_DESCRIPTION);
+ assertEquals(A_DESCRIPTION, tdt.getDescription());
- tdt.setMethod("A Method");
- assertEquals("A Method", tdt.getMethod());
+ tdt.setMethod(A_METHOD);
+ assertEquals(A_METHOD, tdt.getMethod());
JpaToscaTrigger tdtClone0 = new JpaToscaTrigger(tdt);
- assertEquals(tdt, tdtClone0);
- assertEquals(0, tdt.compareTo(tdtClone0));
+ checkEqualsToscaTriggers(tdt, tdtClone0);
- JpaToscaTrigger tdtClone1 = new JpaToscaTrigger();
- tdt.copyTo(tdtClone1);
- assertEquals(tdt, tdtClone1);
- assertEquals(0, tdt.compareTo(tdtClone1));
+ JpaToscaTrigger tdtClone1 = new JpaToscaTrigger(tdt);
+ checkEqualsToscaTriggers(tdt, tdtClone1);
assertEquals(-1, tdt.compareTo(null));
assertEquals(0, tdt.compareTo(tdt));
- assertFalse(tdt.compareTo(tdt.getKey()) == 0);
+ assertNotEquals(0, tdt.compareTo(tdt.getKey()));
- PfReferenceKey otherDtKey = new PfReferenceKey("otherDt", "0.0.1", "OtherTrigger");
+ PfReferenceKey otherDtKey = new PfReferenceKey("otherDt", VERSION_001, "OtherTrigger");
JpaToscaTrigger otherDt = new JpaToscaTrigger(otherDtKey);
- assertFalse(tdt.compareTo(otherDt) == 0);
+ assertNotEquals(0, tdt.compareTo(otherDt));
otherDt.setKey(tkey);
- assertFalse(tdt.compareTo(otherDt) == 0);
- otherDt.setDescription("A Description");
- assertFalse(tdt.compareTo(otherDt) == 0);
- otherDt.setEventType("EventType");
- assertFalse(tdt.compareTo(otherDt) == 0);
+ assertNotEquals(0, tdt.compareTo(otherDt));
+ otherDt.setDescription(A_DESCRIPTION);
+ assertNotEquals(0, tdt.compareTo(otherDt));
+ otherDt.setEventType(EVENT_TYPE);
+ assertNotEquals(0, tdt.compareTo(otherDt));
otherDt.setSchedule(schedule);
- assertFalse(tdt.compareTo(otherDt) == 0);
+ assertNotEquals(0, tdt.compareTo(otherDt));
otherDt.setTargetFilter(targetFilter);
- assertFalse(tdt.compareTo(otherDt) == 0);
+ assertNotEquals(0, tdt.compareTo(otherDt));
otherDt.setCondition(lsc);
- assertFalse(tdt.compareTo(otherDt) == 0);
+ assertNotEquals(0, tdt.compareTo(otherDt));
otherDt.setConstraint(lsc);
- assertFalse(tdt.compareTo(otherDt) == 0);
+ assertNotEquals(0, tdt.compareTo(otherDt));
otherDt.setPeriod(Duration.ZERO);
- assertFalse(tdt.compareTo(otherDt) == 0);
- otherDt.setMethod("A Method");
- assertFalse(tdt.compareTo(otherDt) == 0);
- otherDt.setAction("Action");
+ assertNotEquals(0, tdt.compareTo(otherDt));
+ otherDt.setMethod(A_METHOD);
+ assertNotEquals(0, tdt.compareTo(otherDt));
+ otherDt.setAction(ACTION);
assertEquals(0, tdt.compareTo(otherDt));
otherDt.setEvaluations(100);
- assertFalse(tdt.compareTo(otherDt) == 0);
+ assertNotEquals(0, tdt.compareTo(otherDt));
otherDt.setEvaluations(0);
assertEquals(0, tdt.compareTo(otherDt));
- try {
- tdt.copyTo(null);
- fail("test should throw an exception");
- } catch (Exception exc) {
- assertEquals("target is marked @NonNull but is null", exc.getMessage());
- }
-
- assertEquals(6, tdt.getKeys().size());
+ assertEquals(4, tdt.getKeys().size());
assertEquals(1, new JpaToscaTrigger().getKeys().size());
+ }
+
+ @Test
+ public void testCloneToscaTrigger() {
+ PfConceptKey tparentKey = new PfConceptKey("tParentKey", VERSION_001);
+ PfReferenceKey tkey = new PfReferenceKey(tparentKey, "trigger0");
+ JpaToscaTrigger tdt = new JpaToscaTrigger(tkey, EVENT_TYPE, ACTION);
+
+ JpaToscaTrigger tdtClone0 = new JpaToscaTrigger(tdt);
new JpaToscaTrigger().clean();
tdt.clean();
assertEquals(tdtClone0, tdt);
- assertFalse(new JpaToscaTrigger().validate(new PfValidationResult()).isValid());
- assertTrue(tdt.validate(new PfValidationResult()).isValid());
+ assertFalse(new JpaToscaTrigger().validate("").isValid());
+ assertTrue(tdt.validate("").isValid());
tdt.setDescription(null);
- assertTrue(tdt.validate(new PfValidationResult()).isValid());
+ assertTrue(tdt.validate("").isValid());
tdt.setDescription("");
- assertFalse(tdt.validate(new PfValidationResult()).isValid());
- tdt.setDescription("A Description");
- assertTrue(tdt.validate(new PfValidationResult()).isValid());
+ assertFalse(tdt.validate("").isValid());
+ tdt.setDescription(A_DESCRIPTION);
+ assertTrue(tdt.validate("").isValid());
tdt.setEvaluations(-1);
- assertFalse(tdt.validate(new PfValidationResult()).isValid());
+ assertFalse(tdt.validate("").isValid());
tdt.setEvaluations(100);
- assertTrue(tdt.validate(new PfValidationResult()).isValid());
+ assertTrue(tdt.validate("").isValid());
tdt.setMethod(null);
- assertTrue(tdt.validate(new PfValidationResult()).isValid());
+ assertTrue(tdt.validate("").isValid());
tdt.setMethod("");
- assertFalse(tdt.validate(new PfValidationResult()).isValid());
- tdt.setMethod("A Method");
- assertTrue(tdt.validate(new PfValidationResult()).isValid());
-
- try {
- tdt.validate(null);
- fail("test should throw an exception");
- } catch (Exception exc) {
- assertEquals("resultIn is marked @NonNull but is null", exc.getMessage());
- }
+ assertFalse(tdt.validate("").isValid());
+ tdt.setMethod(A_METHOD);
+ assertTrue(tdt.validate("").isValid());
+
+ assertThatThrownBy(() -> tdt.validate(null)).hasMessageMatching("fieldName is marked .*on.*ull but is null");
+ }
+
+ private void checkEqualsToscaTriggers(JpaToscaTrigger tdt1, JpaToscaTrigger tdt2) {
+ assertEquals(tdt1, tdt2);
+ assertEquals(0, tdt1.compareTo(tdt2));
}
}