public static void NrsContainerInfo(NrsMapContainerInfo info) { Assert.AreNotEqual(DataType.SafeKey, info.DataType); Assert.IsNotNull(info.NrsMap); Assert.IsNotNull(info.PublicName); Assert.NotZero(info.TypeTag); Assert.IsNotNull(info.Version); Assert.IsNotNull(info.XorUrl); Validate.XorName(info.XorName); }
public static void Encoder(XorUrlEncoder encoder, DataType expectedDataType, ContentType expectedContentType, ulong expectedTypeTag) { Assert.AreEqual(expectedContentType, encoder.ContentType); Assert.Zero(encoder.ContentVersion); Assert.AreEqual(expectedDataType, encoder.DataType); Assert.AreEqual(1, encoder.EncodingVersion); // todo: these need to be validated once they contain the correct values /** * Assert.AreEqual(string.Empty, encoder.Path); * Assert.AreEqual(string.Empty, encoder.SubNames); **/ Assert.AreEqual(expectedTypeTag, encoder.TypeTag); Validate.XorName(encoder.XorName); }
public async Task ParseUrlTest() { var session = await TestUtils.CreateTestApp(); var(xorUrl, _) = await session.Keys.KeysCreatePreloadTestCoinsAsync("1"); var xorUrlEncoder = await Nrs.ParseUrlAsync(xorUrl); // todo: verify that these are actually the expected values Assert.AreEqual(ContentType.Raw, xorUrlEncoder.ContentType); Assert.AreEqual(0, xorUrlEncoder.ContentVersion); Assert.AreEqual(DataType.SafeKey, xorUrlEncoder.DataType); Assert.AreEqual(1, xorUrlEncoder.EncodingVersion); Assert.AreEqual(string.Empty, xorUrlEncoder.Path); Assert.AreEqual("[]", xorUrlEncoder.SubNames); Assert.AreEqual(0, xorUrlEncoder.TypeTag); Validate.XorName(xorUrlEncoder.XorName); }
public void ValidateFetchOrInspectDataTypes(ISafeData data, bool isFetch = false, bool expectNrs = false) { if (data != null) { switch (data) { case SafeKey key: Validate.XorName(key.XorName); Validate.EnsureNullNrsContainerInfo(key.ResolvedFrom); break; case Wallet wallet: Validate.XorName(wallet.XorName); Validate.EnsureNullNrsContainerInfo(wallet.ResolvedFrom); if (isFetch) { Assert.NotZero(wallet.Balances.WalletBalances.Count); } else { Assert.Zero(wallet.Balances.WalletBalances.Count); } break; case FilesContainer filesContainer: Validate.XorName(filesContainer.XorName); if (expectNrs) { Validate.NrsContainerInfo(filesContainer.ResolvedFrom); } else { Validate.EnsureNullNrsContainerInfo(filesContainer.ResolvedFrom); } break; case PublishedImmutableData immutableData: Assert.IsNotNull(immutableData.Data); Validate.XorName(immutableData.XorName); if (isFetch) { Assert.NotZero(immutableData.Data.Length); } else { Assert.Zero(immutableData.Data.Length); } if (expectNrs) { Validate.NrsContainerInfo(immutableData.ResolvedFrom); } else { Validate.EnsureNullNrsContainerInfo(immutableData.ResolvedFrom); } break; case SafeDataFetchFailed dataFetchOrInspectFailed: Assert.IsNotNull(dataFetchOrInspectFailed.Description); Assert.AreNotEqual(0, dataFetchOrInspectFailed.Code); Assert.Fail(dataFetchOrInspectFailed.Description); break; } } else { if (isFetch) { Assert.Fail("Fetch data type not available"); } else { Assert.Fail("Inspect data type not available"); } } }