using System.Security.Cryptography; using CodexReleaseTests.MarketTests; using Nethereum.JsonRpc.Client; using NUnit.Framework; using Utils; namespace CodexReleaseTests.DataTests { public class DecodeTest : MarketplaceAutoBootstrapDistTest { protected override int NumberOfHosts => 0; protected override int NumberOfClients => 2; protected override ByteSize HostAvailabilitySize => 0.Bytes(); protected override TimeSpan HostAvailabilityMaxDuration => TimeSpan.FromSeconds(0.0); [Test] public void DecodeDataset() { var clients = StartClients(); var file = GenerateTestFile(10.MB()); var bCid = clients[0].UploadFile(file); var request = clients[0].Marketplace.RequestStorage(new CodexClient.StoragePurchaseRequest(bCid) { Expiry = TimeSpan.FromMinutes(5.0), Duration = TimeSpan.FromMinutes(100.0), CollateralPerByte = 100.Tst(), MinRequiredNumberOfNodes = 6, NodeFailureTolerance = 3, PricePerBytePerSecond = 100.Tst(), ProofProbability = 20 }); var eCid = request.ContentId; Assert.That(bCid.Id, Is.Not.EqualTo(eCid.Id)); var basic = clients[0].DownloadManifestOnly(bCid); var encoded = clients[0].DownloadManifestOnly(eCid); Assert.That(basic.Manifest.Protected, Is.False); Assert.That(encoded.Manifest.Protected, Is.True); var decoded = clients[1].DownloadContent(eCid); file.AssertIsEqual(decoded); } } }