Example #1
0
        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());
        }
Example #2
0
 private LfxPointer(LfxPointerType type, ImmutableDictionary <string, string> pairs)
 {
     m__pairs = pairs.Add(TypeKey, type.ToString().ToLowerFirst());
 }