예제 #1
0
        public void LoadDocumentMissingId()
        {
            var metadataService = new Mock <IMetadataService>();

            metadataService.Setup(x => x.LoadMetadata(It.IsAny <Guid>())).Throws <ArgumentNullException>();
            var fileHandlerService = new Mock <IFileHandler>();
            var storageHandler     = new FilesystemStorageHandler(metadataService.Object, _appSettings, fileHandlerService.Object);

            Func <Task> t = async() =>
                            await storageHandler.LoadDocument(Guid.Empty);

            t.Should().Throw <ArgumentNullException>();
        }
예제 #2
0
        public async void OpenFileExternal()
        {
            var expectedPath       = _metadataMock.Valuta.Year + @"\" + _documentMock.Id + FileSuffix + _documentMock.Metadata.FileEnding;
            var metadataService    = new Mock <IMetadataService>();
            var fileHandlerService = new Mock <IFileHandler>();

            fileHandlerService.Setup(x => x.OpenFile(It.IsAny <string>()));
            var storageHandler = new FilesystemStorageHandler(metadataService.Object, _appSettings, fileHandlerService.Object);

            await storageHandler.OpenDocumentExternal(_documentMock);

            fileHandlerService.Verify(x => x.OpenFile(expectedPath));
        }
예제 #3
0
        public async void SaveDocumentValid()
        {
            var expectedPath    = _metadataMock.Valuta.Year + @"\" + _documentMock.Id + FileSuffix + _documentMock.Metadata.FileEnding;
            var metadataService = new Mock <IMetadataService>();

            metadataService.Setup(x => x.SaveMetadata(It.IsAny <MetadataItem>(), It.IsAny <Guid>())).Returns(Task.FromResult(_documentMock.Metadata));
            var fileHandlerService = new Mock <IFileHandler>();

            fileHandlerService.Setup(x => x.SaveFile(_documentMock.File, It.IsAny <string>()));
            var storageHandler = new FilesystemStorageHandler(metadataService.Object, _appSettings, fileHandlerService.Object);

            await storageHandler.SaveDocument(_documentMock);

            metadataService.Verify(x => x.SaveMetadata(_documentMock.Metadata, _documentMock.Id));
            fileHandlerService.Verify(x => x.SaveFile(_documentMock.File, expectedPath));
        }
예제 #4
0
        public void SaveDocumentNoFile()
        {
            var doc = new Document()
            {
                Id       = Guid.NewGuid(),
                Metadata = _metadataMock,
                File     = null
            };
            var metadataService    = new Mock <IMetadataService>();
            var fileHandlerService = new Mock <IFileHandler>();
            var storageHandler     = new FilesystemStorageHandler(metadataService.Object, _appSettings, fileHandlerService.Object);

            Func <Task> t = async() =>
                            await storageHandler.SaveDocument(doc);

            t.Should().Throw <FileNotFoundException>();
        }
예제 #5
0
        public async void LoadDocumentValid()
        {
            var doc = new Document()
            {
                Id       = Guid.NewGuid(),
                Metadata = _metadataMock,
                File     = null
            };
            var metadataService = new Mock <IMetadataService>();

            metadataService.Setup(x => x.LoadMetadata(It.IsAny <Guid>())).Returns(Task.FromResult(_metadataMock));
            var fileHandlerService = new Mock <IFileHandler>();
            var storageHandler     = new FilesystemStorageHandler(metadataService.Object, _appSettings, fileHandlerService.Object);

            var result = await storageHandler.LoadDocument(doc.Id);

            result.Should().BeEquivalentTo(doc);
            metadataService.Verify(x => x.LoadMetadata(doc.Id));
        }
예제 #6
0
        public async void SaveDocumentMissingId()
        {
            var doc = new Document()
            {
                Id       = Guid.Empty,
                Metadata = _metadataMock,
                File     = new MemoryStream()
            };
            var metadataService = new Mock <IMetadataService>();

            metadataService.Setup(x => x.SaveMetadata(It.IsAny <MetadataItem>(), It.IsAny <Guid>())).Returns(Task.FromResult(_metadataMock));
            var fileHandlerService = new Mock <IFileHandler>();

            fileHandlerService.Setup(x => x.SaveFile(doc.File, It.IsAny <string>()));
            var storageHandler = new FilesystemStorageHandler(metadataService.Object, _appSettings, fileHandlerService.Object);

            await storageHandler.SaveDocument(doc);

            doc.Id.Should().NotBeEmpty();
        }
예제 #7
0
        public async void SearchDocumentValid(string term, string type, int count)
        {
            var doc1 = new Document()
            {
                Id       = Guid.NewGuid(),
                Metadata = new MetadataItem()
                {
                    FileEnding   = ".test",
                    CreationTime = DateTime.Now,
                    FileName     = "test1",
                    Keywords     = "test1",
                    Typ          = "test",
                    Username     = "******",
                    Valuta       = DateTime.Now
                }
            };
            var doc2 = new Document()
            {
                Id       = Guid.NewGuid(),
                Metadata = new MetadataItem()
                {
                    FileEnding   = ".test",
                    CreationTime = DateTime.Now,
                    FileName     = "test2",
                    Keywords     = "test2",
                    Typ          = "test",
                    Username     = "******",
                    Valuta       = DateTime.Now
                }
            };
            var doc3 = new Document()
            {
                Id       = Guid.NewGuid(),
                Metadata = new MetadataItem()
                {
                    FileEnding   = ".test",
                    CreationTime = DateTime.Now,
                    FileName     = "test2",
                    Keywords     = "test2",
                    Typ          = "asdf",
                    Username     = "******",
                    Valuta       = DateTime.Now
                }
            };
            var files = new string[]
            {
                _appSettings.RepositoryPath + @"\" + doc1.Id + FileSuffix + doc1.Metadata.FileEnding,
                _appSettings.RepositoryPath + @"\" + doc2.Id + FileSuffix + doc2.Metadata.FileEnding,
                _appSettings.RepositoryPath + @"\" + doc3.Id + FileSuffix + doc3.Metadata.FileEnding
            };

            var fileHandlerService = new Mock <IFileHandler>();

            fileHandlerService.Setup(x => x.SearchFiles(It.IsAny <string>())).ReturnsAsync(files);
            var metadataService = new Mock <IMetadataService>();

            metadataService.Setup(x => x.LoadMetadata(doc1.Id)).ReturnsAsync(doc1.Metadata);
            metadataService.Setup(x => x.LoadMetadata(doc2.Id)).ReturnsAsync(doc2.Metadata);
            metadataService.Setup(x => x.LoadMetadata(doc3.Id)).ReturnsAsync(doc3.Metadata);

            var storageHandler = new FilesystemStorageHandler(metadataService.Object, _appSettings, fileHandlerService.Object);

            var result = await storageHandler.SearchDocument(term, type);

            result.Should().HaveCount(count);
        }