newTag.setTag("TheNewTag");
newTag.setMessage("Well, I'm the tag");
newTag.setTagger(RawParseUtils.parsePersonIdent(TestUtils.AUTHOR));
newTag.setObjectId(repository1.getRepository()
.resolve("refs/heads/master"), Constants.OBJ_COMMIT);
TagOperation top = new TagOperation(repository1.getRepository(),
newTag, false);
top.execute(new NullProgressMonitor());
assertFalse("Tags should not be empty", repository1.getRepository()
.getTags().isEmpty());
try {
top.execute(null);
fail("Expected Exception not thrown");
} catch (CoreException e) {
// expected
}
top = new TagOperation(repository1.getRepository(), newTag, true);
try {
top.execute(null);
fail("Expected Exception not thrown");
} catch (CoreException e) {
// expected
}
Ref tagRef = repository1.getRepository().getTags().get("TheNewTag");
RevWalk walk = new RevWalk(repository1.getRepository());
RevTag tag = walk.parseTag(
repository1.getRepository().resolve(tagRef.getName()));
newTag.setMessage("Another message");
assertFalse("Messages should differ", tag.getFullMessage().equals(
newTag.getMessage()));
top.execute(null);
tag = walk.parseTag(
repository1.getRepository().resolve(tagRef.getName()));
assertTrue("Messages be same", tag.getFullMessage().equals(
newTag.getMessage()));
}