Beispiel #1
0
        public void TestsFromKlaus(string line, string left, string middle, string right, string baseText, string relativeText, string resultText, string skip)
        {
            try {
                CBORObject cborLeft   = CBORObject.DecodeFromBytes(HexToString(left));
                CBORObject cborRight  = CBORObject.DecodeFromBytes(HexToString(right));
                CBORObject cborMiddle = CBORObject.DecodeFromBytes(HexToString(middle));

                // Console.WriteLine($"line # = {line}");
                // Console.WriteLine($"base = {cborLeft}");
                // Console.WriteLine($"href = {cborMiddle}");
                // Console.WriteLine($"result = {cborRight}");

                Cori coriBase   = new Cori(cborLeft);
                Cori coriRight  = new Cori(cborRight);
                Cori coriMiddle = new Cori(cborMiddle);

                Assert.IsTrue(coriBase.IsAbsolute());
                Assert.IsFalse(coriBase.IsRelative());
                Assert.IsTrue(coriRight.IsAbsolute());
                Assert.IsFalse(coriRight.IsRelative());
                Assert.IsTrue(coriMiddle.IsWellFormed());

                Cori result = coriMiddle.ResolveTo(coriBase);
                Assert.AreEqual(coriRight, result);

                if (cborMiddle.Count > 0 && cborMiddle[0].AsInt32() == 5 && cborMiddle[1].AsInt32() == 1)
                {
                    return;
                }

                Cori newHref = coriRight.MakeRelative(coriBase);
                // Console.WriteLine($"computed href = {newHref.Data}");

                Cori resolve2 = newHref.ResolveTo(coriBase);
                Assert.AreEqual(coriRight.Data.ToString(), resolve2.Data.ToString());

                if (skip != "0")
                {
                    // Assert.AreEqual(coriMiddle.Data.ToString(), newHref.Data.ToString());
                }
            }
            catch (Exception e) {
                Assert.Fail(e.ToString());
            }
        }