Skip to content

Commit

Permalink
Cleanup test case.
Browse files Browse the repository at this point in the history
  • Loading branch information
uhafner committed Aug 20, 2024
1 parent 75fd7de commit beeb13f
Showing 1 changed file with 79 additions and 105 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ void shouldShowErrorIfCommitIsNotFound() {
+ "extensions: [[$class: 'RelativeTargetDirectory', \n"
+ " relativeTargetDir: '" + GIT_FORENSICS_COMMIT + "']]])"));

Run<?, ?> build = buildSuccessfully(job);
GitDeltaCalculator deltaCalculator = createDeltaCalculator();
var build = buildSuccessfully(job);
var deltaCalculator = createDeltaCalculator();

var log = createLog();
Optional<Delta> result = deltaCalculator.calculateDelta(build, build, EMPTY_SCM_KEY, log);
var result = deltaCalculator.calculateDelta(build, build, EMPTY_SCM_KEY, log);
assertThat(result).isNotEmpty();

assertThat(log.getInfoMessages())
Expand All @@ -64,30 +64,30 @@ void shouldShowErrorIfCommitIsNotFound() {

@Test
void shouldCreateEmptyDeltaIfCommitsAreInvalid() {
GitDeltaCalculator deltaCalculator = createDeltaCalculator();
var deltaCalculator = createDeltaCalculator();

FilteredLog log = createLog();
var log = createLog();
assertThat(deltaCalculator.calculateDelta(mock(Run.class), mock(Run.class), EMPTY_SCM_KEY, log)).isEmpty();
}

@Test
void shouldCreateDiffFile() {
FreeStyleProject job = createJobWithReferenceRecorder();

FilteredLog log = createLog();
var job = createJobWithReferenceRecorder();
var referenceBuild = buildSuccessfully(job);

Run<?, ?> referenceBuild = buildSuccessfully(job);
String referenceCommit = getHead();
String fileName = "newFile";
String content = "content";
writeFile(fileName, content);
addFile(fileName);
commit("test");
Run<?, ?> build = buildSuccessfully(job);

var build = buildSuccessfully(job);
String currentCommit = getHead();

GitDeltaCalculator deltaCalculator = createDeltaCalculator();
Optional<Delta> result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
var log = createLog();
var deltaCalculator = createDeltaCalculator();
var result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
assertThat(result).isNotEmpty();

Delta delta = result.get();
Expand All @@ -108,144 +108,126 @@ void shouldCreateDiffFile() {
assertThat(fileChanges.getModifiedLines()).containsExactly(1));
}

/**
* An added file should be determined.
*/
@Test
void shouldDetermineAddedFile() {
FreeStyleProject job = createJobWithReferenceRecorder();
FilteredLog log = createLog();

Run<?, ?> referenceBuild = buildSuccessfully(job);
var job = createJobWithReferenceRecorder();
var referenceBuild = buildSuccessfully(job);

String newFileName = "newFile";
String content = "added";
writeFile(newFileName, content);
addFile(newFileName);
commit("test");
Run<?, ?> build = buildSuccessfully(job);

GitDeltaCalculator deltaCalculator = createDeltaCalculator();
Optional<Delta> result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
var build = buildSuccessfully(job);

var log = createLog();
var deltaCalculator = createDeltaCalculator();
var result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);

assertThat(result).isNotEmpty();

Delta delta = result.get();
FileChanges fileChanges = getSingleFileChanges(delta);
var fileChanges = getSingleFileChanges(result.get());
assertThat(fileChanges.getModifiedLines()).containsExactly(1);

assertThat(fileChanges.getFileName()).isEqualTo(newFileName);
assertThat(fileChanges.getOldFileName()).isEqualTo(EMPTY_FILE_PATH);
assertThat(fileChanges.getFileEditType()).isEqualTo(FileEditType.ADD);
assertThat(fileChanges.getFileContent()).isEqualTo(content);
}

/**
* A modified file should be determined.
*/
@Test
void shouldDetermineModifiedFile() {
FreeStyleProject job = createJobWithReferenceRecorder();
FilteredLog log = createLog();
var job = createJobWithReferenceRecorder();

String content = "modified";
commitFile("test");
Run<?, ?> referenceBuild = buildSuccessfully(job);

var referenceBuild = buildSuccessfully(job);
commitFile(content);
Run<?, ?> build = buildSuccessfully(job);

GitDeltaCalculator deltaCalculator = createDeltaCalculator();
Optional<Delta> result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
var build = buildSuccessfully(job);

var log = createLog();
var deltaCalculator = createDeltaCalculator();
var result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
assertThat(result).isNotEmpty();

Delta delta = result.get();
FileChanges fileChanges = getSingleFileChanges(delta);
var fileChanges = getSingleFileChanges(result.get());
assertThat(fileChanges.getModifiedLines()).containsExactly(1);

assertThat(fileChanges.getFileName()).isEqualTo(INITIAL_FILE);
assertThat(fileChanges.getOldFileName()).isEqualTo(INITIAL_FILE);
assertThat(fileChanges.getFileEditType()).isEqualTo(FileEditType.MODIFY);
assertThat(fileChanges.getFileContent()).isEqualTo(content);
}

/**
* A deleted file should be determined.
*/
@Test
void shouldDetermineDeletedFile() {
FreeStyleProject job = createJobWithReferenceRecorder();
FilteredLog log = createLog();
var job = createJobWithReferenceRecorder();

String content = "content";
commitFile(content);
Run<?, ?> referenceBuild = buildSuccessfully(job);
var referenceBuild = buildSuccessfully(job);
git("rm", INITIAL_FILE);
commit("test");
Run<?, ?> build = buildSuccessfully(job);

GitDeltaCalculator deltaCalculator = createDeltaCalculator();
Optional<Delta> result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
var build = buildSuccessfully(job);

var log = createLog();
var deltaCalculator = createDeltaCalculator();
var result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
assertThat(result).isNotEmpty();

Delta delta = result.get();
FileChanges fileChanges = getSingleFileChanges(delta);
var fileChanges = getSingleFileChanges(result.get());
assertThat(fileChanges.getModifiedLines()).isEmpty();

assertThat(fileChanges.getFileName()).isEqualTo(EMPTY_FILE_PATH);
assertThat(fileChanges.getOldFileName()).isEqualTo(INITIAL_FILE);
assertThat(fileChanges.getFileEditType()).isEqualTo(FileEditType.DELETE);
assertThat(fileChanges.getFileContent()).isEqualTo(content);
}

/**
* A renamed file should be determined.
*/
@Test
void shouldDetermineRenamedFile() {
FreeStyleProject job = createJobWithReferenceRecorder();
FilteredLog log = createLog();
var job = createJobWithReferenceRecorder();

String content = "content";
commitFile(content);
Run<?, ?> referenceBuild = buildSuccessfully(job);
var referenceBuild = buildSuccessfully(job);
git("rm", INITIAL_FILE);
writeFileAsAuthorFoo(content);
Run<?, ?> build = buildSuccessfully(job);

GitDeltaCalculator deltaCalculator = createDeltaCalculator();
Optional<Delta> result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
var build = buildSuccessfully(job);

var log = createLog();
var deltaCalculator = createDeltaCalculator();
var result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
assertThat(result).isNotEmpty();

Delta delta = result.get();
FileChanges fileChanges = getSingleFileChanges(delta);
var fileChanges = getSingleFileChanges(result.get());
assertThat(fileChanges.getModifiedLines()).isEmpty();

assertThat(fileChanges.getFileName()).isEqualTo(ADDITIONAL_FILE);
assertThat(fileChanges.getOldFileName()).isEqualTo(INITIAL_FILE);
assertThat(fileChanges.getFileEditType()).isEqualTo(FileEditType.RENAME);
assertThat(fileChanges.getFileContent()).isEqualTo(content);
}

/**
* Added lines within a specific file should be determined.
*/
@Test
void shouldDetermineAddedLines() {
FreeStyleProject job = createJobWithReferenceRecorder();
FilteredLog log = createLog();
var job = createJobWithReferenceRecorder();

String content = "Test\nTest\n";
String insertedContent = "Test\nInsert1\nInsert2\nTest\n";
commitFile(content);
Run<?, ?> referenceBuild = buildSuccessfully(job);
var referenceBuild = buildSuccessfully(job);
commitFile(insertedContent);
Run<?, ?> build = buildSuccessfully(job);

GitDeltaCalculator deltaCalculator = createDeltaCalculator();
Optional<Delta> result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
var build = buildSuccessfully(job);

var log = createLog();
var deltaCalculator = createDeltaCalculator();
var result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
assertThat(result).isNotEmpty();

Delta delta = result.get();
FileChanges fileChanges = getSingleFileChanges(delta);
var fileChanges = getSingleFileChanges(result.get());
assertThat(fileChanges.getModifiedLines()).containsExactly(2, 3);

Change change = getSingleChangeOfType(fileChanges, ChangeEditType.INSERT);
Expand All @@ -256,27 +238,24 @@ void shouldDetermineAddedLines() {
assertThat(change.getToLine()).isEqualTo(3);
}

/**
* Modified lines within a specific file should be determined.
*/
@Test
void shouldDetermineModifiedLines() {
FreeStyleProject job = createJobWithReferenceRecorder();
FilteredLog log = createLog();
var job = createJobWithReferenceRecorder();

String content = "Test\nTest\nTest\nTest";
String modified = "Test\nModified\nModified2\nTest";
commitFile(content);
Run<?, ?> referenceBuild = buildSuccessfully(job);
var referenceBuild = buildSuccessfully(job);
commitFile(modified);
Run<?, ?> build = buildSuccessfully(job);

GitDeltaCalculator deltaCalculator = createDeltaCalculator();
Optional<Delta> result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
var build = buildSuccessfully(job);

var log = createLog();
var deltaCalculator = createDeltaCalculator();
var result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
assertThat(result).isNotEmpty();

Delta delta = result.get();
FileChanges fileChanges = getSingleFileChanges(delta);
var fileChanges = getSingleFileChanges(result.get());
assertThat(fileChanges.getModifiedLines()).containsExactly(2, 3);

Change change = getSingleChangeOfType(fileChanges, ChangeEditType.REPLACE);
Expand All @@ -287,27 +266,25 @@ void shouldDetermineModifiedLines() {
assertThat(change.getToLine()).isEqualTo(3);
}

/**
* Deleted lines within a specific file should be determined.
*/
@Test
void shouldDetermineDeletedLines() {
FreeStyleProject job = createJobWithReferenceRecorder();
FilteredLog log = createLog();
var job = createJobWithReferenceRecorder();

String content = "Test\nTest3\nTest";
String modified = "Test\nTest";
commitFile(content);
Run<?, ?> referenceBuild = buildSuccessfully(job);
var referenceBuild = buildSuccessfully(job);
commitFile(modified);
Run<?, ?> build = buildSuccessfully(job);

GitDeltaCalculator deltaCalculator = createDeltaCalculator();
Optional<Delta> result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
var build = buildSuccessfully(job);

var log = createLog();
var deltaCalculator = createDeltaCalculator();
var result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
assertThat(result).isNotEmpty();

Delta delta = result.get();
FileChanges fileChanges = getSingleFileChanges(delta);
var fileChanges = getSingleFileChanges(delta);
assertThat(fileChanges.getModifiedLines()).isEmpty();

Change change = getSingleChangeOfType(fileChanges, ChangeEditType.DELETE);
Expand All @@ -318,27 +295,24 @@ void shouldDetermineDeletedLines() {
assertThat(change.getToLine()).isEqualTo(1);
}

/**
* Added, modified and deleted lines within a specific file should be determined properly together.
*/
@Test
void shouldDetermineAllChangeTypesTogether() {
FreeStyleProject job = createJobWithReferenceRecorder();
var job = createJobWithReferenceRecorder();

String content = "Test1\nTest2\nTest3\nTest4";
String newContent = "Modified\nTest2\nInserted\nTest3";
commitFile(content);
Run<?, ?> referenceBuild = buildSuccessfully(job);
var referenceBuild = buildSuccessfully(job);
commitFile(newContent);
Run<?, ?> build = buildSuccessfully(job);

FilteredLog log = createLog();
GitDeltaCalculator deltaCalculator = createDeltaCalculator();
Optional<Delta> result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
var build = buildSuccessfully(job);

var log = createLog();
var deltaCalculator = createDeltaCalculator();
var result = deltaCalculator.calculateDelta(build, referenceBuild, EMPTY_SCM_KEY, log);
assertThat(result).isNotEmpty();

Delta delta = result.get();
FileChanges fileChanges = getSingleFileChanges(delta);
var fileChanges = getSingleFileChanges(result.get());
assertThat(fileChanges.getModifiedLines()).containsExactly(1, 3);

Change replace = getSingleChangeOfType(fileChanges, ChangeEditType.REPLACE);
Expand Down Expand Up @@ -438,7 +412,7 @@ private GitDeltaCalculator createDeltaCalculator() {
*/
private FreeStyleProject createJobWithReferenceRecorder() {
try {
FreeStyleProject job = createFreeStyleProject();
var job = createFreeStyleProject();
job.setScm(new GitSCM(getRepositoryRoot()));
job.getPublishersList().add(new GitReferenceRecorder());
return job;
Expand Down

0 comments on commit beeb13f

Please sign in to comment.