public static void TestSamplePointer(LfxPointer pointer, LfxPointerType type) { var pointerText = type == LfxPointerType.Simple ? SimplePointerText : type == LfxPointerType.Curl ? CurlPointerText : ArchivePointerText; Assert.AreEqual(type, pointer.Type); Assert.AreEqual(Version, pointer.Version); Assert.AreEqual(Method, pointer.HashMethod); Assert.AreEqual(HashValue, pointer.HashValue); Assert.AreEqual(LfxHash.Parse(HashValue), pointer.Hash); Assert.AreEqual(Size, pointer.Size); if (type == LfxPointerType.Simple) { Assert.AreEqual(null, pointer.Url); Assert.AreEqual(null, pointer.ArchiveHint); } if (type == LfxPointerType.Curl) { Assert.AreEqual(Url, pointer.Url); Assert.AreEqual(null, pointer.ArchiveHint); } if (type == LfxPointerType.Archive) { Assert.AreEqual(Url, pointer.Url); Assert.AreEqual(ArchiveHint, pointer.ArchiveHint); } Assert.AreEqual( pointerText, pointer.ToString() ); // round-trip using (var tempFile = new TempFile()) { File.WriteAllText(tempFile, pointer.ToString()); using (var pointerFile = new StreamReader(tempFile)) { var pointerRoundTrip = LfxPointer.Parse(pointerFile); Assert.IsTrue(pointer.Equals(pointerRoundTrip)); Assert.IsTrue(pointer.Equals((object)pointerRoundTrip)); Assert.AreEqual(pointer.ToString(), pointerRoundTrip.ToString()); Assert.AreEqual(pointer, pointerRoundTrip); Assert.AreEqual(pointer.GetHashCode(), pointer.GetHashCode()); } } var otherPointer = LfxPointer.Parse(OtherPointerText); Assert.AreNotEqual(pointer, otherPointer); Assert.AreNotEqual(pointer.GetHashCode(), otherPointer.GetHashCode()); }
private LfxPointer(LfxPointerType type, ImmutableDictionary <string, string> pairs) { m__pairs = pairs.Add(TypeKey, type.ToString().ToLowerFirst()); }