Beispiel #1
0
        public async Task EncodeStringTestAsync()
        {
            var rnd     = new Random();
            var xorName = new byte[32];

            rnd.NextBytes(xorName);
            var typeTag       = 16000UL;
            var contentType   = ContentType.Wallet;
            var dataType      = DataType.UnpublishedImmutableData;
            var encodedString = await XorEncoder.EncodeAsync(
                xorName,
                typeTag,
                dataType,
                contentType,
                null,
                null,
                0,
                "base32z");

            Assert.IsNotNull(encodedString);
            Assert.IsTrue(encodedString.StartsWith("safe://", StringComparison.Ordinal));

            var xorUrlEncoder = await XorEncoder.EncodeAsync(
                xorName,
                typeTag,
                dataType,
                contentType,
                null,
                null,
                0);

            Assert.AreEqual(xorName, xorUrlEncoder.XorName);
            Validate.Encoder(xorUrlEncoder, dataType, (ContentType)contentType, typeTag);

            var parsedEncoder = await XorEncoder.XorUrlEncoderFromUrl(encodedString);

            Assert.AreEqual(xorName, parsedEncoder.XorName);
            Validate.Encoder(parsedEncoder, dataType, contentType, typeTag);
            Assert.AreEqual(typeTag, parsedEncoder.TypeTag);
            Assert.AreEqual(contentType, parsedEncoder.ContentType);
            Assert.AreEqual(0, parsedEncoder.ContentVersion);
        }
Beispiel #2
0
        public async Task ParseAndResolveUrlTest()
        {
            var session = await TestUtils.CreateTestApp();

            var xorUrl = await CreateFilesContainerAsync(session);

            var api = session.Nrs;

            var(_, _, nrsMapXorUrl) = await api.CreateNrsMapContainerAsync(
                TestUtils.GetRandomString(5),
                $"{xorUrl}?v=0",
                false,
                DryRun,
                SetDefault);

            var(xorUrlEncoder, resolvedFrom) = await api.ParseAndResolveUrlAsync(nrsMapXorUrl);

            Validate.Encoder(xorUrlEncoder, DataType.PublishedSeqAppendOnlyData, ContentType.FilesContainer, 1100);
            Validate.Encoder(resolvedFrom, DataType.PublishedSeqAppendOnlyData, ContentType.NrsMapContainer, 1500);
        }