public void EBookRepository_OrderBooks_Alphabetic_Returns_Books_Ordered_By_Alphabetic_Order_Ascending()
        {
            var ebookRepository = new EBookRepository(new FileSystemFake(), new FileInfoFactoryFake());

            var unorderedBookList = CreateBookObjects.GetUnorderedEBookList();

            var expected = new List <EBook>
            {
                new EBook {
                    Title = "Title1"
                },
                new EBook {
                    Title = "Title2"
                },
                new EBook {
                    Title = "Title3"
                },
                new EBook {
                    Title = "Title4"
                }
            };

            var result = ebookRepository.OrderBooks(unorderedBookList, "alphabetic");

            CollectionAssert.AreEqual(expected, result, new TitleComparer());
        }
        public void EBookRepository_GetAllEBooksRecursive_Returns_All_Ebooks_In_The_Given_Path()
        {
            var ebookRepository = new EBookRepository(new FileSystemFake(), new FileInfoFactoryFake());

            var result = ebookRepository.GetEbooksRecursive("folderDoesntMatter/");

            Assert.AreEqual(8, result.Count());
        }
        public void EBookRepository_OrderBooks_Created_Returns_Books_Ordered_By_Creation_Date_Ascending()
        {
            var ebookRepository = new EBookRepository(new FileSystemFake(), new FileInfoFactoryFake());

            var unorderedBookList = CreateBookObjects.GetUnorderedEBookList().ToList();

            var expected = unorderedBookList.OrderByDescending(x => x.CreatedDate);

            var result = ebookRepository.OrderBooks(unorderedBookList, "creation");

            CollectionAssert.AreEqual(expected, result, new CreationDateComparer());
        }
        public async Task <byte[]> WebAPICall(Job accj)
        {
            //return Encoding.ASCII.GetBytes("test");
            byte[] byteRes = null;
            if (format.Equals("EPUB3WMO"))
            {
                DaisyRepository daisyJobRepo = new DaisyRepository();
                Guid            jobID        = await daisyJobRepo.SubmitWorkItem((DaisyJob)accj);

                while (daisyJobRepo.GetWorkStatus(jobID) == 2)
                {
                    //wait
                    await Task.Delay(200);
                }
                if (daisyJobRepo.GetWorkStatus(jobID) == 1)
                {
                    //sucess
                    FileResult result = daisyJobRepo.GetResultContents(jobID);
                    byteRes = result.getFileContents();
                }
                else
                {
                    //fail
                    throw new Exception("Task with job ID: " + jobID + " failed");
                }
                return(byteRes);
            }
            else
            {
                EBookRepository ebookJobRepo = new EBookRepository();
                Guid            jobID        = await ebookJobRepo.SubmitWorkItem((EBookJob)accj);

                while (ebookJobRepo.GetWorkStatus(jobID) == 2)
                {
                    //wait
                    await Task.Delay(200);
                }
                if (ebookJobRepo.GetWorkStatus(jobID) == 1)
                {
                    //sucess
                    FileResult result = ebookJobRepo.GetResultContents(jobID);
                    byteRes = result.getFileContents();
                }
                else
                {
                    //fail
                    throw new Exception("Task with job ID: " + jobID + " failed");
                }
                return(byteRes);
            }
        }
        public IActionResult Index()
        {
            //read cookie from Request object
            var sortOrder = Request.Cookies["SortOrder"];

            var folderToRead = Configuration.GetSection("AppSettings").GetSection("FolderToRead").Value;

            var viewModel = new EBookViewModel
            {
                EBooks = EBookRepository.GetAllEbooks(folderToRead, sortOrder), SortOrder = sortOrder
            };

            return(View(viewModel));
        }
Exemplo n.º 6
0
        public async Task TestPostEBook()
        {
            //init
            var mockJobs         = new Mock <DbSet <Job> >();
            var mockServiceUsers = new Mock <DbSet <ServiceUser> >();
            var mockContext      = new Mock <RoboBrailleDataContext>();

            // arrange
            var users = new List <ServiceUser> {
                new ServiceUser
                {
                    EmailAddress = "*****@*****.**",
                    UserId       = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"),
                    ApiKey       = Encoding.UTF8.GetBytes("7b76ae41-def3-e411-8030-0c8bfd2336cd"),
                    FromDate     = new DateTime(2015, 1, 1),
                    ToDate       = new DateTime(2020, 1, 1),
                    UserName     = "******",
                    Jobs         = null
                }
            }.AsQueryable();

            EBookJob acj = new EBookJob()
            {
                Id              = Guid.NewGuid(),
                FileContent     = new byte[512],
                UserId          = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"),
                FileExtension   = ".pdf",
                FileName        = "test",
                MimeType        = "application/pdf",
                Status          = JobStatus.Started,
                SubmitTime      = DateTime.Now,
                DownloadCounter = 0,
                InputFileHash   = new byte[8]
            };
            EBookJob acj2 = new EBookJob()
            {
                Id              = Guid.NewGuid(),
                FileContent     = new byte[256],
                UserId          = Guid.Parse("d2b87532-e8c5-e411-8270-f0def103cfd0"),
                FileExtension   = ".txt",
                FileName        = "test2",
                MimeType        = "text/plain",
                Status          = JobStatus.Done,
                SubmitTime      = DateTime.Now,
                DownloadCounter = 2,
                InputFileHash   = new byte[2]
            };
            var jobs = new List <Job> {
                acj2
            }.AsQueryable();

            mockJobs.As <IDbAsyncEnumerable <Job> >().Setup(m => m.GetAsyncEnumerator()).Returns(new TestDbAsyncEnumerator <Job>(jobs.GetEnumerator()));
            mockJobs.As <IQueryable <Job> >().Setup(m => m.Provider).Returns(new TestDbAsyncQueryProvider <Job>(jobs.Provider));

            mockJobs.As <IQueryable <Job> >().Setup(m => m.Expression).Returns(jobs.Expression);
            mockJobs.As <IQueryable <Job> >().Setup(m => m.ElementType).Returns(jobs.ElementType);
            mockJobs.As <IQueryable <Job> >().Setup(m => m.GetEnumerator()).Returns(jobs.GetEnumerator());

            mockServiceUsers.As <IDbAsyncEnumerable <ServiceUser> >().Setup(m => m.GetAsyncEnumerator()).Returns(new TestDbAsyncEnumerator <ServiceUser>(users.GetEnumerator()));
            mockServiceUsers.As <IQueryable <ServiceUser> >().Setup(m => m.Provider).Returns(new TestDbAsyncQueryProvider <ServiceUser>(users.Provider));
            mockServiceUsers.As <IQueryable <ServiceUser> >().Setup(m => m.Expression).Returns(users.Expression);
            mockServiceUsers.As <IQueryable <ServiceUser> >().Setup(m => m.ElementType).Returns(users.ElementType);
            mockServiceUsers.As <IQueryable <ServiceUser> >().Setup(m => m.GetEnumerator()).Returns(users.GetEnumerator());

            mockContext.Setup(m => m.Jobs).Returns(mockJobs.Object);
            mockContext.Setup(m => m.ServiceUsers).Returns(mockServiceUsers.Object);

            var repo    = new EBookRepository(mockContext.Object);
            var request = new HttpRequestMessage();

            request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Authorization", "Hawk id=\"d2b97532-e8c5-e411-8270-f0def103cfd0\", ts=\"1470657024\", nonce=\"VkcMGB\", mac=\"hXW+BLRoqwlUaQZQtpPToOWnVAh5KbAXGGT5f8dLMVk=\"");
            var serviceController = new EBookController(repo);

            serviceController.Request = request;
            //call
            await serviceController.Post(acj);

            //test
            mockJobs.Verify(m => m.Add(It.IsAny <Job>()), Times.Once());
            mockContext.Verify(m => m.SaveChanges(), Times.Once());
        }
Exemplo n.º 7
0
        public async Task TestPostEBook()
        {
            //init
            var mockJobs = new Mock<DbSet<Job>>();
            var mockServiceUsers = new Mock<DbSet<ServiceUser>>();
            var mockContext = new Mock<RoboBrailleDataContext>();

            // arrange
            var users = new List<ServiceUser> { 
                new ServiceUser
                {
                EmailAddress = "*****@*****.**",
                UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"),
                ApiKey = Encoding.UTF8.GetBytes("7b76ae41-def3-e411-8030-0c8bfd2336cd"),
                FromDate = new DateTime(2015, 1, 1),
                ToDate = new DateTime(2020, 1, 1),
                UserName = "******",
                Jobs = null
                }
            }.AsQueryable();

            EBookJob acj = new EBookJob()
            {
                Id = Guid.NewGuid(),
                FileContent = new byte[512],
                UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"),
                FileExtension = ".pdf",
                FileName = "test",
                MimeType = "application/pdf",
                Status = JobStatus.Started,
                SubmitTime = DateTime.Now,
                DownloadCounter = 0,
                InputFileHash = new byte[8]
            };
            EBookJob acj2 = new EBookJob()
            {
                Id = Guid.NewGuid(),
                FileContent = new byte[256],
                UserId = Guid.Parse("d2b87532-e8c5-e411-8270-f0def103cfd0"),
                FileExtension = ".txt",
                FileName = "test2",
                MimeType = "text/plain",
                Status = JobStatus.Done,
                SubmitTime = DateTime.Now,
                DownloadCounter = 2,
                InputFileHash = new byte[2]
            };
            var jobs = new List<Job> { acj2 }.AsQueryable();

            mockJobs.As<IDbAsyncEnumerable<Job>>().Setup(m => m.GetAsyncEnumerator()).Returns(new TestDbAsyncEnumerator<Job>(jobs.GetEnumerator()));
            mockJobs.As<IQueryable<Job>>().Setup(m => m.Provider).Returns(new TestDbAsyncQueryProvider<Job>(jobs.Provider));

            mockJobs.As<IQueryable<Job>>().Setup(m => m.Expression).Returns(jobs.Expression);
            mockJobs.As<IQueryable<Job>>().Setup(m => m.ElementType).Returns(jobs.ElementType);
            mockJobs.As<IQueryable<Job>>().Setup(m => m.GetEnumerator()).Returns(jobs.GetEnumerator());

            mockServiceUsers.As<IDbAsyncEnumerable<ServiceUser>>().Setup(m => m.GetAsyncEnumerator()).Returns(new TestDbAsyncEnumerator<ServiceUser>(users.GetEnumerator()));
            mockServiceUsers.As<IQueryable<ServiceUser>>().Setup(m => m.Provider).Returns(new TestDbAsyncQueryProvider<ServiceUser>(users.Provider));
            mockServiceUsers.As<IQueryable<ServiceUser>>().Setup(m => m.Expression).Returns(users.Expression);
            mockServiceUsers.As<IQueryable<ServiceUser>>().Setup(m => m.ElementType).Returns(users.ElementType);
            mockServiceUsers.As<IQueryable<ServiceUser>>().Setup(m => m.GetEnumerator()).Returns(users.GetEnumerator());

            mockContext.Setup(m => m.Jobs).Returns(mockJobs.Object);
            mockContext.Setup(m => m.ServiceUsers).Returns(mockServiceUsers.Object);

            var repo = new EBookRepository(mockContext.Object);
            var request = new HttpRequestMessage();
            request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Authorization", "Hawk id=\"d2b97532-e8c5-e411-8270-f0def103cfd0\", ts=\"1470657024\", nonce=\"VkcMGB\", mac=\"hXW+BLRoqwlUaQZQtpPToOWnVAh5KbAXGGT5f8dLMVk=\"");
            var serviceController = new EBookController(repo);
            serviceController.Request = request;
            //call
            await serviceController.Post(acj);
            //test
            mockJobs.Verify(m => m.Add(It.IsAny<Job>()), Times.Once());
            mockContext.Verify(m => m.SaveChanges(), Times.Once());
        }