+ public void testConstructor() {
+
+ assertThatThrownBy(() -> new JpaPdpStatistics((JpaPdpStatistics) null)).hasMessageContaining("copyConcept");
+
+ assertThatThrownBy(() -> new JpaPdpStatistics((PdpStatistics) null)).hasMessageContaining("authorativeConcept");
+
+ assertNotNull(new JpaPdpStatistics());
+
+ PdpStatistics pdpStat = createPdpStatistics();
+ JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(createPdpStatistics());
+ checkEquals(pdpStat, jpaPdpStat);
+
+ JpaPdpStatistics jpaPdpStat2 = new JpaPdpStatistics(jpaPdpStat);
+ assertEquals(0, jpaPdpStat2.compareTo(jpaPdpStat));
+ }
+
+ @Test
+ public void testFromAuthorative() {
+ PdpStatistics pdpStat = createPdpStatistics();
+ JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics();
+ jpaPdpStat.fromAuthorative(pdpStat);
+ checkEquals(pdpStat, jpaPdpStat);
+ }
+
+ @Test
+ public void testToAuthorative() {
+ PdpStatistics pdpStat = createPdpStatistics();
+ JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(pdpStat);
+ PdpStatistics toPdpStat = jpaPdpStat.toAuthorative();
+ assertEquals(pdpStat, toPdpStat);
+ }
+
+ @Test
+ public void testCompareTo() {
+ PdpStatistics pdpStat = createPdpStatistics();
+ JpaPdpStatistics jpaPdpStat1 = new JpaPdpStatistics(pdpStat);
+ assertEquals(-1, jpaPdpStat1.compareTo(null));
+
+ JpaPdpStatistics jpaPdpStat2 = new JpaPdpStatistics(pdpStat);
+ assertEquals(0, jpaPdpStat1.compareTo(jpaPdpStat2));
+
+ PdpStatistics pdpStat3 = createPdpStatistics();
+ pdpStat3.setPdpInstanceId("PDP3");
+ JpaPdpStatistics jpaPdpStat3 = new JpaPdpStatistics(pdpStat3);
+ assertNotEquals(0, jpaPdpStat1.compareTo(jpaPdpStat3));
+ }
+
+ @Test
+ public void testValidate() {
+ JpaPdpStatistics nullKeyJpaPdpStat = new JpaPdpStatistics();
+ assertFalse(nullKeyJpaPdpStat.validate("").isValid());
+
+ PdpStatistics pdpStat = createPdpStatistics();
+ JpaPdpStatistics jpaPdpStat2 = new JpaPdpStatistics(pdpStat);
+ assertTrue(jpaPdpStat2.validate("").isValid());
+ }
+
+ @Test
+ public void testClean() {
+ PdpStatistics pdpStat = createPdpStatistics();
+ JpaPdpStatistics jpaPdpStat = new JpaPdpStatistics(pdpStat);
+ jpaPdpStat.setPdpGroupName(" PDPGroup0 ");
+ jpaPdpStat.setPdpSubGroupName(" PDPSubGroup0 ");
+ jpaPdpStat.clean();
+ assertEquals("PDPGroup0", jpaPdpStat.getPdpGroupName());
+ assertEquals("PDPSubGroup0", jpaPdpStat.getPdpSubGroupName());
+ }
+
+ private void checkEquals(PdpStatistics pdpStat, JpaPdpStatistics jpaPdpStat) {
+ assertEquals(pdpStat.getPdpInstanceId(), jpaPdpStat.getKey().getName());
+ assertEquals(pdpStat.getPdpGroupName(), jpaPdpStat.getPdpGroupName());
+ assertEquals(pdpStat.getPdpSubGroupName(), jpaPdpStat.getPdpSubGroupName());
+ assertEquals(pdpStat.getTimeStamp(), jpaPdpStat.getTimeStamp().toInstant());
+ assertEquals(pdpStat.getPolicyDeployCount(), jpaPdpStat.getPolicyDeployCount());
+ assertEquals(pdpStat.getPolicyDeploySuccessCount(), jpaPdpStat.getPolicyDeploySuccessCount());
+ assertEquals(pdpStat.getPolicyDeployFailCount(), jpaPdpStat.getPolicyDeployFailCount());
+ assertEquals(pdpStat.getPolicyUndeployCount(), jpaPdpStat.getPolicyUndeployCount());
+ assertEquals(pdpStat.getPolicyUndeploySuccessCount(), jpaPdpStat.getPolicyUndeploySuccessCount());
+ assertEquals(pdpStat.getPolicyUndeployFailCount(), jpaPdpStat.getPolicyUndeployFailCount());
+ assertEquals(pdpStat.getPolicyExecutedCount(), jpaPdpStat.getPolicyExecutedCount());
+ assertEquals(pdpStat.getPolicyExecutedSuccessCount(), jpaPdpStat.getPolicyExecutedSuccessCount());
+ assertEquals(pdpStat.getPolicyExecutedFailCount(), jpaPdpStat.getPolicyExecutedFailCount());
+ }
+
+ private PdpStatistics createPdpStatistics() {
+ PdpStatistics pdpStat = new PdpStatistics();
+ pdpStat.setPdpInstanceId("PDP0");
+ pdpStat.setPdpGroupName("PDPGroup0");
+ pdpStat.setPdpSubGroupName("PDPSubGroup0");
+ pdpStat.setGeneratedId(10001L);
+ pdpStat.setTimeStamp(Instant.EPOCH);
+ pdpStat.setPolicyDeployCount(3);
+ pdpStat.setPolicyDeploySuccessCount(1);
+ pdpStat.setPolicyDeployFailCount(2);
+ pdpStat.setPolicyUndeployCount(5);
+ pdpStat.setPolicyUndeploySuccessCount(2);
+ pdpStat.setPolicyUndeployFailCount(3);
+ pdpStat.setPolicyExecutedCount(9);
+ pdpStat.setPolicyExecutedSuccessCount(4);
+ pdpStat.setPolicyExecutedFailCount(5);
+ pdpStat.setEngineStats(new ArrayList<>());
+ return pdpStat;