2023-09-11 09:59:33 +00:00
|
|
|
|
//using DistTestCore.Codex;
|
|
|
|
|
//using FileUtils;
|
|
|
|
|
//using Logging;
|
|
|
|
|
//using Utils;
|
|
|
|
|
//using static DistTestCore.Helpers.FullConnectivityHelper;
|
2023-06-06 12:36:37 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
//namespace DistTestCore.Helpers
|
|
|
|
|
//{
|
|
|
|
|
// public class PeerDownloadTestHelpers : IFullConnectivityImplementation
|
|
|
|
|
// {
|
|
|
|
|
// private readonly FullConnectivityHelper helper;
|
|
|
|
|
// private readonly BaseLog log;
|
|
|
|
|
// private readonly FileManager fileManager;
|
|
|
|
|
// private ByteSize testFileSize;
|
2023-05-29 07:13:38 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// public PeerDownloadTestHelpers(BaseLog log, FileManager fileManager)
|
|
|
|
|
// {
|
|
|
|
|
// helper = new FullConnectivityHelper(log, this);
|
|
|
|
|
// testFileSize = 1.MB();
|
|
|
|
|
// this.log = log;
|
|
|
|
|
// this.fileManager = fileManager;
|
|
|
|
|
// }
|
2023-05-29 07:13:38 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// public void AssertFullDownloadInterconnectivity(IEnumerable<IOnlineCodexNode> nodes, ByteSize testFileSize)
|
|
|
|
|
// {
|
|
|
|
|
// AssertFullDownloadInterconnectivity(nodes.Select(n => ((OnlineCodexNode)n).CodexAccess), testFileSize);
|
|
|
|
|
// }
|
2023-08-24 09:32:32 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// public void AssertFullDownloadInterconnectivity(IEnumerable<CodexAccess> nodes, ByteSize testFileSize)
|
|
|
|
|
// {
|
|
|
|
|
// this.testFileSize = testFileSize;
|
|
|
|
|
// helper.AssertFullyConnected(nodes);
|
|
|
|
|
// }
|
2023-06-06 12:36:37 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// public string Description()
|
|
|
|
|
// {
|
|
|
|
|
// return "Download Connectivity";
|
|
|
|
|
// }
|
2023-06-06 12:36:37 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// public string ValidateEntry(Entry entry, Entry[] allEntries)
|
|
|
|
|
// {
|
|
|
|
|
// return string.Empty;
|
|
|
|
|
// }
|
2023-05-29 07:13:38 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// public PeerConnectionState Check(Entry from, Entry to)
|
|
|
|
|
// {
|
|
|
|
|
// return fileManager.ScopedFiles(() => CheckConnectivity(from, to));
|
|
|
|
|
// }
|
2023-09-11 08:43:27 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// private PeerConnectionState CheckConnectivity(Entry from, Entry to)
|
|
|
|
|
// {
|
|
|
|
|
// var expectedFile = GenerateTestFile(from.Node, to.Node);
|
2023-05-29 07:13:38 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// using var uploadStream = File.OpenRead(expectedFile.Filename);
|
|
|
|
|
// var contentId = Stopwatch.Measure(log, "Upload", () => from.Node.UploadFile(uploadStream));
|
2023-05-29 07:13:38 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// try
|
|
|
|
|
// {
|
|
|
|
|
// var downloadedFile = Stopwatch.Measure(log, "Download", () => DownloadFile(to.Node, contentId, expectedFile.Label + "_downloaded"));
|
|
|
|
|
// expectedFile.AssertIsEqual(downloadedFile);
|
|
|
|
|
// return PeerConnectionState.Connection;
|
|
|
|
|
// }
|
|
|
|
|
// catch
|
|
|
|
|
// {
|
|
|
|
|
// // Should an exception occur during the download or file-content assertion,
|
|
|
|
|
// // We consider that as no-connection for the purpose of this test.
|
|
|
|
|
// return PeerConnectionState.NoConnection;
|
|
|
|
|
// }
|
|
|
|
|
// // Should an exception occur during upload, then this try is inconclusive and we try again next loop.
|
|
|
|
|
// }
|
2023-06-04 06:59:51 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// private TestFile DownloadFile(CodexAccess node, string contentId, string label)
|
|
|
|
|
// {
|
|
|
|
|
// var downloadedFile = fileManager.CreateEmptyTestFile(label);
|
|
|
|
|
// using var downloadStream = File.OpenWrite(downloadedFile.Filename);
|
|
|
|
|
// using var stream = node.DownloadFile(contentId);
|
|
|
|
|
// stream.CopyTo(downloadStream);
|
|
|
|
|
// return downloadedFile;
|
|
|
|
|
// }
|
2023-08-24 13:56:56 +00:00
|
|
|
|
|
2023-09-11 09:59:33 +00:00
|
|
|
|
// private TestFile GenerateTestFile(CodexAccess uploader, CodexAccess downloader)
|
|
|
|
|
// {
|
|
|
|
|
// var up = uploader.GetName().Replace("<", "").Replace(">", "");
|
|
|
|
|
// var down = downloader.GetName().Replace("<", "").Replace(">", "");
|
|
|
|
|
// var label = $"~from:{up}-to:{down}~";
|
|
|
|
|
// return fileManager.GenerateTestFile(testFileSize, label);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//}
|