001package com.teamscale.commons.commit; 002 003import static java.util.Arrays.asList; 004 005import java.util.ArrayList; 006import java.util.List; 007 008import org.conqat.engine.index.shared.CommitDescriptor; 009import org.conqat.engine.index.shared.ParentedCommitDescriptor; 010 011/** 012 * Class providing static imports of methods to create commit descriptors with 013 * shorthand methods. Should be used to increase readability of tests. 014 */ 015public class CommitDescriptorTestUtils { 016 017 /** The name of the master branch. */ 018 public static final String MASTER_BRANCH_NAME = "master"; 019 020 /** The default name for commits on a branch. */ 021 public static final String OTHER_BRANCH_NAME = "branch"; 022 023 private static final String TRUNK_BRANCH_NAME = "trunk"; 024 025 /** 026 * Creates a {@link CommitDescriptor} with branch name {@code master} and given 027 * timestamp. 028 */ 029 public static CommitDescriptor masterCommit(long timestamp) { 030 return new CommitDescriptor(MASTER_BRANCH_NAME, timestamp); 031 } 032 033 /** 034 * Creates a {@link CommitDescriptor} with branch name {@code branch} and given 035 * timestamp. 036 */ 037 public static CommitDescriptor branchCommit(long timestamp) { 038 return new CommitDescriptor(OTHER_BRANCH_NAME, timestamp); 039 } 040 041 /** 042 * Creates a {@link CommitDescriptor} for given timestamp with branch as 043 * {@link #TRUNK_BRANCH_NAME} 044 */ 045 public static CommitDescriptor trunkCommit(long timestamp) { 046 return new CommitDescriptor(TRUNK_BRANCH_NAME, timestamp); 047 } 048 049 /** Creates a merge {@link ParentedCommitDescriptor} with given parents. */ 050 public static ParentedCommitDescriptor mergeCommit(CommitDescriptor mergeCommit, CommitDescriptor firstParent, 051 CommitDescriptor mergedParent, CommitDescriptor... additionalMergedParents) { 052 List<CommitDescriptor> parentCommits = new ArrayList<>(); 053 parentCommits.add(firstParent); 054 parentCommits.add(mergedParent); 055 parentCommits.addAll(asList(additionalMergedParents)); 056 return new ParentedCommitDescriptor(mergeCommit, parentCommits); 057 } 058}