Esempio n. 1
0
        private bool InitParameter(UploadParameter data)
        {
            if (!CommonFunction.IsNetworkAvailable())//Check Network before publish
            {
                System.Windows.MessageBox.Show(GlobalData.FindResource("Publish_Window_S_ErrorMessage"));

                return(false);
            }

            IDocumentService doc = ServiceLocator.Current.GetInstance <IDocumentService>();

            if (doc != null && doc.Document != null)
            {
                Guid sGUID = doc.Document.Guid;

                data.id = ConfigFileManager.GetSectionValue(ConstData.sRemoteID, sGUID.ToString());
                data.ProjectPassword = ConfigFileManager.GetSectionValue(ConstData.sProjectPassword, sGUID.ToString());
                data.DocGUID         = sGUID.ToString();

                doc.Document.GeneratorConfigurationSet.DefaultHtmlConfiguration.CurrentPage = Guid.Empty;
            }

            if (String.IsNullOrEmpty(data.id))
            {
                return(true);
            }
            else
            {
                return(HttpGetFileInfo(data));
            }
        }
Esempio n. 2
0
        public ActionResult UploadImage()
        {
            var files = HttpContext.Request.Files;

            if (files == null || files.Count < 1)
            {
                return(Json(new LayuiUploadImageOut(1, "没有找到上传图片")));
            }

            UploadParameter p    = new UploadParameter(files[0]);
            string          path = "/UploadFiles/ArticleImages/{0}/{1}";

            path       = string.Format(path, DateTime.Now.ToDateString(), p.GetDefaultFileName());
            p.SavePath = HttpContext.Server.MapPath(path);
            var result = UploadHelper.UploadFile(UploadType.IMAGE, p);

            if (result.Status == UploadStatus.Success)
            {
                var image = new LayuiUploadImageOut(0, result.Msg, path);
                return(Json(image));
            }
            else
            {
                var image = new LayuiUploadImageOut(1, result.Msg);
                return(Json(image));
            }
        }
Esempio n. 3
0
        private void UploadMD5HtmlEventHandler(Object para)
        {
            _docArray = para as List <IDocumentService>;

            if (_uploadState == UploadState.upload_End)
            {
                _uploadState = UploadState.upload_Init;

                _upLoadPara = new UploadParameter();

                if (!InitMD5Parameter(_upLoadPara, _docArray))
                {
                    _uploadState = UploadState.upload_End;
                    return;
                }

                _upLoadPara.DocArray = _docArray;

                var prePublish = new PrePublishViewModel(_upLoadPara);
                prePublish.Initwindow();
                prePublish.Closing += PrePublish_Closing;

                // //Switch to PublishSetView
                _differView.Current = prePublish;
            }
            else
            {
                //ReShowProgressWindow();
            }
        }
Esempio n. 4
0
        public void ShouldUploadStreamWithCompleteDetails()
        {
            var param = UploadParameter.CreateForStreamUpload(
                StreamParameterData.Create(() => new FileStream(TestTextFile, FileMode.Open, FileAccess.Read),
                                           "stream description",
                                           "stream name", "text/plain", new Dictionary <string, string> {
                { "streamkey", "streamval" }
            }),
                AccountPrivateKey1)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result.TransactionHash);
            Assert.AreEqual(result.Data.ContentType, "text/plain");
            Assert.IsNotNull(result.Data.DataHash);
            Assert.AreEqual(result.Data.Description, "stream description");
            Assert.AreEqual(result.Data.Name, "stream name");
            Assert.AreEqual(result.Data.Metadata.Count, 1);
            Assert.IsFalse(result.Data.Metadata.Except(new Dictionary <string, string> {
                { "streamkey", "streamval" }
            })
                           .Any());
            Assert.IsNotNull(result.Data.Timestamp);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadStreamWithCompleteDetails");
        }
Esempio n. 5
0
        public void ShouldUploadFilesAsZipWithCompleteDetails()
        {
            var param = UploadParameter.CreateForFilesAsZipUpload(
                FilesAsZipParameterData.Create(new List <string> {
                TestTextFile, TestHtmlFile
            }, "zip description",
                                               "zip name", new Dictionary <string, string> {
                { "zipkey", "zipvalue" }
            }),
                AccountPrivateKey1)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result.TransactionHash);
            Assert.AreEqual(result.Data.ContentType, "application/zip");
            Assert.IsNotNull(result.Data.DataHash);
            Assert.AreEqual(result.Data.Description, "zip description");
            Assert.AreEqual(result.Data.Name, "zip name");
            Assert.AreEqual(result.Data.Metadata.Count, 1);
            Assert.IsFalse(result.Data.Metadata.Except(new Dictionary <string, string> {
                { "zipkey", "zipvalue" }
            }).Any());
            Assert.IsNotNull(result.Data.Timestamp);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadFilesAsZipWithCompleteDetails");
        }
Esempio n. 6
0
        public void ShouldUploadStringWithCompleteDetails()
        {
            var param = UploadParameter.CreateForStringUpload(
                StringParameterData.Create(TestString, Encoding.UTF8, "string description", "string name",
                                           "text/plain", new Dictionary <string, string> {
                { "keystring", "valstring" }
            }),
                AccountPrivateKey1)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result.TransactionHash);
            Assert.AreEqual(result.Data.ContentType, "text/plain");
            Assert.IsNotNull(result.Data.DataHash);
            Assert.AreEqual(result.Data.Description, "string description");
            Assert.AreEqual(result.Data.Name, "string name");
            Assert.AreEqual(result.Data.Metadata.Count, 1);
            Assert.IsFalse(result.Data.Metadata.Except(new Dictionary <string, string> {
                { "keystring", "valstring" }
            })
                           .Any());
            Assert.IsNotNull(result.Data.Timestamp);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadStringWithCompleteDetails");
        }
Esempio n. 7
0
        public void ShouldUploadPathWithCompleteDetails()
        {
            var param = UploadParameter.CreateForPathUpload(
                PathParameterData.Create(TestPathFile, "path description", "path name",
                                         new Dictionary <string, string> {
                { "pathkey", "pathval" }
            }),
                AccountPrivateKey1)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result.TransactionHash);
            Assert.AreEqual(result.Data.ContentType, PathUploadContentType);
            Assert.IsNotNull(result.Data.DataHash);
            Assert.AreEqual(result.Data.Description, "path description");
            Assert.AreEqual(result.Data.Name, "path name");
            Assert.AreEqual(result.Data.Metadata.Count, 1);
            Assert.IsFalse(result.Data.Metadata.Except(new Dictionary <string, string> {
                { "pathkey", "pathval" }
            }).Any());
            Assert.IsNotNull(result.Data.Timestamp);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadPathWithCompleteDetails");
        }
 private string DetectContentType(UploadParameter uploadParam,
                                  IByteStreamParameterData byteStreamParamData)
 {
     return(uploadParam.DetectContentType && byteStreamParamData.ContentType == null
         ? byteStreamParamData.GetByteStream().DetectContentType()
         : byteStreamParamData.ContentType);
 }
        /// <summary>
        /// 上传多媒体文件,返回上传成功的media_id,否则null
        /// </summary>
        /// <param name="filePathName">包括完整路径的文件名</param>
        /// <param name="fileData">文件数据</param>
        /// <param name="fileType">文件类型:图片(image)、语音(voice)、视频(video)和缩略图(thumb,主要用于视频与音乐格式的缩略图)</param>
        /// <returns>上传成功的media_id,否则null</returns>
        public MediaFile UploadMediaFile(string filePathName, string fileType)
        {
            //上传的多媒体文件有格式和大小限制,如下:
            //图片(image): 1M,支持JPG格式
            //语音(voice):2M,播放长度不超过60s,支持AMR\MP3格式
            //视频(video):10MB,支持MP4格式
            //缩略图(thumb):64KB,支持JPG格式
            //媒体文件在后台保存时间为3天,即3天后media_id失效
            string          url         = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}";
            Stream          fileStream  = new FileStream(filePathName, FileMode.Open, FileAccess.Read);
            UploadParameter uploadParam = new UploadParameter()
            {
                FileNameValue = Path.GetFileName(filePathName),
                UploadStream  = fileStream
            };

            url             = string.Format(url, Connect.GetAccessToken(), fileType);
            uploadParam.Url = url;
            string resultStr = SimulateRequest.UploadFile(uploadParam);
            var    resultObj = JsonConvert.DeserializeObject <JObject>(resultStr);

            if (resultObj["errcode"] != null && resultObj["errcode"].ToString() != "0")
            {
                _logObj.Error("上传多媒体文件UploadMediaFile(),微信服务报错");
                var errorCode = new WeixinErrorInfo(resultObj["errcode"].ToString());
                _logObj.Warn(string.Format("{0}【errmsg:{1}】", errorCode.ToString(), resultObj["errmsg"].ToString()));
                return(null);
            }
            else
            {
                _logObj.InfoFormat("上传多媒体文件UploadMediaFile(),微信处理成功");
                MediaFile mediaFile = JsonConvert.DeserializeObject <MediaFile>(resultStr);
                return(mediaFile);
            }
        }
Esempio n. 10
0
        public void ShouldUploadByteArrayWithCompleteDetails()
        {
            var param = UploadParameter.CreateForByteArrayUpload(
                ByteArrayParameterData.Create(TestByteArray, "byte array description", "byte array",
                                              "text/plain", new Dictionary <string, string> {
                { "bytearraykey", "bytearrayval" }
            }),
                AccountPrivateKey1)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.TransactionHash);
            Assert.AreEqual(result.Data.ContentType, "text/plain");
            Assert.IsNotNull(result.Data.DataHash);
            Assert.AreEqual(result.Data.Description, "byte array description");
            Assert.AreEqual(result.Data.Name, "byte array");
            Assert.AreEqual(result.Data.Metadata.Count, 1);
            Assert.IsFalse(result.Data.Metadata
                           .Except(new Dictionary <string, string> {
                { "bytearraykey", "bytearrayval" }
            }).Any());
            Assert.IsNotNull(result.Data.Timestamp);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadByteArrayWithCompleteDetails");
        }
Esempio n. 11
0
        public void ShouldUploadUrlResourceWithCompleteDetails()
        {
            var param = UploadParameter.CreateForUrlResourceUpload(
                UrlResourceParameterData.Create(FileUrlFromRelativePath(TestImagePngFile), "url description",
                                                "url name", "image/png", new Dictionary <string, string> {
                { "urlkey", "urlval" }
            }),
                AccountPrivateKey1)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result.TransactionHash);
            Assert.AreEqual(result.Data.ContentType, "image/png");
            Assert.IsNotNull(result.Data.DataHash);
            Assert.AreEqual(result.Data.Description, "url description");
            Assert.AreEqual(result.Data.Name, "url name");
            Assert.AreEqual(result.Data.Metadata.Count, 1);
            Assert.IsFalse(result.Data.Metadata.Except(new Dictionary <string, string> {
                { "urlkey", "urlval" }
            }).Any());
            Assert.IsNotNull(result.Data.Timestamp);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadUrlResourceWithCompleteDetails");
        }
Esempio n. 12
0
        public void FailUploadWhenSignerHasNoFunds()
        {
            var param = UploadParameter
                        .CreateForStringUpload(TestString, "345247BEEE41EAF0658530777EC49BA2F74CA849B6A24FDF558B83ABEB8D9DC8")
                        .Build();

            UnitUnderTest.Upload(param);
        }
Esempio n. 13
0
        private bool HttpGetFileInfo(UploadParameter para)
        {
            try
            {
                if (!CommonFunction.IsNetworkAvailable())
                {
                    return(false);
                }

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ConstData.uploadURL + para.id);

                request.Referer = ConstData.uploadReferer;
                request.Headers.Add(ConstData.uploadVersionName, CommonFunction.GetClientCurrentVersion());

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                // Get the stream containing content returned by the server.
                Stream dataStream = response.GetResponseStream();

                var serializer           = new DataContractJsonSerializer(typeof(GetFileResponseData));
                GetFileResponseData data = (GetFileResponseData)serializer.ReadObject(dataStream);

                if (data != null)
                {
                    if (data.is_exist)
                    {
                        para.sShortURL = data.shortUrl;
                        if (!String.IsNullOrEmpty(data.updatedAt))
                        {
                            para.sTime = data.updatedAt.Substring(0, data.updatedAt.IndexOf("T"));
                        }
                        else
                        {
                            para.sTime = data.createdAt.Substring(0, data.createdAt.IndexOf("T"));
                        }

                        para.IsPublic = data.is_public;
                    }
                    else
                    {
                        para.id = "";
                        para.ProjectPassword = "";
                    }
                }
                else
                {
                    System.Windows.MessageBox.Show(GlobalData.FindResource("Error_Server_response"));
                    return(false);
                }
            }
            catch (System.Exception ex)
            {
                // NLogger.Error("HttpGetFileInfo exception->"+ex.Message);
                return(false);
            }

            return(true);
        }
        public IObservable <ProximaxMessagePayloadModel> CreateMessagePayload(UploadParameter uploadParameter,
                                                                              ProximaxDataModel uploadedData)
        {
            CheckParameter(uploadParameter != null, "uploadParameter is required");
            CheckParameter(uploadedData != null, "uploadedData is required");

            return(Observable.Return(ProximaxMessagePayloadModel.Create(
                                         uploadParameter.PrivacyStrategy.GetPrivacyType(),
                                         uploadParameter.Version, uploadedData)));
        }
        private IObservable <ProximaxDataModel> UploadByteStream(UploadParameter uploadParam,
                                                                 IByteStreamParameterData byteStreamParamData)
        {
            var detectedContentType  = DetectContentType(uploadParam, byteStreamParamData);
            var fileUploadResponseOb = FileUploadService.UploadByteStream(byteStreamParamData.GetByteStream,
                                                                          uploadParam.PrivacyStrategy, uploadParam.ComputeDigest);

            return(fileUploadResponseOb.Select(fileUploadResponse =>
                                               ProximaxDataModel.Create(byteStreamParamData, fileUploadResponse.DataHash,
                                                                        fileUploadResponse.Digest, detectedContentType, fileUploadResponse.Timestamp)));
        }
Esempio n. 16
0
        public void ShouldUploadToStorageConnection()
        {
            var param = UploadParameter.CreateForStringUpload(TestString, AccountPrivateKey1).Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Data.DataHash);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadToStorageConnection");
        }
Esempio n. 17
0
        public void ShouldReturnVersion()
        {
            var param = UploadParameter.CreateForStringUpload(
                TestString, AccountPrivateKey1)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result);
            Assert.AreEqual(result.Version, SchemaVersion);

            LogAndSaveResult(result, GetType().Name + ".ShouldReturnVersion");
        }
        public void ShouldUploadFileWithCustomPrivacyStrategy()
        {
            var param = UploadParameter.CreateForFileUpload(TestTextFile, AccountPrivateKey1)
                        .WithPrivacyStrategy(new MyPrivacyStrategy())
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.TransactionHash);
            Assert.IsNotNull(result.Data.DataHash);
            Assert.AreEqual(result.PrivacyType, (int)PrivacyType.Custom);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadFileWithCustomPrivacyStrategy");
        }
        public void ShouldUploadAsynchronouslyWithoutCallback()
        {
            var param = UploadParameter
                        .CreateForFileUpload(TestPdfFile2, AccountPrivateKey1)
                        .Build();

            var asyncTask = UnitUnderTest.UploadAsync(param, null);

            while (!asyncTask.IsDone())
            {
                Thread.Sleep(50);
            }

            Assert.IsTrue(asyncTask.IsDone());
        }
Esempio n. 20
0
        public void ShouldUploadWithEmptyTransactionMosaicsProvided()
        {
            var param = UploadParameter
                        .CreateForStringUpload(TestString, AccountPrivateKey1)
                        .WithTransactionMosaics(new List <Mosaic>())
                        .Build();

            var result = UnitUnderTest.Upload(param);

            var transaction = WaitForTransactionConfirmation(AccountPrivateKey1, result.TransactionHash);

            Assert.IsTrue(transaction is TransferTransaction);
            Assert.AreEqual((transaction as TransferTransaction).Mosaics.Count, 1);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadWithEmptyTransactionMosaicsProvided");
        }
Esempio n. 21
0
        public void ShouldUploadWithSignerAsRecipientByDefault()
        {
            var param = UploadParameter
                        .CreateForStringUpload(TestString, AccountPrivateKey1)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.TransactionHash);
            var transaction = WaitForTransactionConfirmation(AccountPrivateKey1, result.TransactionHash);

            Assert.IsTrue(transaction is TransferTransaction);
            Assert.AreEqual((transaction as TransferTransaction).Recipient.Address.Plain, AccountAddress1);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadWithSignerAsRecipientByDefault");
        }
        public IObservable <ProximaxDataModel> CreateData(UploadParameter uploadParam)
        {
            CheckParameter(uploadParam != null, "uploadParam is required");

            switch (uploadParam.Data)
            {
            case IByteStreamParameterData _:     // when byte stream upload
                return(UploadByteStream(uploadParam, (IByteStreamParameterData)uploadParam.Data));

            case PathParameterData _:     // when path upload
                return(UploadPath((PathParameterData)uploadParam.Data));

            default:     // when unknown data
                throw new UploadParameterDataNotSupportedException(
                          $"Uploading of {uploadParam.Data.GetType()} is not supported");
            }
        }
        public void ShouldUploadAsynchronouslyWithFailureCallback()
        {
            var param = UploadParameter
                        .CreateForFileUpload(TestTextFile, AccountPrivateKey1)
                        .WithPrivacyStrategy(new NotImplementedPrivacyStrategy())
                        .Build();
            var taskCompletionSource = new TaskCompletionSource <Exception>();
            var asyncCallbacks       = AsyncCallbacks <UploadResult> .Create <UploadResult>(
                null, ex => taskCompletionSource.SetResult(ex));

            UnitUnderTest.UploadAsync(param, asyncCallbacks);
            taskCompletionSource.Task.Wait(5000);

            var exception = taskCompletionSource.Task.Result;

            Assert.IsInstanceOfType(exception, exception.GetType());
        }
        public void ShouldUploadAsynchronouslyWithSuccessCallback()
        {
            var param = UploadParameter
                        .CreateForFileUpload(TestTextFile, AccountPrivateKey1)
                        .Build();
            var taskCompletionSource = new TaskCompletionSource <UploadResult>();
            var asyncCallbacks       = AsyncCallbacks <UploadResult> .Create <UploadResult>(
                uploadResult => taskCompletionSource.SetResult(uploadResult), null);

            UnitUnderTest.UploadAsync(param, asyncCallbacks);
            taskCompletionSource.Task.Wait(5000);

            var result = taskCompletionSource.Task.Result;

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.TransactionHash);
        }
        public void ShouldUploadWithUseBlockchainSecureMessage()
        {
            var param = UploadParameter.CreateForStringUpload(
                StringParameterData.Create(TestString, Encoding.UTF8, "string description", "string name",
                                           "text/plain", new Dictionary <string, string> {
                { "keystring", "valstring" }
            }),
                AccountPrivateKey1)
                        .WithUseBlockchainSecureMessage(true)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result);
            Assert.AreEqual(result.Version, SchemaVersion);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadWithUseBlockchainSecureMessage");
        }
Esempio n. 26
0
        public void ShouldUploadPath()
        {
            var param = UploadParameter.CreateForPathUpload(TestPathFile, AccountPrivateKey1)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.TransactionHash);
            Assert.AreEqual(result.Data.ContentType, PathUploadContentType);
            Assert.IsNotNull(result.Data.DataHash);
            Assert.IsNull(result.Data.Description);
            Assert.IsNull(result.Data.Name);
            Assert.IsNull(result.Data.Metadata);
            Assert.IsNotNull(result.Data.Timestamp);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadPath");
        }
Esempio n. 27
0
        public AjaxResult UploadUserFace()
        {
            HttpFileCollection files = HttpContext.Current.Request.Files;

            if (files == null || files.Count < 1)
            {
                return(new AjaxResult(false, "没有找到上传文件"));
            }

            UploadParameter p          = new UploadParameter();
            string          tempPath   = "/UploadFiles/UserFace";
            string          resultPath = "";

            try
            {
                bool   success = true;
                string msg     = "";
                for (int i = 0; i < files.Count; i++)
                {
                    var file = files[i];
                    p.File = new HttpPostedFileWrapper(file);
                    string fileName = p.GetDefaultFileName();
                    string path     = string.Format("{0}/{1}", tempPath, fileName);
                    p.SavePath = HttpContext.Current.Server.MapPath(path);
                    var result = UploadHelper.UploadFile(UploadType.IMAGE, p);
                    if (result.Status == UploadStatus.Success)
                    {
                        success    = true;
                        resultPath = path;
                    }
                    else
                    {
                        success = false;
                    }
                    msg = result.Msg;
                }
                return(new AjaxResult(success, msg, resultPath));
            }
            catch (Exception e)
            {
                return(new AjaxResult(false, "上传失败" + e.Message));
            }
        }
Esempio n. 28
0
        public void ShouldUploadWithTransactionDeadlinesProvided()
        {
            var param = UploadParameter
                        .CreateForStringUpload(TestString, AccountPrivateKey1)
                        .WithTransactionDeadline(2)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.TransactionHash);
            var transaction = WaitForTransactionConfirmation(AccountPrivateKey1, result.TransactionHash);

            Assert.IsTrue(transaction is TransferTransaction);
            Assert.IsTrue((transaction as TransferTransaction).Deadline.Ticks <=
                          Deadline.Create(2).Ticks);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadWithTransactionDeadlinesProvided");
        }
Esempio n. 29
0
        public void ShouldUploadUrlResource()
        {
            var param = UploadParameter.CreateForUrlResourceUpload(
                FileUrlFromRelativePath(TestImagePngFile), AccountPrivateKey1)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.TransactionHash);
            Assert.IsNull(result.Data.ContentType);
            Assert.IsNotNull(result.Data.DataHash);
            Assert.IsNull(result.Data.Description);
            Assert.IsNull(result.Data.Name);
            Assert.IsNull(result.Data.Metadata);
            Assert.IsNotNull(result.Data.Timestamp);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadUrlResource");
        }
Esempio n. 30
0
        public void ShouldUploadStream()
        {
            var param = UploadParameter.CreateForStreamUpload(
                () => new FileStream(TestTextFile, FileMode.Open, FileAccess.Read), AccountPrivateKey1)
                        .Build();

            var result = UnitUnderTest.Upload(param);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.TransactionHash);
            Assert.IsNull(result.Data.ContentType);
            Assert.IsNotNull(result.Data.DataHash);
            Assert.IsNull(result.Data.Description);
            Assert.IsNull(result.Data.Name);
            Assert.IsNull(result.Data.Metadata);
            Assert.IsNotNull(result.Data.Timestamp);

            LogAndSaveResult(result, GetType().Name + ".ShouldUploadStream");
        }