mardi 11 juillet 2017

Complex Junit Testing case

I am trying to create a JUnit test for this class.

What is the best way to go about testing the different if-else statements.

The I tried some generic unit test cases.

public class ObjectClaimHistory {

    private List<ObjectCollaborationClaimHistory> objectClaimHistory = new ArrayList<>();

    public void checkClaim(ClaimRequest claimRequest, Set<Integer> outOfDateCommits, int collaborationId, Integer parentCollaborationId, ClaimConflicts conflicts) {
        Set<Integer> conflictingCollaborationClaims = new HashSet<>();
        Set<Integer> conflictingCollaborationBlocks = new HashSet<>();
        for (ObjectCollaborationClaimHistory collaborationClaimHistory: objectClaimHistory) {
            if (!collaborationClaimHistory.checkClaim(claimRequest, outOfDateCommits)) {
                conflictingCollaborationClaims.add(collaborationClaimHistory.getCollaborationId());
            }
            if (!collaborationClaimHistory.checkBlock(claimRequest, outOfDateCommits)) {
                conflictingCollaborationBlocks.add(collaborationClaimHistory.getCollaborationId());
            }
        }
        // After checking all histories create one commit conflict. Choose the closest collaboration.
        if (conflictingCollaborationClaims.contains(collaborationId)) {
            conflicts.addCommitConflict(claimRequest.getObjectId(), claimRequest.getClaim(), collaborationId);
        }
        else if (conflictingCollaborationBlocks.contains(collaborationId)) {
            conflicts.addCommitConflict(claimRequest.getObjectId(), claimRequest.getBlock(), collaborationId);
        }

Aucun commentaire:

Enregistrer un commentaire