예제 #1
0
        public void CreateDocumentsAsync_NullInputDocuments_ThrowsArgumentNullException()
        {
            var cabinetContext  = new CabinetContext(_dbOptions);
            var documentService = new DocumentService(cabinetContext, _documentManager);

            Assert.ThrowsAsync <ArgumentNullException>(() => documentService.CreateDocumentsAsync(null));
        }
예제 #2
0
        public async Task CreateDocumentsAsync_Success()
        {
            var cabinetContext = new CabinetContext(_dbOptions);
            IEnumerable <DocumentWithFileInputModel> documents = getFakeDocumentWithFile();
            var documentService = new DocumentService(cabinetContext, _documentManager);

            var result = await documentService.CreateDocumentsAsync(documents);

            Assert.IsTrue(result.All(r => r.Success));
        }
예제 #3
0
        public void AddOriginalAsync_ThrowsArgumentNullException()
        {
            var cabinetContext = new CabinetContext(_dbOptions);
            var fakeDocument   = TestHelper.GetFakeDocument();
            var fakeOriginal   = TestHelper.GetFakeOriginal();

            var documentManager = new DocumentManager(cabinetContext, _storage);

            Assert.ThrowsAsync <ArgumentNullException>(() => documentManager.AddOriginalAsync(fakeDocument, null));
            Assert.ThrowsAsync <ArgumentNullException>(() => documentManager.AddOriginalAsync(null, fakeOriginal));
        }
예제 #4
0
        public async Task AddOriginalAsync_Success()
        {
            var cabinetContext = new CabinetContext(_dbOptions);
            var fakeDocument   = TestHelper.GetFakeDocument();
            var fakeOriginal   = TestHelper.GetFakeOriginal();

            var documentManager = new DocumentManager(cabinetContext, _storage);
            var original        = await documentManager.AddOriginalAsync(fakeDocument, fakeOriginal);

            Assert.IsNotNull(original);
            Assert.AreEqual(fakeDocument.ID, original.DocumentID);
            Assert.IsTrue(File.Exists(Path.Combine(_testDirectory, original.StoragePath)));
        }
예제 #5
0
        public async Task GetDocumentsPaginatedAsync_ByOrganizationReceiver_Success()
        {
            var cabinetContext = new CabinetContext(_dbOptions);
            var docType        = TestHelper.GetFakeDocumentType();

            cabinetContext.DocumentTypes.Add(docType);
            cabinetContext.SaveChanges();
            var document = TestHelper.GetFakeDocument();

            document.DocumentTypeID = docType.ID;
            cabinetContext.Documents.Add(document);
            cabinetContext.SaveChanges();
            var searchParameters = new DocumentsFilter
            {
                OrganizationReceiverID = document.OrganizationID
            };
            var documentService = new DocumentService(cabinetContext, _documentManager);

            var documents = await documentService.GetDocumentsPaginatedAsync(searchParameters, 50, 0);

            Assert.AreEqual(0, documents.Data.Count());
        }
예제 #6
0
        public void CleanUp()
        {
            var directories = Directory.GetDirectories(_testDirectory);

            foreach (string dir in directories)
            {
                var files = Directory.GetFiles(dir);
                foreach (var file in files)
                {
                    File.Delete(file);
                }

                Directory.Delete(dir);
            }
            Directory.Delete(_testDirectory);
            var cabinetContext = new CabinetContext(_dbOptions);

            cabinetContext.Documents.RemoveRange(cabinetContext.Documents);
            cabinetContext.DocumentTypes.RemoveRange(cabinetContext.DocumentTypes);
            cabinetContext.DocumentsAccesses.RemoveRange(cabinetContext.DocumentsAccesses);
            cabinetContext.SaveChanges();
        }
예제 #7
0
 public DocumentService(CabinetContext context, DocumentManager documentManager)
 {
     _context         = context ?? throw new ArgumentNullException(nameof(context));
     _documentManager = documentManager ?? throw new ArgumentNullException(nameof(documentManager));
     _documentManager.AutoSaveChanges = false;
 }
예제 #8
0
 public DocumentManager(CabinetContext cabinetContext, IStorage storage)
 {
     _context = cabinetContext;
     _storage = storage;
 }