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()); }
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()); }
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()); }
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 } }
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 } }
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 } }
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()); }
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 } }
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 } }
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 } }