예제 #1
0
        public void CherryPickによって特定のSetを取得できること()
        {
            var set = new HappySet <TestClass>();

            set.Commit("a");

            Assert.AreEqual(0, set.Count);
            Assert.AreEqual(1, set.CommitCount);
            Assert.AreEqual(1, set.Logs().Count);

            set.Add(new TestClass("b"));
            var bid = set.Commit("b");

            set.Add(new TestClass("c"));
            var cid = set.Commit("c");

            var bset = set.CherryPick(bid);

            Assert.AreEqual(1, bset.Count);

            var cset = set.CherryPick(cid);

            Assert.AreEqual(2, cset.Count);

            set.Add(new TestClass("d"));

            Assert.AreEqual(2, cset.Count);

            Assert.AreEqual(3, set.Count);
            Assert.AreEqual(3, set.CommitCount);
            Assert.AreEqual(3, set.Logs().Count);
        }
예제 #2
0
        public void HappySetの中身が正しいこと()
        {
            var set = new HappySet <TestClass>
            {
                new TestClass("1"),
                new TestClass("2")
            };

            Assert.AreEqual("1", set.ElementAt(0).Hoge);
            Assert.AreEqual("2", set.ElementAt(1).Hoge);

            set.Commit("a");
            set.Add(new TestClass("3"));
            set.Commit("b");

            Assert.AreEqual("1", set.ElementAt(0).Hoge);
            Assert.AreEqual("2", set.ElementAt(1).Hoge);
            Assert.AreEqual("3", set.ElementAt(2).Hoge);

            Assert.AreEqual("a", set.Logs()[0].Message);

            var id = set.Logs()[0].Id;

            set.Checkout(id);
            Assert.AreEqual(2, set.CommitCount);

            Assert.AreEqual("1", set.ElementAt(0).Hoge);
            Assert.AreEqual("2", set.ElementAt(1).Hoge);

            var set2 = set.CherryPick(id);

            Assert.AreEqual("1", set2.ElementAt(0).Hoge);
            Assert.AreEqual("2", set2.ElementAt(1).Hoge);

            set2.Add(new TestClass("3"));

            Assert.AreEqual("1", set2.ElementAt(0).Hoge);
            Assert.AreEqual("2", set2.ElementAt(1).Hoge);
            Assert.AreEqual("3", set2.ElementAt(2).Hoge);

            Assert.AreEqual("1", set.ElementAt(0).Hoge);
            Assert.AreEqual("2", set.ElementAt(1).Hoge);

            id = set.Logs()[1].Id;

            set.Checkout(id);
            Assert.AreEqual(2, set.CommitCount);

            Assert.AreEqual("1", set.ElementAt(0).Hoge);
            Assert.AreEqual("2", set.ElementAt(1).Hoge);
            Assert.AreEqual("3", set.ElementAt(2).Hoge);

            set = new HappySet <TestClass>
            {
                new TestClass("a"),
                new TestClass("b")
            };

            Assert.AreEqual("a", set.ElementAt(0).Hoge);
            Assert.AreEqual("b", set.ElementAt(1).Hoge);
        }