public void MultipleLinksOnlyDAG() { var a = Encoding.UTF8.GetBytes("a"); var anode = new DagNode(a); var alink = anode.ToLink("a"); var b = Encoding.UTF8.GetBytes("b"); var bnode = new DagNode(b); var blink = bnode.ToLink("b"); var node = new DagNode(null, new[] { alink, blink }); Assert.AreEqual(0, node.DataBytes.Length); Assert.AreEqual(2, node.Links.Count()); Assert.AreEqual("QmbNgNPPykP4YTuAeSa3DsnBJWLVxccrqLUZDPNQfizGKs", node.Hash); RoundtripTest(node); }
public void AddLink() { var a = Encoding.UTF8.GetBytes("a"); var anode = new DagNode(a); var b = Encoding.UTF8.GetBytes("b"); var bnode = new DagNode(b); var cnode = bnode.AddLink(anode.ToLink()); Assert.IsFalse(Object.ReferenceEquals(bnode, cnode)); Assert.AreEqual(1, cnode.Data.Length); Assert.AreEqual(1, cnode.Links.Count()); Assert.AreEqual(anode.Hash, cnode.Links.First().Hash); Assert.AreEqual(anode.Size, cnode.Links.First().Size); RoundtripTest(cnode); }
void RoundtripTest(DagNode a) { var ms = new MemoryStream(); a.Write(ms); ms.Position = 0; var b = new DagNode(ms); CollectionAssert.AreEqual(a.DataBytes, b.DataBytes); Assert.AreEqual(a.Links.Count(), b.Links.Count()); a.Links.Zip(b.Links, (first, second) => { Assert.AreEqual(first.Hash, second.Hash); Assert.AreEqual(first.Name, second.Name); Assert.AreEqual(first.Size, second.Size); return(first); }).ToArray(); }
public void MultipleLinksDataDAG() { var a = Encoding.UTF8.GetBytes("a"); var anode = new DagNode(a); var alink = anode.ToLink("a"); var b = Encoding.UTF8.GetBytes("b"); var bnode = new DagNode(b); var blink = bnode.ToLink("b"); var ab = Encoding.UTF8.GetBytes("ab"); var node = new DagNode(ab, new[] { alink, blink }); CollectionAssert.AreEqual(ab, node.DataBytes); Assert.AreEqual(2, node.Links.Count()); Assert.AreEqual("Qma5sYpEc9hSYdkuXpMDJYem95Mj7hbEd9C412dEQ4ZkfP", (string)node.Id); RoundtripTest(node); }
public void RemoveLink() { var a = Encoding.UTF8.GetBytes("a"); var anode = new DagNode(a); var b = Encoding.UTF8.GetBytes("b"); var bnode = new DagNode(b); var c = Encoding.UTF8.GetBytes("c"); var cnode = new DagNode(c, new[] { anode.ToLink(), bnode.ToLink() }); var dnode = cnode.RemoveLink(anode.ToLink()); Assert.IsFalse(Object.ReferenceEquals(dnode, cnode)); Assert.AreEqual(1, dnode.DataBytes.Length); Assert.AreEqual(1, dnode.Links.Count()); Assert.AreEqual(bnode.Id, dnode.Links.First().Id); Assert.AreEqual(bnode.Size, dnode.Links.First().Size); RoundtripTest(cnode); }