예제 #1
0
파일: RefListTest.cs 프로젝트: shoff/ngit
        public virtual void TestAddToFrontOfList()
        {
            RefList <Ref> one = ToList(REF_A);
            RefList <Ref> two = one.Add(0, REF_B);

            NUnit.Framework.Assert.AreNotSame(one, two);
            // one is not modified, but two is
            NUnit.Framework.Assert.AreEqual(1, one.Size());
            NUnit.Framework.Assert.AreSame(REF_A, one.Get(0));
            NUnit.Framework.Assert.AreEqual(2, two.Size());
            NUnit.Framework.Assert.AreSame(REF_B, two.Get(0));
            NUnit.Framework.Assert.AreSame(REF_A, two.Get(1));
        }
예제 #2
0
        public virtual void TestCopyLeadingPrefix()
        {
            RefList <Ref> one = ToList(REF_A, REF_B, REF_c);
            RefList <Ref> two = one.Copy(2).ToRefList();

            NUnit.Framework.Assert.AreNotSame(one, two);
            NUnit.Framework.Assert.AreEqual(3, one.Size());
            NUnit.Framework.Assert.AreSame(REF_A, one.Get(0));
            NUnit.Framework.Assert.AreSame(REF_B, one.Get(1));
            NUnit.Framework.Assert.AreSame(REF_c, one.Get(2));
            NUnit.Framework.Assert.AreEqual(2, two.Size());
            NUnit.Framework.Assert.AreSame(REF_A, two.Get(0));
            NUnit.Framework.Assert.AreSame(REF_B, two.Get(1));
        }
예제 #3
0
        public virtual void TestRemoveEndOfList()
        {
            RefList <Ref> one = ToList(REF_A, REF_B, REF_c);
            RefList <Ref> two = one.Remove(2);

            NUnit.Framework.Assert.AreNotSame(one, two);
            NUnit.Framework.Assert.AreEqual(3, one.Size());
            NUnit.Framework.Assert.AreSame(REF_A, one.Get(0));
            NUnit.Framework.Assert.AreSame(REF_B, one.Get(1));
            NUnit.Framework.Assert.AreSame(REF_c, one.Get(2));
            NUnit.Framework.Assert.AreEqual(2, two.Size());
            NUnit.Framework.Assert.AreSame(REF_A, two.Get(0));
            NUnit.Framework.Assert.AreSame(REF_B, two.Get(1));
        }
        public virtual void TestNotEmpty_WithPrefix()
        {
            Ref master = NewRef("refs/heads/master", ID_ONE);

            packed = ToList(master);
            RefMap map = new RefMap("refs/heads/", packed, loose, resolved);

            NUnit.Framework.Assert.IsFalse(map.IsEmpty());
            // before size was computed
            NUnit.Framework.Assert.AreEqual(1, map.Count);
            NUnit.Framework.Assert.IsFalse(map.IsEmpty());
            // after size was computed
            NUnit.Framework.Assert.AreSame(master, map.Values.Iterator().Next());
        }
        public virtual void TestPut_CollapseResolved()
        {
            Ref master = NewRef("refs/heads/master", ID_ONE);
            Ref headU  = NewRef("HEAD", "refs/heads/master");
            Ref headR  = NewRef("HEAD", master);
            Ref a      = NewRef("refs/heads/A", ID_ONE);

            loose    = ToList(headU, master);
            resolved = ToList(headR);
            RefMap map = new RefMap(string.Empty, packed, loose, resolved);

            NUnit.Framework.Assert.IsNull(map.Put(a.GetName(), a));
            NUnit.Framework.Assert.AreSame(a, map.Get(a.GetName()));
            NUnit.Framework.Assert.AreSame(headR, map.Get("HEAD"));
        }
예제 #6
0
        public virtual void TestPutNewEntry()
        {
            RefList <Ref> one = ToList(REF_A, REF_c);
            RefList <Ref> two = one.Put(REF_B);

            NUnit.Framework.Assert.AreNotSame(one, two);
            // one is not modified, but two is
            NUnit.Framework.Assert.AreEqual(2, one.Size());
            NUnit.Framework.Assert.AreSame(REF_A, one.Get(0));
            NUnit.Framework.Assert.AreSame(REF_c, one.Get(1));
            NUnit.Framework.Assert.AreEqual(3, two.Size());
            NUnit.Framework.Assert.AreSame(REF_A, two.Get(0));
            NUnit.Framework.Assert.AreSame(REF_B, two.Get(1));
            NUnit.Framework.Assert.AreSame(REF_c, two.Get(2));
        }
        public virtual void TestEntryType()
        {
            Ref a = NewRef("refs/heads/A", ID_ONE);
            Ref b = NewRef("refs/heads/B", ID_TWO);

            packed = ToList(a, b);
            RefMap map = new RefMap("refs/heads/", packed, loose, resolved);
            Iterator <KeyValuePair <string, Ref> > itr   = map.EntrySet().Iterator();
            KeyValuePair <string, Ref>             ent_a = itr.Next();
            KeyValuePair <string, Ref>             ent_b = itr.Next();

//			NUnit.Framework.Assert.AreEqual(ent_a.GetHashCode(), "A".GetHashCode());
            NUnit.Framework.Assert.IsTrue(ent_a.Equals(ent_a));
            NUnit.Framework.Assert.IsFalse(ent_a.Equals(ent_b));
            NUnit.Framework.Assert.AreEqual(a.ToString(), ent_a.Value.ToString());
        }
        public virtual void TestToString_NoPrefix()
        {
            Ref a = NewRef("refs/heads/A", ID_ONE);
            Ref b = NewRef("refs/heads/B", ID_TWO);

            packed = ToList(a, b);
            StringBuilder exp = new StringBuilder();

            exp.Append("[");
            exp.Append(a.ToString());
            exp.Append(", ");
            exp.Append(b.ToString());
            exp.Append("]");
            RefMap map = new RefMap(string.Empty, packed, loose, resolved);

            NUnit.Framework.Assert.AreEqual(exp.ToString(), map.ToString());
        }
예제 #9
0
        public virtual void TestAddToMiddleOfListByInsertionPosition()
        {
            RefList <Ref> one = ToList(REF_A, REF_c);

            NUnit.Framework.Assert.AreEqual(-2, one.Find(REF_B.GetName()));
            RefList <Ref> two = one.Add(one.Find(REF_B.GetName()), REF_B);

            NUnit.Framework.Assert.AreNotSame(one, two);
            // one is not modified, but two is
            NUnit.Framework.Assert.AreEqual(2, one.Size());
            NUnit.Framework.Assert.AreSame(REF_A, one.Get(0));
            NUnit.Framework.Assert.AreSame(REF_c, one.Get(1));
            NUnit.Framework.Assert.AreEqual(3, two.Size());
            NUnit.Framework.Assert.AreSame(REF_A, two.Get(0));
            NUnit.Framework.Assert.AreSame(REF_B, two.Get(1));
            NUnit.Framework.Assert.AreSame(REF_c, two.Get(2));
        }
        public virtual void TestPut_WithPrefix()
        {
            Ref refA_one = NewRef("refs/heads/A", ID_ONE);
            Ref refA_two = NewRef("refs/heads/A", ID_TWO);

            packed = ToList(refA_one);
            RefMap map = new RefMap("refs/heads/", packed, loose, resolved);

            NUnit.Framework.Assert.AreSame(refA_one, map.Get("A"));
            NUnit.Framework.Assert.AreSame(refA_one, map.Put("A", refA_two));
            // map changed, but packed, loose did not
            NUnit.Framework.Assert.AreSame(refA_two, map.Get("A"));
            NUnit.Framework.Assert.AreSame(refA_one, packed.Get(0));
            NUnit.Framework.Assert.AreEqual(0, loose.Size());
            NUnit.Framework.Assert.AreSame(refA_two, map.Put("A", refA_one));
            NUnit.Framework.Assert.AreSame(refA_one, map.Get("A"));
        }
예제 #11
0
        public virtual void TestBuilder_AddThenSort()
        {
            RefListBuilder <Ref> builder = new RefListBuilder <Ref>(1);

            builder.Add(REF_B);
            builder.Add(REF_A);
            RefList <Ref> list = builder.ToRefList();

            NUnit.Framework.Assert.AreEqual(2, list.Size());
            NUnit.Framework.Assert.AreSame(REF_B, list.Get(0));
            NUnit.Framework.Assert.AreSame(REF_A, list.Get(1));
            builder.Sort();
            list = builder.ToRefList();
            NUnit.Framework.Assert.AreEqual(2, list.Size());
            NUnit.Framework.Assert.AreSame(REF_A, list.Get(0));
            NUnit.Framework.Assert.AreSame(REF_B, list.Get(1));
        }
예제 #12
0
        public virtual void TestPutReplaceEntry()
        {
            Ref otherc = NewRef(REF_c.GetName());

            NUnit.Framework.Assert.AreNotSame(REF_c, otherc);
            RefList <Ref> one = ToList(REF_A, REF_c);
            RefList <Ref> two = one.Put(otherc);

            NUnit.Framework.Assert.AreNotSame(one, two);
            // one is not modified, but two is
            NUnit.Framework.Assert.AreEqual(2, one.Size());
            NUnit.Framework.Assert.AreSame(REF_A, one.Get(0));
            NUnit.Framework.Assert.AreSame(REF_c, one.Get(1));
            NUnit.Framework.Assert.AreEqual(2, two.Size());
            NUnit.Framework.Assert.AreSame(REF_A, two.Get(0));
            NUnit.Framework.Assert.AreSame(otherc, two.Get(1));
        }
예제 #13
0
파일: RefMapTest.cs 프로젝트: shoff/ngit
        public virtual void TestEntryTypeSet()
        {
            Ref refA_one = NewRef("refs/heads/A", ID_ONE);
            Ref refA_two = NewRef("refs/heads/A", ID_TWO);

            packed = ToList(refA_one);
            RefMap map = new RefMap("refs/heads/", packed, loose, resolved);

            NUnit.Framework.Assert.AreSame(refA_one, map.Get("A"));
            KeyValuePair <string, Ref> ent = map.EntrySet().Iterator().Next();

            NUnit.Framework.Assert.AreEqual("A", ent.Key);
            NUnit.Framework.Assert.AreSame(refA_one, ent.Value);
//			NUnit.Framework.Assert.AreSame(refA_one, ent.SetValue(refA_two));
//			NUnit.Framework.Assert.AreSame(refA_two, ent.Value);
            NUnit.Framework.Assert.AreSame(refA_two, map.Get("A"));
            NUnit.Framework.Assert.AreEqual(1, map.Count);
        }
        public virtual void TestRemove()
        {
            Ref master = NewRef("refs/heads/master", ID_ONE);
            Ref headU  = NewRef("HEAD", "refs/heads/master");
            Ref headR  = NewRef("HEAD", master);

            packed   = ToList(master);
            loose    = ToList(headU, master);
            resolved = ToList(headR);
            RefMap map = new RefMap(string.Empty, packed, loose, resolved);

            NUnit.Framework.Assert.IsNull(Sharpen.Collections.Remove(map, "not.a.reference"));
            NUnit.Framework.Assert.AreSame(master, Sharpen.Collections.Remove(map, "refs/heads/master"
                                                                              ));
            NUnit.Framework.Assert.IsNull(map.Get("refs/heads/master"));
            NUnit.Framework.Assert.AreSame(headR, Sharpen.Collections.Remove(map, "HEAD"));
            NUnit.Framework.Assert.IsNull(map.Get("HEAD"));
            NUnit.Framework.Assert.IsTrue(map.IsEmpty());
        }
        public virtual void TestIterator_FailsAtEnd()
        {
            Ref master = NewRef("refs/heads/master", ID_ONE);

            loose = ToList(master);
            RefMap         map = new RefMap(string.Empty, packed, loose, resolved);
            Iterator <Ref> itr = map.Values.Iterator();

            NUnit.Framework.Assert.IsTrue(itr.HasNext());
            NUnit.Framework.Assert.AreSame(master, itr.Next());
            try
            {
                itr.Next();
                NUnit.Framework.Assert.Fail("iterator allowed next");
            }
            catch (NoSuchElementException)
            {
            }
        }
        public virtual void TestToString_WithPrefix()
        {
            Ref a = NewRef("refs/heads/A", ID_ONE);
            Ref b = NewRef("refs/heads/foo/B", ID_TWO);
            Ref c = NewRef("refs/heads/foo/C", ID_TWO);
            Ref g = NewRef("refs/heads/g", ID_ONE);

            packed = ToList(a, b, c, g);
            StringBuilder exp = new StringBuilder();

            exp.Append("[");
            exp.Append(b.ToString());
            exp.Append(", ");
            exp.Append(c.ToString());
            exp.Append("]");
            RefMap map = new RefMap("refs/heads/foo/", packed, loose, resolved);

            NUnit.Framework.Assert.AreEqual(exp.ToString(), map.ToString());
        }
예제 #17
0
파일: RefMapTest.cs 프로젝트: shoff/ngit
        public virtual void TestIterator_MissingUnresolvedSymbolicRefIsBug()
        {
            Ref master = NewRef("refs/heads/master", ID_ONE);
            Ref headR  = NewRef("HEAD", master);

            loose = ToList(master);
            // loose should have added newRef("HEAD", "refs/heads/master")
            resolved = ToList(headR);
            RefMap         map = new RefMap(string.Empty, packed, loose, resolved);
            Iterator <Ref> itr = map.Values.Iterator();

            try
            {
                itr.HasNext();
                NUnit.Framework.Assert.Fail("iterator did not catch bad input");
            }
            catch (InvalidOperationException)
            {
            }
        }
예제 #18
0
        public virtual void TestEmpty()
        {
            RefList <Ref> list = RefList.EmptyList();

            NUnit.Framework.Assert.AreEqual(0, list.Size());
            NUnit.Framework.Assert.IsTrue(list.IsEmpty());
            NUnit.Framework.Assert.IsFalse(list.Iterator().HasNext());
            NUnit.Framework.Assert.AreEqual(-1, list.Find("a"));
            NUnit.Framework.Assert.AreEqual(-1, list.Find("z"));
            NUnit.Framework.Assert.IsFalse(list.Contains("a"));
            NUnit.Framework.Assert.IsNull(list.Get("a"));
            try
            {
                list.Get(0);
                NUnit.Framework.Assert.Fail("RefList.emptyList should have 0 element array");
            }
            catch (IndexOutOfRangeException)
            {
            }
        }
예제 #19
0
        public virtual void TestFindContainsGet()
        {
            RefList <Ref> list = ToList(REF_A, REF_B, REF_c);

            NUnit.Framework.Assert.AreEqual(0, list.Find("A"));
            NUnit.Framework.Assert.AreEqual(1, list.Find("B"));
            NUnit.Framework.Assert.AreEqual(2, list.Find("c"));
            NUnit.Framework.Assert.AreEqual(-1, list.Find("0"));
            NUnit.Framework.Assert.AreEqual(-2, list.Find("AB"));
            NUnit.Framework.Assert.AreEqual(-3, list.Find("a"));
            NUnit.Framework.Assert.AreEqual(-4, list.Find("z"));
            NUnit.Framework.Assert.AreSame(REF_A, list.Get("A"));
            NUnit.Framework.Assert.AreSame(REF_B, list.Get("B"));
            NUnit.Framework.Assert.AreSame(REF_c, list.Get("c"));
            NUnit.Framework.Assert.IsNull(list.Get("AB"));
            NUnit.Framework.Assert.IsNull(list.Get("z"));
            NUnit.Framework.Assert.IsTrue(list.Contains("A"));
            NUnit.Framework.Assert.IsTrue(list.Contains("B"));
            NUnit.Framework.Assert.IsTrue(list.Contains("c"));
            NUnit.Framework.Assert.IsFalse(list.Contains("AB"));
            NUnit.Framework.Assert.IsFalse(list.Contains("z"));
        }
        public virtual void TestEntryTypeSet()
        {
            Ref refA_one = NewRef("refs/heads/A", ID_ONE);
            Ref refA_two = NewRef("refs/heads/A", ID_TWO);

            packed = ToList(refA_one);
            RefMap map = new RefMap("refs/heads/", packed, loose, resolved);

            NUnit.Framework.Assert.AreSame(refA_one, map.Get("A"));
            KeyValuePair <string, Ref> ent = map.EntrySet().Iterator().Next();

            NUnit.Framework.Assert.AreEqual("A", ent.Key);
            NUnit.Framework.Assert.AreSame(refA_one, ent.Value);

            // FIXME: .NET returns an immutable KeyValuePair whereas Java
            // returns a mutable one. Therefore this test is invalid in .NET
            // No code does this internally (it's a compile error as SetValue does not exist)
            // so we are ok to comment this out.
//			NUnit.Framework.Assert.AreSame(refA_one, ent.SetValue(refA_two));
//			NUnit.Framework.Assert.AreSame(refA_two, ent.Value);
//			NUnit.Framework.Assert.AreEqual(refA_two, map.Get("A"));
//			NUnit.Framework.Assert.AreEqual(1, map.Count);
        }
        public virtual void TestMerge_HeadMaster()
        {
            Ref master = NewRef("refs/heads/master", ID_ONE);
            Ref headU  = NewRef("HEAD", "refs/heads/master");
            Ref headR  = NewRef("HEAD", master);

            loose    = ToList(headU, master);
            resolved = ToList(headR);
            RefMap map = new RefMap(string.Empty, packed, loose, resolved);

            NUnit.Framework.Assert.AreEqual(2, map.Count);
            NUnit.Framework.Assert.IsFalse(map.IsEmpty());
            NUnit.Framework.Assert.IsTrue(map.ContainsKey("refs/heads/master"));
            NUnit.Framework.Assert.AreSame(master, map.Get("refs/heads/master"));
            // resolved overrides loose given same name
            NUnit.Framework.Assert.AreSame(headR, map.Get("HEAD"));
            Iterator <Ref> itr = map.Values.Iterator();

            NUnit.Framework.Assert.IsTrue(itr.HasNext());
            NUnit.Framework.Assert.AreSame(headR, itr.Next());
            NUnit.Framework.Assert.IsTrue(itr.HasNext());
            NUnit.Framework.Assert.AreSame(master, itr.Next());
            NUnit.Framework.Assert.IsFalse(itr.HasNext());
        }
 public virtual void SetUp()
 {
     packed   = RefList.EmptyList();
     loose    = RefList.EmptyList();
     resolved = RefList.EmptyList();
 }
예제 #23
0
 public _Iterator_104(RefList <T> _enclosing)
 {
     this._enclosing = _enclosing;
 }
예제 #24
0
 internal static RefList <Ref> Copy <U>(RefList <U> other) where U : Ref
 {
     return(new RefList <Ref>(other.list, other.cnt));
 }