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); }
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); }