コード例 #1
0
        public void TestModelTextToSign()
        {
            SignLanguageJob sgnj = new SignLanguageJob()
            {
                Id                 = Guid.NewGuid(),
                FileContent        = Encoding.UTF8.GetBytes("This is the first translation job."),
                UserId             = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"),
                FileExtension      = "txt",
                FileName           = "test",
                MimeType           = "text/plain",
                Status             = JobStatus.Started,
                SubmitTime         = DateTime.Now,
                DownloadCounter    = 0,
                InputFileHash      = new byte[8],
                SourceTextLanguage = Language.enGB.ToString(),
                TargetSignLanguage = Language.enGB.ToString(),
                SignLanguageForm   = SignLanguageType.DeafSignLanguage
            };
            var repo = new SignLanguageRepository();

            var jobID = repo.SubmitWorkItem(sgnj).Result;

            while (repo.GetWorkStatus(jobID) == 2)
            {
                //wait
                Task.Delay(200);
            }
            byte[] res = null;
            if (repo.GetWorkStatus(jobID) == 1)
            {
                //sucess
                FileResult result = repo.GetResultContents(jobID);
                res = result.getFileContents();
            }
            else
            {
                //fail
                throw new Exception("Task with job ID: " + jobID + " failed");
            }

            NUnit.Framework.Assert.AreEqual("This is the first translation job.", Encoding.UTF8.GetString(res));
        }
コード例 #2
0
        public void TestPostTextToSign()
        {
            //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();

            SignLanguageJob sgnj = new SignLanguageJob()
            {
                Id                 = Guid.NewGuid(),
                FileContent        = Encoding.UTF8.GetBytes("This is the first translation job."),
                UserId             = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"),
                FileExtension      = "txt",
                FileName           = "test",
                MimeType           = "text/plain",
                Status             = JobStatus.Started,
                SubmitTime         = DateTime.Now,
                DownloadCounter    = 0,
                InputFileHash      = new byte[8],
                SourceTextLanguage = Language.enGB.ToString(),
                TargetSignLanguage = Language.enGB.ToString(),
                SignLanguageForm   = SignLanguageType.DeafSignLanguage
            };
            SignLanguageJob sgnj2 = new SignLanguageJob()
            {
                Id                 = Guid.NewGuid(),
                FileContent        = Encoding.UTF8.GetBytes("This is the second translation job."),
                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],
                SourceTextLanguage = Language.enUS.ToString(),
                TargetSignLanguage = Language.enUS.ToString(),
                SignLanguageForm   = SignLanguageType.SignedMode
            };
            var jobs = new List <SignLanguageJob> {
                sgnj2
            }.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 SignLanguageRepository(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 SignLanguageController(repo);

            serviceController.Request = request;
            //call
            var jobID = serviceController.Post(sgnj).Result;

            //test
            mockJobs.Verify(m => m.Add(It.IsAny <Job>()), Times.Once());

            mockContext.Verify(m => m.SaveChanges(), Times.Exactly(1));
            //twice if it is synced
            //mockContext.Verify(m => m.SaveChanges(), Times.Exactly(2));
        }