Пример #1
0
        public void Allow_Publish_For_Impersonated_Repository()
        {
            // construct the model
            // construct the model
            AuthToken authToken = new AuthToken()
            {
                UserId = 1,
                RespositoryId = 2
            };

            File fakeFile = new File() { Name = "test1", FileId = 100, RepositoryId = 1, CreatedBy = 1, Status = FileStatus.None.ToString() };
            PublishMessage model = new PublishMessage() { RepositoryId = 1, AuthToken = authToken, FileId = fakeFile.FileId, UserId = 1 };
            this.repository = new Repository() { BaseRepositoryId = 2, Name = "test", IsImpersonating = true, AccessToken = "accessToken", RefreshToken = "refreshToken", TokenExpiresOn = DateTime.UtcNow.AddHours(1), BaseRepository = new BaseRepository { Name = "SkyDrive" } };
            SkyDriveFileService skyDriveFileService = this.GetSkyDriveFileService();
            IFileProcesser fileProcessor = new StubIFileProcesser()
            {
                DownloadDocumentFile = file => new DataDetail() { FileNameToDownLoad = "abc.xyz" }
            };

            string fileIdentifier;
            using (ShimsContext.Create())
            {
                ShimFileFactory.GetFileTypeInstanceStringIBlobDataRepositoryIFileRepositoryIRepositoryService = (fileExtension, blobDataRepository, fileDataRepository, repositoryService) => fileProcessor;
                fileIdentifier = skyDriveFileService.PublishFile(model);
            }

            Assert.IsFalse(string.IsNullOrEmpty(fileIdentifier));
        }
        public async Task RemoveErrors_ShouldRemoveErrorsAndUpdateTheFile()
        {
            IFileRepository fileRepository = new StubIFileRepository()
            {
                GetItemInt32Int32 = (userId, FileId) => new File() { Name = "abc.xlsx" },
                UpdateFileFile = file => file
            };

            IBlobDataRepository blobDataRepository = new StubIBlobDataRepository()
            {
                UploadFileDataDetail = dataDetail => true
            };

            IUnitOfWork unitOfWork = new StubIUnitOfWork();

            IFileProcesser fileProcessor = new StubIFileProcesser()
            {
                RemoveErrorStreamStringIEnumerableOfErrorType = (file, sheetName, ErrorTypeList) => { System.IO.Stream stream = new System.IO.MemoryStream(); return Task.FromResult(stream); }
            };

            using (ShimsContext.Create())
            {
                ShimFileFactory.GetFileTypeInstanceStringIBlobDataRepositoryIFileRepositoryIRepositoryService = (fe, bdr, fdr, rs) => fileProcessor;
                ShimStreamExtensions.GetBytesAsyncStream = stream => Task.FromResult(new byte[0]);
                var fileService = new FileServiceProvider(fileRepository, blobDataRepository, unitOfWork, null, null, null);
                await fileService.RemoveErrors(0, 0, null, null);
                Assert.IsTrue(true);
            }
        }
Пример #3
0
        public void Return_ErrorCode_When_Adapter_Returns_Failure()
        {
            // construct the model
            AuthToken authToken = new AuthToken()
            {
                AccessToken = "accessToken",
                RefreshToken = "refreshToken",
                TokenExpiresOn = DateTime.UtcNow.AddHours(-1),
                RespositoryId = 1
            };

            File fakeFile = new File() { Name = "test1", FileId = 100, RepositoryId = 1, CreatedBy = 1, Status = FileStatus.None.ToString() };
            PublishMessage model = new PublishMessage() { RepositoryId = 3, AuthToken = authToken, FileId = fakeFile.FileId, UserId = 1 };
            this.repository = new Repository() { BaseRepositoryId = 2, Name = "test", IsImpersonating = false, BaseRepository = new BaseRepository { Name = "SkyDrive" } };
            this.userAuthToken = null;
            var fileProvider = this.GetSkyDriveFileService();
            this.skyDriveAdapter = new Microsoft.Research.DataOnboarding.RepositoryAdapters.Interfaces.Fakes.StubIRepositoryAdapter()
            {
                PostFilePublishFileModel = (publishFileModel) =>
                {
                    OperationStatus status = OperationStatus.CreateFailureStatus("error");
                    return status;
                },
            };
            IFileProcesser fileProcessor = new StubIFileProcesser()
            {
                DownloadDocumentFile = file => new DataDetail() { FileNameToDownLoad = "abc.xyz" }
            };

            string fileIdentifier;
            using (ShimsContext.Create())
            {
                ShimFileFactory.GetFileTypeInstanceStringIBlobDataRepositoryIFileRepositoryIRepositoryService = (fileExtension, blobDataRepository, fileDataRepository, repositoryService) => fileProcessor;
                ShimSkyDriveFileService.AllInstances.GetOrUpdateAuthTokensRepositoryAuthToken = (skyDriveFileService, repository, at) => new AuthToken();
                fileIdentifier = fileProvider.PublishFile(model);
            }

            Assert.IsTrue(string.IsNullOrEmpty(fileIdentifier));
        }
        public async Task GetErrors_ShouldReturnFileAndFileSheets()
        {
            IFileRepository fileRepository = new StubIFileRepository()
            {
                GetItemInt32Int32 = (userId, FileId) => new File() { Name = "abc.xlsx" }
            };

            IList<FileSheet> fileSheets = new List<FileSheet>()
            {
                new FileSheet() { SheetId = "1", SheetName = "SomeTabName" },
                new FileSheet() { SheetId = "1", SheetName = "SomeTabName" }
            };

            IFileProcesser fileProcessor = new StubIFileProcesser()
            {
                GetErrorsFile = file => Task.FromResult(fileSheets)
            };

            using (ShimsContext.Create())
            {
                ShimFileFactory.GetFileTypeInstanceStringIBlobDataRepositoryIFileRepositoryIRepositoryService = (fileExtension, blobDataRepository, fileDataRepository, repositoryService) => fileProcessor;
                var fileService = new FileServiceProvider(fileRepository, null, null, null, null, null);
                var fileAndFileSheets = await fileService.GetErrors(0, 0);
                Assert.IsNotNull(fileAndFileSheets.Item1);
                Assert.IsNotNull(fileAndFileSheets.Item2);
            }
        }