From b0bb6076e2298c7a016a00adcaefb7ed75eac641 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Thu, 4 Apr 2019 11:20:42 -0400 Subject: Updates to models from scrum on 4/4 Moved ToscaPolicyIdentXxx classes from models-pdp to models-tosca, and added methods to retrieve them from a ToscaPolicy. Removed version and instance fields from PdpStatus. Chose to leave "description" field in the PAP/PDP messages. The PDPs can ignore them or leave them null. In a PdpUpdate message, the description will be the description associated with the PdpGroup. In a PdpStatus message, the PDP could choose to provide a description of the PDP, itself (or the type of PDP). Added comments to that effect. Moved name, group, and subgroup fields into PdpMessage. Fixed typos in comments. Updated licenses. Change "long" to "Long" in PdpUpdate. Use lombok @ToString instead of override. Fixed merge conflict. Change-Id: Icd928f9a7630b838ad4b0b5556e899dc21b7872b Issue-ID: POLICY-1542 Signed-off-by: Jim Hahn --- .../policy/models/pdp/concepts/PdpGroupFilter.java | 2 + .../policy/models/pdp/concepts/PdpMessage.java | 34 ++++++++- .../policy/models/pdp/concepts/PdpStateChange.java | 10 +-- .../onap/policy/models/pdp/concepts/PdpStatus.java | 16 ++--- .../policy/models/pdp/concepts/PdpSubGroup.java | 2 + .../onap/policy/models/pdp/concepts/PdpUpdate.java | 16 ++--- .../models/pdp/concepts/ToscaPolicyIdentifier.java | 50 ------------- .../concepts/ToscaPolicyIdentifierOptVersion.java | 58 ---------------- .../pdp/concepts/ToscaPolicyTypeIdentifier.java | 50 ------------- .../pdp/persistence/concepts/JpaPdpSubGroup.java | 7 +- .../models/pdp/concepts/PdpMessageUtils.java | 31 +++++++++ .../policy/models/pdp/concepts/TestModels.java | 2 +- .../policy/models/pdp/concepts/TestPdpMessage.java | 57 +++++++++++++++ .../models/pdp/concepts/TestPdpStateChange.java | 7 +- .../models/pdp/concepts/TestPdpSubGroup.java | 2 + .../policy/models/pdp/concepts/TestPdpUpdate.java | 14 ++-- .../pdp/concepts/TestToscaPolicyIdentifier.java | 62 ----------------- .../TestToscaPolicyIdentifierOptVersion.java | 71 ------------------- .../concepts/TestToscaPolicyTypeIdentifier.java | 63 ----------------- .../pdp/concepts/ToscaIdentifierTestBase.java | 81 ---------------------- .../persistence/provider/PdpProviderTest.java | 14 +--- 21 files changed, 156 insertions(+), 493 deletions(-) delete mode 100644 models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/ToscaPolicyIdentifier.java delete mode 100644 models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/ToscaPolicyIdentifierOptVersion.java delete mode 100644 models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/ToscaPolicyTypeIdentifier.java create mode 100644 models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpMessageUtils.java create mode 100644 models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpMessage.java delete mode 100644 models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestToscaPolicyIdentifier.java delete mode 100644 models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestToscaPolicyIdentifierOptVersion.java delete mode 100644 models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestToscaPolicyTypeIdentifier.java delete mode 100644 models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/ToscaIdentifierTestBase.java (limited to 'models-pdp') diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpGroupFilter.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpGroupFilter.java index f7a47ccd7..b49bedefe 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpGroupFilter.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpGroupFilter.java @@ -29,6 +29,8 @@ import lombok.NonNull; import org.onap.policy.models.base.PfObjectFiler; import org.onap.policy.models.pdp.enums.PdpState; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier; /** * Filter class for searches for {@link PdpGroup} instances. diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpMessage.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpMessage.java index 6160027ed..a48724e34 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpMessage.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpMessage.java @@ -29,7 +29,8 @@ import lombok.ToString; import org.onap.policy.models.pdp.enums.PdpMessageType; /** - * Class to represent the base class for various messages that will ve exchanged between PAP and PDP. + * Class to represent the base class for various messages that will be exchanged between + * PAP and PDP. * * @author Ram Krishna Verma (ram.krishna.verma@est.tech) */ @@ -49,6 +50,24 @@ public class PdpMessage { */ private long timestampMs = System.currentTimeMillis(); + /** + * PDP name, or {@code null} for state-change broadcast messages. + */ + private String name; + + /** + * Group associated with the PDP. For state-change messages, this may be {@code null}, + * if the {@link #name} is provided. + */ + private String pdpGroup; + + /** + * Group associated with the PDP. For state-change messages, this may be {@code null}, + * if the {@link #name} is provided. + */ + private String pdpSubgroup; + + /** * Constructor for instantiating PdpMessage class with message name. * @@ -57,4 +76,17 @@ public class PdpMessage { public PdpMessage(final PdpMessageType messageName) { this.messageName = messageName; } + + /** + * Constructs the object, making a deep copy. Does not copy the request id or + * the time stamp. + * + * @param source source from which to copy + */ + public PdpMessage(final PdpMessage source) { + this.messageName = source.messageName; + this.name = source.name; + this.pdpGroup = source.pdpGroup; + this.pdpSubgroup = source.pdpSubgroup; + } } diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStateChange.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStateChange.java index d8f938bbc..fe953cb65 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStateChange.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStateChange.java @@ -35,13 +35,10 @@ import org.onap.policy.models.pdp.enums.PdpState; */ @Getter @Setter -@ToString +@ToString(callSuper = true) public class PdpStateChange extends PdpMessage { - private String name; private PdpState state; - private String pdpGroup; - private String pdpSubgroup; /** * Constructor for instantiating PdpStateChange class with message name. @@ -57,11 +54,8 @@ public class PdpStateChange extends PdpMessage { * @param source source from which to copy */ public PdpStateChange(PdpStateChange source) { - super(PdpMessageType.PDP_STATE_CHANGE); + super(source); - this.name = source.name; this.state = source.state; - this.pdpGroup = source.pdpGroup; - this.pdpSubgroup = source.pdpSubgroup; } } diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java index d0fef4503..5858b6acd 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpStatus.java @@ -22,14 +22,14 @@ package org.onap.policy.models.pdp.concepts; import java.util.List; - import lombok.Getter; import lombok.Setter; import lombok.ToString; - import org.onap.policy.models.pdp.enums.PdpHealthStatus; import org.onap.policy.models.pdp.enums.PdpMessageType; import org.onap.policy.models.pdp.enums.PdpState; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier; /** * Class to represent the PDP_STATUS message that all the PDP's will send to PAP. @@ -38,20 +38,20 @@ import org.onap.policy.models.pdp.enums.PdpState; */ @Getter @Setter -@ToString +@ToString(callSuper = true) public class PdpStatus extends PdpMessage { - private String name; - private String version; private String pdpType; private PdpState state; private PdpHealthStatus healthy; + + /** + * Description of the PDP or the PDP type. May be left {@code null}. + */ private String description; - private String pdpGroup; - private String pdpSubgroup; + private List supportedPolicyTypes; private List policies; - private String instance; private String deploymentInstanceInfo; private String properties; private PdpStatistics statistics; diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpSubGroup.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpSubGroup.java index b4f469388..4e5843678 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpSubGroup.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpSubGroup.java @@ -31,6 +31,8 @@ import lombok.Setter; import lombok.ToString; import org.onap.policy.models.base.PfUtils; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier; /** * Class to represent a group of all PDP's of the same pdp type running for a particular domain. diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpUpdate.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpUpdate.java index 200515cc4..a28bd7640 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpUpdate.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/PdpUpdate.java @@ -36,14 +36,15 @@ import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; */ @Getter @Setter -@ToString +@ToString(callSuper = true) public class PdpUpdate extends PdpMessage { - private String name; + /** + * Description of the PDP group. + */ private String description; - private String pdpGroup; - private String pdpSubgroup; - private long pdpHeartbeatIntervalMs; + + private Long pdpHeartbeatIntervalMs; private List policies; /** @@ -60,12 +61,9 @@ public class PdpUpdate extends PdpMessage { * @param source source from which to copy */ public PdpUpdate(PdpUpdate source) { - super(PdpMessageType.PDP_UPDATE); + super(source); - this.name = source.name; this.description = source.description; - this.pdpGroup = source.pdpGroup; - this.pdpSubgroup = source.pdpSubgroup; this.pdpHeartbeatIntervalMs = source.pdpHeartbeatIntervalMs; this.policies = (source.policies == null ? null : source.policies.stream().map(ToscaPolicy::new).collect(Collectors.toList())); diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/ToscaPolicyIdentifier.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/ToscaPolicyIdentifier.java deleted file mode 100644 index 245806c71..000000000 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/ToscaPolicyIdentifier.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP Policy Models - * ================================================================================ - * Copyright (C) 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.pdp.concepts; - -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.NonNull; - -/** - * Identifies a policy. Both the name and version must be non-null. - */ -@Data -@NoArgsConstructor -public class ToscaPolicyIdentifier { - - @NonNull - private String name; - - @NonNull - private String version; - - - public ToscaPolicyIdentifier(@NonNull String name, @NonNull String version) { - this.name = name; - this.version = version; - } - - public ToscaPolicyIdentifier(ToscaPolicyIdentifier source) { - this.name = source.name; - this.version = source.version; - } -} diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/ToscaPolicyIdentifierOptVersion.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/ToscaPolicyIdentifierOptVersion.java deleted file mode 100644 index bd6b26ede..000000000 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/ToscaPolicyIdentifierOptVersion.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP Policy Models - * ================================================================================ - * Copyright (C) 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.pdp.concepts; - -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.NonNull; - -/** - * Policy identifier with an optional version; only the "name" is required. - */ -@Data -@NoArgsConstructor -public class ToscaPolicyIdentifierOptVersion { - - @NonNull - private String name; - - private String version; - - - public ToscaPolicyIdentifierOptVersion(@NonNull String name, String version) { - this.name = name; - this.version = version; - } - - public ToscaPolicyIdentifierOptVersion(ToscaPolicyIdentifierOptVersion source) { - this.name = source.name; - this.version = source.version; - } - - /** - * Determines if the version is null/missing. - * - * @return {@code true} if the version is null/missing, {@code false} - */ - public boolean isNullVersion() { - return (version == null); - } -} diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/ToscaPolicyTypeIdentifier.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/ToscaPolicyTypeIdentifier.java deleted file mode 100644 index cf989f3ae..000000000 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/concepts/ToscaPolicyTypeIdentifier.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP Policy Models - * ================================================================================ - * Copyright (C) 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.pdp.concepts; - -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.NonNull; - -/** - * Identifies a policy type. Both the name and version must be non-null. - */ -@Data -@NoArgsConstructor -public class ToscaPolicyTypeIdentifier { - - @NonNull - private String name; - - @NonNull - private String version; - - - public ToscaPolicyTypeIdentifier(@NonNull String name, @NonNull String version) { - this.name = name; - this.version = version; - } - - public ToscaPolicyTypeIdentifier(ToscaPolicyTypeIdentifier source) { - this.name = source.name; - this.version = source.version; - } -} diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/concepts/JpaPdpSubGroup.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/concepts/JpaPdpSubGroup.java index 2a9343902..1937cbfbb 100644 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/concepts/JpaPdpSubGroup.java +++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/concepts/JpaPdpSubGroup.java @@ -28,7 +28,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; - import javax.persistence.CollectionTable; import javax.persistence.Column; import javax.persistence.ElementCollection; @@ -39,11 +38,9 @@ import javax.persistence.InheritanceType; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.Table; - import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NonNull; - import org.onap.policy.common.utils.validation.Assertions; import org.onap.policy.common.utils.validation.ParameterValidationUtils; import org.onap.policy.models.base.PfAuthorative; @@ -58,8 +55,8 @@ import org.onap.policy.models.base.PfValidationResult; import org.onap.policy.models.base.PfValidationResult.ValidationResult; import org.onap.policy.models.pdp.concepts.Pdp; import org.onap.policy.models.pdp.concepts.PdpSubGroup; -import org.onap.policy.models.pdp.concepts.ToscaPolicyIdentifier; -import org.onap.policy.models.pdp.concepts.ToscaPolicyTypeIdentifier; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier; /** * Class to represent a PDP subgroup in the database. diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpMessageUtils.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpMessageUtils.java new file mode 100644 index 000000000..ee7e15b6a --- /dev/null +++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/PdpMessageUtils.java @@ -0,0 +1,31 @@ +/* + * ============LICENSE_START======================================================= + * ONAP Policy Models + * ================================================================================ + * Copyright (C) 2019 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.models.pdp.concepts; + +/** + * Utility class for tests of PdpMessage subclasses. + */ +public class PdpMessageUtils { + + public static String removeVariableFields(String text) { + return text.replaceAll("requestId=[^,]*", "requestId=xxx").replaceAll("timestampMs=[^,]*", "timestampMs=nnn"); + } +} diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestModels.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestModels.java index 39aee6f48..1813dde7d 100644 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestModels.java +++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestModels.java @@ -38,7 +38,7 @@ import org.onap.policy.common.utils.validation.ToStringTester; public class TestModels { @Test - public void testPapModels() { + public void testPdpModels() { final Validator validator = ValidatorBuilder.create().with(new ToStringTester()).with(new SetterTester()) .with(new GetterTester()).build(); validator.validate(TestModels.class.getPackage().getName(), new FilterPackageInfo()); diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpMessage.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpMessage.java new file mode 100644 index 000000000..515c48385 --- /dev/null +++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpMessage.java @@ -0,0 +1,57 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP Policy Models + * ================================================================================ + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2019 Nordix Foundation. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.models.pdp.concepts; + +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.onap.policy.models.pdp.enums.PdpMessageType; + +/** + * Test the copy constructor, as {@link TestModels} tests the other methods. + */ +public class TestPdpMessage { + + @Test + public void testCopyConstructor() { + assertThatThrownBy(() -> new PdpMessage((PdpMessage) null)).isInstanceOf(NullPointerException.class); + + PdpMessage orig = new PdpMessage(PdpMessageType.PDP_STATE_CHANGE); + + // verify with null values + PdpMessage newmsg = new PdpMessage(orig); + newmsg.setRequestId(orig.getRequestId()); + newmsg.setTimestampMs(orig.getTimestampMs()); + assertEquals(orig.toString(), newmsg.toString()); + + // verify with all values + orig.setName("my-name"); + orig.setPdpGroup("my-group"); + orig.setPdpSubgroup("my-subgroup"); + + newmsg = new PdpMessage(orig); + newmsg.setRequestId(orig.getRequestId()); + newmsg.setTimestampMs(orig.getTimestampMs()); + assertEquals(orig.toString(), newmsg.toString()); + } +} diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpStateChange.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpStateChange.java index 8c843a1ac..55eaedc26 100644 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpStateChange.java +++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpStateChange.java @@ -23,6 +23,7 @@ package org.onap.policy.models.pdp.concepts; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertEquals; +import static org.onap.policy.models.pdp.concepts.PdpMessageUtils.removeVariableFields; import org.junit.Test; import org.onap.policy.models.pdp.enums.PdpState; @@ -39,8 +40,7 @@ public class TestPdpStateChange { PdpStateChange orig = new PdpStateChange(); // verify with null values - assertEquals("PdpStateChange(name=null, state=null, pdpGroup=null, pdpSubgroup=null)", - new PdpStateChange(orig).toString()); + assertEquals(removeVariableFields(orig.toString()), removeVariableFields(new PdpStateChange(orig).toString())); // verify with all values orig.setName("my-name"); @@ -48,7 +48,6 @@ public class TestPdpStateChange { orig.setPdpSubgroup("my-subgroup"); orig.setState(PdpState.SAFE); - assertEquals("PdpStateChange(name=my-name, state=SAFE, pdpGroup=my-group, pdpSubgroup=my-subgroup)", - new PdpStateChange(orig).toString()); + assertEquals(removeVariableFields(orig.toString()), removeVariableFields(new PdpStateChange(orig).toString())); } } diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpSubGroup.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpSubGroup.java index 2580ca829..c80745d76 100644 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpSubGroup.java +++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpSubGroup.java @@ -29,6 +29,8 @@ import java.util.Map; import java.util.TreeMap; import org.junit.Test; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyIdentifier; +import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier; /** * Test the copy constructor, as {@link TestModels} tests the other methods. diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpUpdate.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpUpdate.java index d2b571f34..b366088d1 100644 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpUpdate.java +++ b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestPdpUpdate.java @@ -24,6 +24,7 @@ package org.onap.policy.models.pdp.concepts; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import static org.onap.policy.models.pdp.concepts.PdpMessageUtils.removeVariableFields; import java.util.Arrays; import java.util.List; @@ -42,15 +43,14 @@ public class TestPdpUpdate { PdpUpdate orig = new PdpUpdate(); // verify with null values - assertEquals("PdpUpdate(name=null, description=null, pdpGroup=null, pdpSubgroup=null, " - + "pdpHeartbeatIntervalMs=0, policies=null)", new PdpUpdate(orig).toString()); + assertEquals(removeVariableFields(orig.toString()), removeVariableFields(new PdpUpdate(orig).toString())); // verify with all values orig.setDescription("my-description"); orig.setName("my-name"); orig.setPdpGroup("my-group"); orig.setPdpSubgroup("my-subgroup"); - orig.setPdpHeartbeatIntervalMs(30000); + orig.setPdpHeartbeatIntervalMs(30000L); ToscaPolicy policy1 = new ToscaPolicy(); policy1.setName("policy-a"); @@ -65,13 +65,7 @@ public class TestPdpUpdate { PdpUpdate other = new PdpUpdate(orig); - assertEquals("PdpUpdate(name=my-name, description=my-description, " - + "pdpGroup=my-group, pdpSubgroup=my-subgroup, pdpHeartbeatIntervalMs=30000, policies=[" - + "ToscaPolicy(super=ToscaEntity(name=policy-a, version=1.2.3, derivedFrom=null, " - + "metadata=null, description=null), type=null, typeVersion=null, properties=null), " - + "ToscaPolicy(super=ToscaEntity(name=policy-b, version=4.5.6, derivedFrom=null, " - + "metadata=null, description=null), type=null, typeVersion=null, properties=null)])", - other.toString()); + assertEquals(removeVariableFields(orig.toString()), removeVariableFields(other.toString())); // ensure list and items are not the same object assertTrue(other.getPolicies() != policies); diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestToscaPolicyIdentifier.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestToscaPolicyIdentifier.java deleted file mode 100644 index 7a09e9d44..000000000 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestToscaPolicyIdentifier.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP Policy Models - * ================================================================================ - * Copyright (C) 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.pdp.concepts; - -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -/** - * Test the other constructors, as {@link TestModels} tests the other methods. - */ -public class TestToscaPolicyIdentifier extends ToscaIdentifierTestBase { - private static final String NAME = "my-name"; - private static final String VERSION = "1.2.3"; - - public TestToscaPolicyIdentifier() { - super(ToscaPolicyIdentifier.class); - } - - @Test - public void testAllArgsConstructor() { - assertThatThrownBy(() -> new ToscaPolicyIdentifier(null, VERSION)).isInstanceOf(NullPointerException.class); - assertThatThrownBy(() -> new ToscaPolicyIdentifier(NAME, null)).isInstanceOf(NullPointerException.class); - - ToscaPolicyIdentifier orig = new ToscaPolicyIdentifier(NAME, VERSION); - assertEquals(NAME, orig.getName()); - assertEquals(VERSION, orig.getVersion()); - } - - @Test - public void testCopyConstructor() { - assertThatThrownBy(() -> new ToscaPolicyIdentifier(null)).isInstanceOf(NullPointerException.class); - - ToscaPolicyIdentifier orig = new ToscaPolicyIdentifier(); - - // verify with null values - assertEquals(orig.toString(), new ToscaPolicyIdentifier(orig).toString()); - - // verify with all values - orig = new ToscaPolicyIdentifier(NAME, VERSION); - assertEquals(orig.toString(), new ToscaPolicyIdentifier(orig).toString()); - } -} diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestToscaPolicyIdentifierOptVersion.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestToscaPolicyIdentifierOptVersion.java deleted file mode 100644 index c4e9278eb..000000000 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestToscaPolicyIdentifierOptVersion.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP Policy Models - * ================================================================================ - * Copyright (C) 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.pdp.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.assertTrue; - -import org.junit.Test; - -/** - * Test the other constructors, as {@link TestModels} tests the other methods. - */ -public class TestToscaPolicyIdentifierOptVersion extends ToscaIdentifierTestBase { - private static final String NAME = "my-name"; - private static final String VERSION = "1.2.3"; - - public TestToscaPolicyIdentifierOptVersion() { - super(ToscaPolicyIdentifierOptVersion.class); - } - - @Test - public void testAllArgsConstructor_testIsNullVersion() { - assertThatThrownBy(() -> new ToscaPolicyIdentifierOptVersion(null, VERSION)) - .isInstanceOf(NullPointerException.class); - - // with null version - ToscaPolicyIdentifierOptVersion orig = new ToscaPolicyIdentifierOptVersion(NAME, null); - assertEquals(NAME, orig.getName()); - assertEquals(null, orig.getVersion()); - assertTrue(orig.isNullVersion()); - - orig = new ToscaPolicyIdentifierOptVersion(NAME, VERSION); - assertEquals(NAME, orig.getName()); - assertEquals(VERSION, orig.getVersion()); - assertFalse(orig.isNullVersion()); - } - - @Test - public void testCopyConstructor() throws Exception { - assertThatThrownBy(() -> new ToscaPolicyIdentifierOptVersion(null)).isInstanceOf(NullPointerException.class); - - ToscaPolicyIdentifierOptVersion orig = new ToscaPolicyIdentifierOptVersion(); - - // verify with null values - assertEquals(orig.toString(), new ToscaPolicyIdentifierOptVersion(orig).toString()); - - // verify with all values - orig = makeIdent(NAME, VERSION); - assertEquals(orig.toString(), new ToscaPolicyIdentifierOptVersion(orig).toString()); - } -} diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestToscaPolicyTypeIdentifier.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestToscaPolicyTypeIdentifier.java deleted file mode 100644 index ab314ef12..000000000 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/TestToscaPolicyTypeIdentifier.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP Policy Models - * ================================================================================ - * Copyright (C) 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.pdp.concepts; - -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -/** - * Test the other constructors, as {@link TestModels} tests the other methods. - */ -public class TestToscaPolicyTypeIdentifier extends ToscaIdentifierTestBase { - private static final String NAME = "my-name"; - private static final String VERSION = "1.2.3"; - - public TestToscaPolicyTypeIdentifier() { - super(ToscaPolicyTypeIdentifier.class); - } - - @Test - public void testAllArgsConstructor() { - assertThatThrownBy(() -> new ToscaPolicyTypeIdentifier(null, VERSION)).isInstanceOf(NullPointerException.class); - assertThatThrownBy(() -> new ToscaPolicyTypeIdentifier(NAME, null)).isInstanceOf(NullPointerException.class); - - ToscaPolicyTypeIdentifier orig = new ToscaPolicyTypeIdentifier(NAME, VERSION); - assertEquals(NAME, orig.getName()); - assertEquals(VERSION, orig.getVersion()); - } - - @Test - public void testCopyConstructor() { - assertThatThrownBy(() -> new ToscaPolicyTypeIdentifier(null)).isInstanceOf(NullPointerException.class); - - ToscaPolicyTypeIdentifier orig = new ToscaPolicyTypeIdentifier(); - - // verify with null values - assertEquals(orig.toString(), new ToscaPolicyTypeIdentifier(orig).toString()); - - // verify with all values - orig = new ToscaPolicyTypeIdentifier(NAME, VERSION); - assertEquals(orig.toString(), new ToscaPolicyTypeIdentifier(orig).toString()); - } - -} diff --git a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/ToscaIdentifierTestBase.java b/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/ToscaIdentifierTestBase.java deleted file mode 100644 index 8b6a4f7bb..000000000 --- a/models-pdp/src/test/java/org/onap/policy/models/pdp/concepts/ToscaIdentifierTestBase.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * ONAP Policy Models - * ================================================================================ - * Copyright (C) 2019 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. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.pdp.concepts; - -import org.onap.policy.common.utils.coder.Coder; -import org.onap.policy.common.utils.coder.CoderException; -import org.onap.policy.common.utils.coder.StandardCoder; - -/** - * Super class to test identity keys. - * - * @param type of key being tested - */ -public class ToscaIdentifierTestBase { - - private static final Coder coder = new StandardCoder(); - - private final Class clazz; - - - /** - * Constructs the object. - * @param clazz the type of class being tested - */ - public ToscaIdentifierTestBase(Class clazz) { - this.clazz = clazz; - } - - /** - * Makes an identifier. Uses JSON which does no error checking. - * - * @param name name to put into the identifier - * @param version version to put into the identifier - * @return a new identifier - * @throws CoderException if the JSON cannot be decoded - */ - public T makeIdent(String name, String version) throws CoderException { - StringBuilder bldr = new StringBuilder(); - bldr.append("{"); - - if (name != null) { - bldr.append("'name':'"); - bldr.append(name); - bldr.append("'"); - } - - if (version != null) { - if (name != null) { - bldr.append(','); - } - - bldr.append("'version':'"); - bldr.append(version); - bldr.append("'"); - } - - bldr.append("}"); - - String json = bldr.toString().replace('\'', '"'); - - return coder.decode(json, clazz); - } -} diff --git a/models-pdp/src/test/java/org/onap/policy/models/persistence/provider/PdpProviderTest.java b/models-pdp/src/test/java/org/onap/policy/models/persistence/provider/PdpProviderTest.java index fcb9062c6..6f20882f4 100644 --- a/models-pdp/src/test/java/org/onap/policy/models/persistence/provider/PdpProviderTest.java +++ b/models-pdp/src/test/java/org/onap/policy/models/persistence/provider/PdpProviderTest.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2019 Nordix Foundation. + * Modifications Copyright (C) 2019 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. @@ -24,10 +25,6 @@ import static org.junit.Assert.assertEquals; import java.sql.Connection; import java.sql.DriverManager; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; - import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -37,15 +34,9 @@ import org.onap.policy.models.dao.DaoParameters; import org.onap.policy.models.dao.PfDao; import org.onap.policy.models.dao.PfDaoFactory; import org.onap.policy.models.dao.impl.DefaultPfDao; -import org.onap.policy.models.pdp.concepts.Pdp; -import org.onap.policy.models.pdp.concepts.PdpGroup; import org.onap.policy.models.pdp.concepts.PdpGroups; -import org.onap.policy.models.pdp.concepts.PdpSubGroup; -import org.onap.policy.models.pdp.concepts.ToscaPolicyTypeIdentifier; -import org.onap.policy.models.pdp.enums.PdpHealthStatus; -import org.onap.policy.models.pdp.enums.PdpState; import org.onap.policy.models.pdp.persistence.provider.PdpProvider; -import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy; +import org.onap.policy.models.tosca.simple.provider.SimpleToscaProvider; /** * Test the {@link SimpleToscaProvider} class. @@ -110,7 +101,6 @@ public class PdpProviderTest { String originalJson = ResourceUtils.getResourceAsString("testdata/PdpGroups0.json"); - @SuppressWarnings("unchecked") PdpGroups pdpGroups0 = standardCoder.decode(originalJson, PdpGroups.class); PdpGroups createdPdpGroups0 = new PdpGroups(); -- cgit 1.2.3-korg