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);
        }
Beispiel #2
0
        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));
            }
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        // 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));
        }
Beispiel #5
0
 public RandomDataStreamContent(DataGenerationType dataGenerationType, long desiredLength, string fileName, Action <long> progressUpdater = null) :
     this(dataGenerationType, desiredLength, DefaultBufferSize, fileName, progressUpdater)
 {
 }