public RandomDataStreamContent(DataGenerationType dataGenerationType, long desiredLength, int bufferSize, Action <long> progressUpdater = null) { if (bufferSize <= 0) { throw new ArgumentOutOfRangeException(nameof(bufferSize)); } _bufferSize = bufferSize; _progressUpdater = progressUpdater; _desiredLength = desiredLength; _generator = DataGeneratorFactory.GetNewDataGenerator(dataGenerationType); }
public static IDataGenerator GetNewDataGenerator(DataGenerationType dataGenerationType) { switch (dataGenerationType) { case DataGenerationType.Binary: return(new RandomBinaryDataGenerator()); case DataGenerationType.Text: return(new RandomUtf8TextDataGenerator()); default: throw new InvalidOperationException(nameof(dataGenerationType)); } }
private RandomDataStreamContent GenerateFileContent(string fileName, long fileSize, DataGenerationType type) { var fileContent = new RandomDataStreamContent(type, fileSize, fileName); fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "\"files\"", FileName = "\"" + fileName + "\"" }; var mediaType = type == DataGenerationType.Binary ? "application/octet-stream" : "text/plain"; fileContent.Headers.ContentType = new MediaTypeHeaderValue(mediaType); return(fileContent); }
// 10MB/100MB/1GB [5:3:1] private RandomDataStreamContent FiveThreeOneChanceOfTenMegHundredMegOneGig(string fileName, DataGenerationType type) { // We do this by getting a random value between 0 and 8, and then deciding on size: // 0 -> 10 MB // 1 -> 10 MB // 2 -> 10 MB // 3 -> 10 MB // 4 -> 10 MB // 5 -> 100 MB // 6 -> 100 MB // 7 -> 100 MB // 8 -> 1 GB long fileSize; var selector = Random.Next(0, 8); if (selector <= 4) { fileSize = 10 * OneMegabyte; } else if (selector < 8) { fileSize = 100 * OneMegabyte; } else { fileSize = OneGigabyte; } return(GenerateFileContent(fileName, fileSize, type)); }
public RandomDataStreamContent(DataGenerationType dataGenerationType, long desiredLength, string fileName, Action <long> progressUpdater = null) : this(dataGenerationType, desiredLength, DefaultBufferSize, fileName, progressUpdater) { }