ApplyingATag.cs 1.9 KB
Newer Older
1 2 3 4 5 6 7 8
using System;
using NUnit.Framework;

namespace libgit2sharp.Tests
{
    [TestFixture]
    public class ApplyingATag : ReadWriteRepositoryFixtureBase
    {
9 10 11 12 13 14 15 16 17 18 19 20 21 22
        private static readonly Signature _signature = new Signature("me", "me@me.me", DateTimeOffset.Now);

        [Test]
        public void ShouldThrowIfPassedANonExistingTarget()
        {
            const string invalidTargetId = "deadbeef1b46c854b31185ea97743be6a8774479";

            using (var repo = new Repository(PathToRepository))
            {
                Assert.Throws<ObjectNotFoundException>(() => repo.ApplyTag(invalidTargetId, "tagged", "messaged", _signature));
            }

        }

23 24 25 26 27 28 29 30
        [Test]
        public void ShouldWork() // TODO: Split into different tests (returnATag, PersistTheObject, MultipleApplies, ...)
        {
            const string targetId = "8496071c1b46c854b31185ea97743be6a8774479";

            Tag appliedTag;
            using (var repo = new Repository(PathToRepository))
            {
31
                appliedTag = repo.ApplyTag(targetId, "tagged", "messaged", _signature);
32 33
            }

34 35 36 37 38 39 40
            var target = appliedTag.Target as Commit;
            Assert.IsNotNull(target);

            Assert.IsNotNull(target.Author);
            Assert.IsNotNull(target.Committer);
            Assert.IsNotNull(target.Message);

41 42 43 44 45 46
            Tag retrievedTag;
            using (var repo = new Repository(PathToRepository))
            {
                retrievedTag = repo.Resolve<Tag>(appliedTag.Id);
            }

47 48 49 50 51 52 53 54
            var target2 = retrievedTag.Target as Commit;
            Assert.IsNotNull(target2);

            Assert.IsNotNull(target2.Author);
            Assert.IsNotNull(target2.Committer);
            Assert.IsNotNull(target2.Message);


55 56
            Assert.AreEqual(appliedTag.Id, retrievedTag.Id);
            // TODO: Finalize comparison
57 58

            //
59 60 61
        }
    }
}