Beispiel #1
0
        public void testMerge_PackedLooseLoose()
        {
            global::GitSharp.Core.Ref refA     = newRef("A", ID_ONE);
            global::GitSharp.Core.Ref refB_ONE = newRef("B", ID_ONE);
            global::GitSharp.Core.Ref refB_TWO = newRef("B", ID_TWO);
            global::GitSharp.Core.Ref refc     = newRef("c", ID_ONE);

            packed = toList(refA, refB_ONE);
            loose  = toList(refB_TWO, refc);

            RefMap map = new RefMap("", packed, loose, resolved);

            Assert.AreEqual(3, map.size());
            Assert.IsFalse(map.isEmpty());
            Assert.IsTrue(map.containsKey(refA.Name));
            Assert.AreSame(refA, map.get(refA.Name));

            // loose overrides packed given same name
            Assert.AreSame(refB_TWO, map.get(refB_ONE.Name));

            var itr = map.values().iterator();

            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(refA, itr.next());
            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(refB_TWO, itr.next());
            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(refc, itr.next());
            Assert.IsFalse(itr.hasNext());
        }
Beispiel #2
0
        public void testMerge_WithPrefix()
        {
            global::GitSharp.Core.Ref a = newRef("refs/heads/A", ID_ONE);
            global::GitSharp.Core.Ref b = newRef("refs/heads/foo/bar/B", ID_TWO);
            global::GitSharp.Core.Ref c = newRef("refs/heads/foo/rab/C", ID_TWO);
            global::GitSharp.Core.Ref g = newRef("refs/heads/g", ID_ONE);
            packed = toList(a, b, c, g);

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

            Assert.AreEqual(2, map.size());

            Assert.AreSame(b, map.get("bar/B"));
            Assert.AreSame(c, map.get("rab/C"));
            Assert.IsNull(map.get("refs/heads/foo/bar/B"));
            Assert.IsNull(map.get("refs/heads/A"));

            Assert.IsTrue(map.containsKey("bar/B"));
            Assert.IsTrue(map.containsKey("rab/C"));
            Assert.IsFalse(map.containsKey("refs/heads/foo/bar/B"));
            Assert.IsFalse(map.containsKey("refs/heads/A"));

            IteratorBase <RefMap.Ent> itr = map.entrySet().iterator();

            RefMap.Ent ent;
            Assert.IsTrue(itr.hasNext());
            ent = itr.next();
            Assert.AreEqual("bar/B", ent.getKey());
            Assert.AreSame(b, ent.getValue());
            Assert.IsTrue(itr.hasNext());
            ent = itr.next();
            Assert.AreEqual("rab/C", ent.getKey());
            Assert.AreSame(c, ent.getValue());
            Assert.IsFalse(itr.hasNext());
        }
Beispiel #3
0
        public void testMerge_HeadMaster()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            global::GitSharp.Core.Ref headU  = newRef("HEAD", "refs/heads/master");
            global::GitSharp.Core.Ref headR  = newRef("HEAD", master);

            loose    = toList(headU, master);
            resolved = toList(headR);

            RefMap map = new RefMap("", packed, loose, resolved);

            Assert.AreEqual(2, map.size());
            Assert.IsFalse(map.isEmpty());
            Assert.IsTrue(map.containsKey("refs/heads/master"));
            Assert.AreSame(master, map.get("refs/heads/master"));

            // resolved overrides loose given same name
            Assert.AreSame(headR, map.get("HEAD"));

            IteratorBase <global::GitSharp.Core.Ref> itr = map.values().iterator();

            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(headR, itr.next());
            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(master, itr.next());
            Assert.IsFalse(itr.hasNext());
        }
Beispiel #4
0
        public void testNotEmpty_WithPrefix()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            packed = toList(master);

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

            Assert.IsFalse(map.isEmpty()); // before size was computed
            Assert.AreEqual(1, map.size());
            Assert.IsFalse(map.isEmpty()); // after size was computed
            Assert.AreSame(master, map.values().iterator().next());
        }
Beispiel #5
0
        public void testEmpty_NoPrefix2()
        {
            RefMap map = new RefMap();
            Assert.IsTrue(map.isEmpty()); // before size was computed
            Assert.AreEqual(0, map.size());
            Assert.IsTrue(map.isEmpty()); // after size was computed

            Assert.IsFalse(map.entrySet().iterator().hasNext());
            Assert.IsFalse(map.keySet().iterator().hasNext());
            Assert.IsFalse(map.containsKey("a"));
            Assert.IsNull(map.get("a"));
        }
Beispiel #6
0
		public virtual void TestEmpty_NoPrefix1()
		{
			RefMap map = new RefMap(string.Empty, packed, loose, resolved);
			NUnit.Framework.Assert.IsTrue(map.IsEmpty());
			// before size was computed
			NUnit.Framework.Assert.AreEqual(0, map.Count);
			NUnit.Framework.Assert.IsTrue(map.IsEmpty());
			// after size was computed
			NUnit.Framework.Assert.IsFalse(map.EntrySet().Iterator().HasNext());
			NUnit.Framework.Assert.IsFalse(map.Keys.Iterator().HasNext());
			NUnit.Framework.Assert.IsFalse(map.ContainsKey("a"));
			NUnit.Framework.Assert.IsNull(map.Get("a"));
		}
Beispiel #7
0
        public void testEmpty_NoPrefix2()
        {
            RefMap map = new RefMap();

            Assert.IsTrue(map.isEmpty()); // before size was computed
            Assert.AreEqual(0, map.size());
            Assert.IsTrue(map.isEmpty()); // after size was computed

            Assert.IsFalse(map.entrySet().iterator().hasNext());
            Assert.IsFalse(map.keySet().iterator().hasNext());
            Assert.IsFalse(map.containsKey("a"));
            Assert.IsNull(map.get("a"));
        }
Beispiel #8
0
        public void testClear()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            loose = toList(master);

            RefMap map = new RefMap("", packed, loose, resolved);
            Assert.AreSame(master, map.get("refs/heads/master"));

            map.clear();
            Assert.IsNull(map.get("refs/heads/master"));
            Assert.IsTrue(map.isEmpty());
            Assert.AreEqual(0, map.size());
        }
Beispiel #9
0
        public void testClear()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            loose = toList(master);

            RefMap map = new RefMap("", packed, loose, resolved);

            Assert.AreSame(master, map.get("refs/heads/master"));

            map.clear();
            Assert.IsNull(map.get("refs/heads/master"));
            Assert.IsTrue(map.isEmpty());
            Assert.AreEqual(0, map.size());
        }
Beispiel #10
0
        public void testEmpty_WithPrefix()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            packed = toList(master);

            RefMap map = new RefMap("refs/tags/", packed, loose, resolved);

            Assert.IsTrue(map.isEmpty()); // before size was computed
            Assert.AreEqual(0, map.size());
            Assert.IsTrue(map.isEmpty()); // after size was computed

            Assert.IsFalse(map.entrySet().iterator().hasNext());
            Assert.IsFalse(map.keySet().iterator().hasNext());
        }
Beispiel #11
0
        public void testPut_KeyMustMatchName_WithPrefix()
        {
            global::GitSharp.Core.Ref refA = newRef("refs/heads/A", ID_ONE);
            RefMap map = new RefMap("refs/heads/", packed, loose, resolved);

            try
            {
                map.put("FOO", refA);
                Assert.Fail("map accepted invalid key/value pair");
            }
            catch (ArgumentException)
            {
                // expected
            }
        }
Beispiel #12
0
        public void testPut_CollapseResolved()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            global::GitSharp.Core.Ref headU  = newRef("HEAD", "refs/heads/master");
            global::GitSharp.Core.Ref headR  = newRef("HEAD", master);
            global::GitSharp.Core.Ref a      = newRef("refs/heads/A", ID_ONE);

            loose    = toList(headU, master);
            resolved = toList(headR);

            RefMap map = new RefMap("", packed, loose, resolved);

            Assert.IsNull(map.put(a.getName(), a));
            Assert.AreSame(a, map.get(a.getName()));
            Assert.AreSame(headR, map.get("HEAD"));
        }
Beispiel #13
0
        public void testEntryType()
        {
            global::GitSharp.Core.Ref a = newRef("refs/heads/A", ID_ONE);
            global::GitSharp.Core.Ref b = newRef("refs/heads/B", ID_TWO);

            packed = toList(a, b);

            RefMap map = new RefMap("refs/heads/", packed, loose, resolved);
            IteratorBase <RefMap.Ent> itr = map.entrySet().iterator();

            RefMap.Ent ent_a = itr.next();
            RefMap.Ent ent_b = itr.next();

            Assert.AreEqual(ent_a.GetHashCode(), "A".GetHashCode());
            Assert.IsTrue(ent_a.Equals(ent_a));
            Assert.IsFalse(ent_a.Equals(ent_b));

            Assert.AreEqual(a.ToString(), ent_a.ToString());
        }
Beispiel #14
0
        public void testToString_NoPrefix()
        {
            global::GitSharp.Core.Ref a = newRef("refs/heads/A", ID_ONE);
            global::GitSharp.Core.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("", packed, loose, resolved);

            Assert.AreEqual(exp.ToString(), map.ToString());
        }
Beispiel #15
0
        public void testIterator_FailsAtEnd()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            loose = toList(master);

            RefMap map = new RefMap("", packed, loose, resolved);
            IteratorBase <global::GitSharp.Core.Ref> itr = map.values().iterator();

            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(master, itr.next());
            try
            {
                itr.next();
                Assert.Fail("iterator allowed next");
            }
            catch (IndexOutOfRangeException)
            {
                // expected
            }
        }
Beispiel #16
0
        public void testIterator_RefusesRemove()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            loose = toList(master);

            RefMap map = new RefMap("", packed, loose, resolved);
            IteratorBase <global::GitSharp.Core.Ref> itr = map.values().iterator();

            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(master, itr.next());
            try
            {
                itr.remove();
                Assert.Fail("iterator allowed remove");
            }
            catch (NotSupportedException)
            {
                // expected
            }
        }
Beispiel #17
0
        public void testEntryTypeSet()
        {
            global::GitSharp.Core.Ref refA_one = newRef("refs/heads/A", ID_ONE);
            global::GitSharp.Core.Ref refA_two = newRef("refs/heads/A", ID_TWO);

            packed = toList(refA_one);

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

            Assert.AreSame(refA_one, map.get("A"));

            RefMap.Ent ent = map.entrySet().iterator().next();
            Assert.AreEqual("A", ent.getKey());
            Assert.AreSame(refA_one, ent.getValue());

            Assert.AreSame(refA_one, ent.setValue(refA_two));
            Assert.AreSame(refA_two, ent.getValue());
            Assert.AreSame(refA_two, map.get("A"));
            Assert.AreEqual(1, map.size());
        }
Beispiel #18
0
        public void testPut_WithPrefix()
        {
            global::GitSharp.Core.Ref refA_one = newRef("refs/heads/A", ID_ONE);
            global::GitSharp.Core.Ref refA_two = newRef("refs/heads/A", ID_TWO);

            packed = toList(refA_one);

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

            Assert.AreSame(refA_one, map.get("A"));
            Assert.AreSame(refA_one, map.put("A", refA_two));

            // map changed, but packed, loose did not
            Assert.AreSame(refA_two, map.get("A"));
            Assert.AreSame(refA_one, packed.get(0));
            Assert.AreEqual(0, loose.size());

            Assert.AreSame(refA_two, map.put("A", refA_one));
            Assert.AreSame(refA_one, map.get("A"));
        }
Beispiel #19
0
        public void testRemove()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            global::GitSharp.Core.Ref headU  = newRef("HEAD", "refs/heads/master");
            global::GitSharp.Core.Ref headR  = newRef("HEAD", master);

            packed   = toList(master);
            loose    = toList(headU, master);
            resolved = toList(headR);

            RefMap map = new RefMap("", packed, loose, resolved);

            Assert.IsNull(map.remove("not.a.reference"));

            Assert.AreSame(master, map.remove("refs/heads/master"));
            Assert.IsNull(map.get("refs/heads/master"));

            Assert.AreSame(headR, map.remove("HEAD"));
            Assert.IsNull(map.get("HEAD"));

            Assert.IsTrue(map.isEmpty());
        }
Beispiel #20
0
        public void testIterator_MissingUnresolvedSymbolicRefIsBug()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            global::GitSharp.Core.Ref headR  = newRef("HEAD", master);

            loose = toList(master);
            // loose should have added newRef("HEAD", "refs/heads/master")
            resolved = toList(headR);

            var map = new RefMap("", packed, loose, resolved);
            IteratorBase <global::GitSharp.Core.Ref> itr = map.values().iterator();

            try
            {
                itr.hasNext();
                Assert.Fail("iterator did not catch bad input");
            }
            catch (InvalidOperationException)
            {
                // expected
            }
        }
Beispiel #21
0
        public void testEntryType()
        {
            global::GitSharp.Core.Ref a = newRef("refs/heads/A", ID_ONE);
            global::GitSharp.Core.Ref b = newRef("refs/heads/B", ID_TWO);

            packed = toList(a, b);

            RefMap map = new RefMap("refs/heads/", packed, loose, resolved);
            IteratorBase<RefMap.Ent> itr = map.entrySet().iterator();
            RefMap.Ent ent_a = itr.next();
            RefMap.Ent ent_b = itr.next();

            Assert.AreEqual(ent_a.GetHashCode(), "A".GetHashCode());
            Assert.IsTrue(ent_a.Equals(ent_a));
            Assert.IsFalse(ent_a.Equals(ent_b));

            Assert.AreEqual(a.ToString(), ent_a.ToString());
        }
Beispiel #22
0
        public void testEntryTypeSet()
        {
            global::GitSharp.Core.Ref refA_one = newRef("refs/heads/A", ID_ONE);
            global::GitSharp.Core.Ref refA_two = newRef("refs/heads/A", ID_TWO);

            packed = toList(refA_one);

            RefMap map = new RefMap("refs/heads/", packed, loose, resolved);
            Assert.AreSame(refA_one, map.get("A"));

            RefMap.Ent ent = map.entrySet().iterator().next();
            Assert.AreEqual("A", ent.getKey());
            Assert.AreSame(refA_one, ent.getValue());

            Assert.AreSame(refA_one, ent.setValue(refA_two));
            Assert.AreSame(refA_two, ent.getValue());
            Assert.AreSame(refA_two, map.get("A"));
            Assert.AreEqual(1, map.size());
        }
Beispiel #23
0
		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)
			{
			}
		}
Beispiel #24
0
        public void testEmpty_WithPrefix()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            packed = toList(master);

            RefMap map = new RefMap("refs/tags/", packed, loose, resolved);
            Assert.IsTrue(map.isEmpty()); // before size was computed
            Assert.AreEqual(0, map.size());
            Assert.IsTrue(map.isEmpty()); // after size was computed

            Assert.IsFalse(map.entrySet().iterator().hasNext());
            Assert.IsFalse(map.keySet().iterator().hasNext());
        }
Beispiel #25
0
		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());
		}
Beispiel #26
0
        public void testIterator_FailsAtEnd()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            loose = toList(master);

            RefMap map = new RefMap("", packed, loose, resolved);
            IteratorBase<global::GitSharp.Core.Ref> itr = map.values().iterator();
            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(master, itr.next());
            try
            {
                itr.next();
                Assert.Fail("iterator allowed next");
            }
            catch (IndexOutOfRangeException)
            {
                // expected
            }
        }
Beispiel #27
0
        public void testToString_WithPrefix()
        {
            global::GitSharp.Core.Ref a = newRef("refs/heads/A", ID_ONE);
            global::GitSharp.Core.Ref b = newRef("refs/heads/foo/B", ID_TWO);
            global::GitSharp.Core.Ref c = newRef("refs/heads/foo/C", ID_TWO);
            global::GitSharp.Core.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);
            Assert.AreEqual(exp.ToString(), map.ToString());
        }
Beispiel #28
0
		public virtual void TestPut_KeyMustMatchName_WithPrefix()
		{
			Ref refA = NewRef("refs/heads/A", ID_ONE);
			RefMap map = new RefMap("refs/heads/", packed, loose, resolved);
			try
			{
				map.Put("FOO", refA);
				NUnit.Framework.Assert.Fail("map accepted invalid key/value pair");
			}
			catch (ArgumentException)
			{
			}
		}
Beispiel #29
0
        public void testPut_CollapseResolved()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            global::GitSharp.Core.Ref headU = newRef("HEAD", "refs/heads/master");
            global::GitSharp.Core.Ref headR = newRef("HEAD", master);
            global::GitSharp.Core.Ref a = newRef("refs/heads/A", ID_ONE);

            loose = toList(headU, master);
            resolved = toList(headR);

            RefMap map = new RefMap("", packed, loose, resolved);
            Assert.IsNull(map.put(a.getName(), a));
            Assert.AreSame(a, map.get(a.getName()));
            Assert.AreSame(headR, map.get("HEAD"));
        }
Beispiel #30
0
        public void testPut_WithPrefix()
        {
            global::GitSharp.Core.Ref refA_one = newRef("refs/heads/A", ID_ONE);
            global::GitSharp.Core.Ref refA_two = newRef("refs/heads/A", ID_TWO);

            packed = toList(refA_one);

            RefMap map = new RefMap("refs/heads/", packed, loose, resolved);
            Assert.AreSame(refA_one, map.get("A"));
            Assert.AreSame(refA_one, map.put("A", refA_two));

            // map changed, but packed, loose did not
            Assert.AreSame(refA_two, map.get("A"));
            Assert.AreSame(refA_one, packed.get(0));
            Assert.AreEqual(0, loose.size());

            Assert.AreSame(refA_two, map.put("A", refA_one));
            Assert.AreSame(refA_one, map.get("A"));
        }
Beispiel #31
0
        public void testMerge_WithPrefix()
        {
            global::GitSharp.Core.Ref a = newRef("refs/heads/A", ID_ONE);
            global::GitSharp.Core.Ref b = newRef("refs/heads/foo/bar/B", ID_TWO);
            global::GitSharp.Core.Ref c = newRef("refs/heads/foo/rab/C", ID_TWO);
            global::GitSharp.Core.Ref g = newRef("refs/heads/g", ID_ONE);
            packed = toList(a, b, c, g);

            RefMap map = new RefMap("refs/heads/foo/", packed, loose, resolved);
            Assert.AreEqual(2, map.size());

            Assert.AreSame(b, map.get("bar/B"));
            Assert.AreSame(c, map.get("rab/C"));
            Assert.IsNull(map.get("refs/heads/foo/bar/B"));
            Assert.IsNull(map.get("refs/heads/A"));

            Assert.IsTrue(map.containsKey("bar/B"));
            Assert.IsTrue(map.containsKey("rab/C"));
            Assert.IsFalse(map.containsKey("refs/heads/foo/bar/B"));
            Assert.IsFalse(map.containsKey("refs/heads/A"));

            IteratorBase<RefMap.Ent> itr = map.entrySet().iterator();
            RefMap.Ent ent;
            Assert.IsTrue(itr.hasNext());
            ent = itr.next();
            Assert.AreEqual("bar/B", ent.getKey());
            Assert.AreSame(b, ent.getValue());
            Assert.IsTrue(itr.hasNext());
            ent = itr.next();
            Assert.AreEqual("rab/C", ent.getKey());
            Assert.AreSame(c, ent.getValue());
            Assert.IsFalse(itr.hasNext());
        }
Beispiel #32
0
        public void testMerge_HeadMaster()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            global::GitSharp.Core.Ref headU = newRef("HEAD", "refs/heads/master");
            global::GitSharp.Core.Ref headR = newRef("HEAD", master);

            loose = toList(headU, master);
            resolved = toList(headR);

            RefMap map = new RefMap("", packed, loose, resolved);
            Assert.AreEqual(2, map.size());
            Assert.IsFalse(map.isEmpty());
            Assert.IsTrue(map.containsKey("refs/heads/master"));
            Assert.AreSame(master, map.get("refs/heads/master"));

            // resolved overrides loose given same name
            Assert.AreSame(headR, map.get("HEAD"));

            IteratorBase<global::GitSharp.Core.Ref> itr = map.values().iterator();
            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(headR, itr.next());
            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(master, itr.next());
            Assert.IsFalse(itr.hasNext());
        }
Beispiel #33
0
		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"));
		}
Beispiel #34
0
        public void testIterator_MissingUnresolvedSymbolicRefIsBug()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            global::GitSharp.Core.Ref headR = newRef("HEAD", master);

            loose = toList(master);
            // loose should have added newRef("HEAD", "refs/heads/master")
            resolved = toList(headR);

            var map = new RefMap("", packed, loose, resolved);
            IteratorBase<global::GitSharp.Core.Ref> itr = map.values().iterator();

            try
            {
                itr.hasNext();
                Assert.Fail("iterator did not catch bad input");
            }
            catch (InvalidOperationException err)
            {
                // expected
            }
        }
Beispiel #35
0
		public virtual void TestMerge_PackedLooseLoose()
		{
			Ref refA = NewRef("A", ID_ONE);
			Ref refB_ONE = NewRef("B", ID_ONE);
			Ref refB_TWO = NewRef("B", ID_TWO);
			Ref refc = NewRef("c", ID_ONE);
			packed = ToList(refA, refB_ONE);
			loose = ToList(refB_TWO, refc);
			RefMap map = new RefMap(string.Empty, packed, loose, resolved);
			NUnit.Framework.Assert.AreEqual(3, map.Count);
			NUnit.Framework.Assert.IsFalse(map.IsEmpty());
			NUnit.Framework.Assert.IsTrue(map.ContainsKey(refA.GetName()));
			NUnit.Framework.Assert.AreSame(refA, map.Get(refA.GetName()));
			// loose overrides packed given same name
			NUnit.Framework.Assert.AreSame(refB_TWO, map.Get(refB_ONE.GetName()));
			Iterator<Ref> itr = map.Values.Iterator();
			NUnit.Framework.Assert.IsTrue(itr.HasNext());
			NUnit.Framework.Assert.AreSame(refA, itr.Next());
			NUnit.Framework.Assert.IsTrue(itr.HasNext());
			NUnit.Framework.Assert.AreSame(refB_TWO, itr.Next());
			NUnit.Framework.Assert.IsTrue(itr.HasNext());
			NUnit.Framework.Assert.AreSame(refc, itr.Next());
			NUnit.Framework.Assert.IsFalse(itr.HasNext());
		}
Beispiel #36
0
        public void testIterator_RefusesRemove()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            loose = toList(master);

            RefMap map = new RefMap("", packed, loose, resolved);
            IteratorBase<global::GitSharp.Core.Ref> itr = map.values().iterator();
            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(master, itr.next());
            try
            {
                itr.remove();
                Assert.Fail("iterator allowed remove");
            }
            catch (NotSupportedException err)
            {
                // expected
            }
        }
Beispiel #37
0
		public virtual void TestMerge_WithPrefix()
		{
			Ref a = NewRef("refs/heads/A", ID_ONE);
			Ref b = NewRef("refs/heads/foo/bar/B", ID_TWO);
			Ref c = NewRef("refs/heads/foo/rab/C", ID_TWO);
			Ref g = NewRef("refs/heads/g", ID_ONE);
			packed = ToList(a, b, c, g);
			RefMap map = new RefMap("refs/heads/foo/", packed, loose, resolved);
			NUnit.Framework.Assert.AreEqual(2, map.Count);
			NUnit.Framework.Assert.AreSame(b, map.Get("bar/B"));
			NUnit.Framework.Assert.AreSame(c, map.Get("rab/C"));
			NUnit.Framework.Assert.IsNull(map.Get("refs/heads/foo/bar/B"));
			NUnit.Framework.Assert.IsNull(map.Get("refs/heads/A"));
			NUnit.Framework.Assert.IsTrue(map.ContainsKey("bar/B"));
			NUnit.Framework.Assert.IsTrue(map.ContainsKey("rab/C"));
			NUnit.Framework.Assert.IsFalse(map.ContainsKey("refs/heads/foo/bar/B"));
			NUnit.Framework.Assert.IsFalse(map.ContainsKey("refs/heads/A"));
			Iterator<KeyValuePair<string, Ref>> itr = map.EntrySet().Iterator();
			KeyValuePair<string, Ref> ent;
			NUnit.Framework.Assert.IsTrue(itr.HasNext());
			ent = itr.Next();
			NUnit.Framework.Assert.AreEqual("bar/B", ent.Key);
			NUnit.Framework.Assert.AreSame(b, ent.Value);
			NUnit.Framework.Assert.IsTrue(itr.HasNext());
			ent = itr.Next();
			NUnit.Framework.Assert.AreEqual("rab/C", ent.Key);
			NUnit.Framework.Assert.AreSame(c, ent.Value);
			NUnit.Framework.Assert.IsFalse(itr.HasNext());
		}
Beispiel #38
0
        public void testMerge_PackedLooseLoose()
        {
            global::GitSharp.Core.Ref refA = newRef("A", ID_ONE);
            global::GitSharp.Core.Ref refB_ONE = newRef("B", ID_ONE);
            global::GitSharp.Core.Ref refB_TWO = newRef("B", ID_TWO);
            global::GitSharp.Core.Ref refc = newRef("c", ID_ONE);

            packed = toList(refA, refB_ONE);
            loose = toList(refB_TWO, refc);

            RefMap map = new RefMap("", packed, loose, resolved);
            Assert.AreEqual(3, map.size());
            Assert.IsFalse(map.isEmpty());
            Assert.IsTrue(map.containsKey(refA.Name));
            Assert.AreSame(refA, map.get(refA.Name));

            // loose overrides packed given same name
            Assert.AreSame(refB_TWO, map.get(refB_ONE.Name));

            var itr = map.values().iterator();
            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(refA, itr.next());
            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(refB_TWO, itr.next());
            Assert.IsTrue(itr.hasNext());
            Assert.AreSame(refc, itr.next());
            Assert.IsFalse(itr.hasNext());
        }
Beispiel #39
0
		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());
		}
Beispiel #40
0
        public void testNotEmpty_WithPrefix()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            packed = toList(master);

            RefMap map = new RefMap("refs/heads/", packed, loose, resolved);
            Assert.IsFalse(map.isEmpty()); // before size was computed
            Assert.AreEqual(1, map.size());
            Assert.IsFalse(map.isEmpty()); // after size was computed
            Assert.AreSame(master, map.values().iterator().next());
        }
Beispiel #41
0
		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());
		}
Beispiel #42
0
 public void testPut_KeyMustMatchName_WithPrefix()
 {
     global::GitSharp.Core.Ref refA = newRef("refs/heads/A", ID_ONE);
     RefMap map = new RefMap("refs/heads/", packed, loose, resolved);
     try
     {
         map.put("FOO", refA);
         Assert.Fail("map accepted invalid key/value pair");
     }
     catch (ArgumentException err)
     {
         // expected
     }
 }
Beispiel #43
0
		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());
		}
Beispiel #44
0
        public void testRemove()
        {
            global::GitSharp.Core.Ref master = newRef("refs/heads/master", ID_ONE);
            global::GitSharp.Core.Ref headU = newRef("HEAD", "refs/heads/master");
            global::GitSharp.Core.Ref headR = newRef("HEAD", master);

            packed = toList(master);
            loose = toList(headU, master);
            resolved = toList(headR);

            RefMap map = new RefMap("", packed, loose, resolved);
            Assert.IsNull(map.remove("not.a.reference"));

            Assert.AreSame(master, map.remove("refs/heads/master"));
            Assert.IsNull(map.get("refs/heads/master"));

            Assert.AreSame(headR, map.remove("HEAD"));
            Assert.IsNull(map.get("HEAD"));

            Assert.IsTrue(map.isEmpty());
        }
Beispiel #45
0
		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.ToString());
		}
Beispiel #46
0
		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"));
		}
Beispiel #47
0
		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);
		}