Search in sources :

Example 1 with BlameScmRequest

use of org.apache.maven.scm.command.blame.BlameScmRequest in project maven-scm by apache.

the class BlameCommandTckTest method testBlameCommand.

public void testBlameCommand() throws Exception {
    ScmRepository repository = getScmRepository();
    ScmManager manager = getScmManager();
    ScmProvider provider = manager.getProviderByRepository(getScmRepository());
    ScmFileSet fileSet = new ScmFileSet(getWorkingCopy());
    BlameScmResult result;
    BlameLine line;
    // === readme.txt ===
    BlameScmRequest blameScmRequest = new BlameScmRequest(repository, fileSet);
    blameScmRequest.setFilename("readme.txt");
    // result = manager.blame( repository, fileSet, "readme.txt" );
    result = manager.blame(blameScmRequest);
    assertNotNull("The command returned a null result.", result);
    assertResultIsSuccess(result);
    assertEquals("Expected 1 line in blame", 1, result.getLines().size());
    line = result.getLines().get(0);
    String initialRevision = line.getRevision();
    // Make a timestamp that we know are after initial revision but before the second
    // Current time
    Date timeBeforeSecond = new Date();
    // pause a couple seconds...
    Thread.sleep(2000);
    // Make a change to the readme.txt and commit the change
    this.edit(getWorkingCopy(), "readme.txt", null, getScmRepository());
    ScmTestCase.makeFile(getWorkingCopy(), "/readme.txt", "changed readme.txt");
    CheckInScmResult checkInResult = provider.checkIn(getScmRepository(), fileSet, COMMIT_MSG);
    assertTrue("Unable to checkin changes to the repository", checkInResult.isSuccess());
    result = manager.blame(repository, fileSet, "readme.txt");
    // pause a couple seconds...
    Thread.sleep(2000);
    // Current time
    Date timeAfterSecond = new Date();
    assertNotNull("The command returned a null result.", result);
    assertResultIsSuccess(result);
    assertEquals("Expected 1 line in blame", 1, result.getLines().size());
    line = result.getLines().get(0);
    assertNotNull("Expected not null author", line.getAuthor());
    assertNotNull("Expected not null revision", line.getRevision());
    assertNotNull("Expected not null date", line.getDate());
    assertTrue("Expected another revision", !initialRevision.equals(line.getRevision()));
    if (isTestDateTime()) {
        assertDateBetween(timeBeforeSecond, timeAfterSecond, line.getDate());
    }
    // === pom.xml ===
    result = manager.blame(repository, fileSet, "pom.xml");
    assertNotNull("The command returned a null result.", result);
    assertResultIsSuccess(result);
    verifyResult(result);
}
Also used : ScmProvider(org.apache.maven.scm.provider.ScmProvider) BlameLine(org.apache.maven.scm.command.blame.BlameLine) ScmRepository(org.apache.maven.scm.repository.ScmRepository) ScmFileSet(org.apache.maven.scm.ScmFileSet) BlameScmRequest(org.apache.maven.scm.command.blame.BlameScmRequest) BlameScmResult(org.apache.maven.scm.command.blame.BlameScmResult) ScmManager(org.apache.maven.scm.manager.ScmManager) CheckInScmResult(org.apache.maven.scm.command.checkin.CheckInScmResult) Date(java.util.Date)

Aggregations

Date (java.util.Date)1 ScmFileSet (org.apache.maven.scm.ScmFileSet)1 BlameLine (org.apache.maven.scm.command.blame.BlameLine)1 BlameScmRequest (org.apache.maven.scm.command.blame.BlameScmRequest)1 BlameScmResult (org.apache.maven.scm.command.blame.BlameScmResult)1 CheckInScmResult (org.apache.maven.scm.command.checkin.CheckInScmResult)1 ScmManager (org.apache.maven.scm.manager.ScmManager)1 ScmProvider (org.apache.maven.scm.provider.ScmProvider)1 ScmRepository (org.apache.maven.scm.repository.ScmRepository)1