Skip to content

Commit

Permalink
test for clonePolicyViolation(), minor changes
Browse files Browse the repository at this point in the history
Signed-off-by: Marlon Gaethje <mge@mm-software.com>
  • Loading branch information
mge-mm committed Nov 29, 2023
1 parent f4781e0 commit 38582f3
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -195,11 +195,15 @@ public PolicyViolation clonePolicyViolation(PolicyViolation sourcePolicyViolatio
policyViolation.setComponent(destinationComponent);
policyViolation.setPolicyCondition(sourcePolicyViolation.getPolicyCondition());
policyViolation.setTimestamp(sourcePolicyViolation.getTimestamp());
policyViolation.setText(sourcePolicyViolation.getText());
policyViolation.setType(sourcePolicyViolation.getType());
//cloning ViolatioAnalysis
ViolationAnalysis violationAnalysis = cloneViolationAnalysis(destinationComponent, sourcePolicyViolation);
//cloning ViolationAnalysisComments
List<ViolationAnalysisComment> comments = cloneViolationAnalysisComments(sourcePolicyViolation, violationAnalysis);
violationAnalysis.setAnalysisComments(comments);
if(comments != null){
violationAnalysis.setAnalysisComments(comments);
}
policyViolation.setAnalysis(violationAnalysis);
policyViolation.getAnalysis().setPolicyViolation(policyViolation);
policyViolation.setUuid(sourcePolicyViolation.getUuid());
Expand Down Expand Up @@ -424,7 +428,7 @@ public ViolationAnalysis makeViolationAnalysis(Component component, PolicyViolat
*/
public List<ViolationAnalysisComment> cloneViolationAnalysisComments(PolicyViolation sourcePolicyViolation, ViolationAnalysis violationAnalysis){
List<ViolationAnalysisComment> comments = new ArrayList<ViolationAnalysisComment>();
if(sourcePolicyViolation.getAnalysis() != null){
if(sourcePolicyViolation.getAnalysis() != null && sourcePolicyViolation.getAnalysis().getAnalysisComments() != null){
for(ViolationAnalysisComment c : sourcePolicyViolation.getAnalysis().getAnalysisComments()){
ViolationAnalysisComment comment = new ViolationAnalysisComment();
comment.setViolationAnalysis(violationAnalysis);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public class CloneProjectEventTest {
@Test
public void testEvent() {
UUID uuid = UUID.randomUUID();
CloneProjectRequest request = new CloneProjectRequest(uuid.toString(), "1.0", true, true, true, true, true, true, true);
CloneProjectRequest request = new CloneProjectRequest(uuid.toString(), "1.0", true, true, true, true, true, true, true, true);
CloneProjectEvent event = new CloneProjectEvent(request);
Assert.assertEquals(request, event.getRequest());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,32 @@
package org.dependencytrack.persistence;

import org.dependencytrack.PersistenceCapableTest;
import org.dependencytrack.model.Classifier;
import org.dependencytrack.model.Component;
import org.dependencytrack.model.Policy;
import org.dependencytrack.model.PolicyViolation;
import org.dependencytrack.model.Project;
import org.dependencytrack.model.ViolationAnalysis;
import org.dependencytrack.model.ViolationAnalysisComment;
import org.dependencytrack.model.ViolationAnalysisState;
import org.junit.Test;
import org.junit.Assert;

import com.github.packageurl.PackageURL;
import com.github.packageurl.PackageURLBuilder;

import ch.qos.logback.core.subst.Token.Type;
import us.springett.parsers.cpe.Cpe;
import us.springett.parsers.cpe.CpeParser;
import us.springett.parsers.cpe.exceptions.CpeParsingException;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.jdo.PersistenceManager;

import static java.util.Collections.newSetFromMap;
import static org.assertj.core.api.Assertions.assertThat;

public class PolicyQueryManagerTest extends PersistenceCapableTest {
Expand All @@ -47,4 +67,53 @@ public void testRemoveProjectFromPolicies() {
assertThat(qm.getObjectById(Policy.class, policy2.getId()).getProjects()).isEmpty();
}

@Test
public void testclonePolicyViolation() throws Exception{
PolicyViolation policyViolation = new PolicyViolation();
policyViolation.setId(1);

// Component for cloning
Component component = new Component();
component.setId(111L);
component.setName("name");
component.setVersion("1.0");
component.setCopyright("Copyright Acme");

policyViolation.setComponent(component);
policyViolation.setText("policyViolation");
policyViolation.setTimestamp(new Date());
policyViolation.setType(PolicyViolation.Type.LICENSE);

// ViolationAnalysis for cloning
ViolationAnalysis violationAnalysis = new ViolationAnalysis();
violationAnalysis.setSuppressed(true);
violationAnalysis.setViolationAnalysisState(ViolationAnalysisState.APPROVED);

// ViolationAnalysisComments
List<ViolationAnalysisComment> violationAnalysisComments = new ArrayList<>();
ViolationAnalysisComment violationAnalysisComment = new ViolationAnalysisComment();
violationAnalysisComment.setComment("testComment");
violationAnalysisComment.setCommenter("admin");
violationAnalysisComment.setTimestamp(new Date());
violationAnalysisComment.setViolationAnalysis(violationAnalysis);
violationAnalysisComments.add(violationAnalysisComment);
violationAnalysis.setAnalysisComments(violationAnalysisComments);

policyViolation.setAnalysis(violationAnalysis);

PolicyViolation clonedPolicyViolation = qm.clonePolicyViolation(policyViolation, component);
Assert.assertEquals(policyViolation.getText(), clonedPolicyViolation.getText());
Assert.assertEquals(policyViolation.getType(), clonedPolicyViolation.getType());
Assert.assertEquals(policyViolation.getTimestamp(), clonedPolicyViolation.getTimestamp());
Assert.assertEquals(policyViolation.getAnalysis().isSuppressed(), clonedPolicyViolation.getAnalysis().isSuppressed());
Assert.assertEquals(policyViolation.getAnalysis().getAnalysisState(), clonedPolicyViolation.getAnalysis().getAnalysisState());
Assert.assertEquals(policyViolation.getAnalysis().getAnalysisComments().get(0).getComment(), clonedPolicyViolation.getAnalysis().getAnalysisComments().get(0).getComment());
Assert.assertEquals(policyViolation.getAnalysis().getAnalysisComments().get(0).getCommenter(), clonedPolicyViolation.getAnalysis().getAnalysisComments().get(0).getCommenter());
Assert.assertEquals(policyViolation.getAnalysis().getAnalysisComments().get(0).getTimestamp(), clonedPolicyViolation.getAnalysis().getAnalysisComments().get(0).getTimestamp());
Assert.assertEquals(policyViolation.getComponent().getId(), clonedPolicyViolation.getComponent().getId());
Assert.assertEquals(policyViolation.getComponent().getName(), clonedPolicyViolation.getComponent().getName());
Assert.assertEquals(policyViolation.getComponent().getCopyright(), clonedPolicyViolation.getComponent().getCopyright());
Assert.assertEquals(policyViolation.getComponent().getVersion(), clonedPolicyViolation.getComponent().getVersion());
}

}

0 comments on commit 38582f3

Please sign in to comment.