public byte[] TestAPI(string inputFileName, string destFormat, bool hasVideo, string extension = "html", string mime = "text/html") { //setup MSOfficeOutput msOutput = (MSOfficeOutput)Enum.Parse(typeof(MSOfficeOutput), destFormat); byte[] apiFileContent = inputFiles.Where(x => x.Key.EndsWith(inputFileName)).Select(x => x.Value).First(); MSOfficeJob OfficeJob = new MSOfficeJob() { Id = Guid.NewGuid(), FileContent = apiFileContent, UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"), FileExtension = extension, FileName = "testOfficeJob", MimeType = mime, Status = JobStatus.Started, SubmitTime = DateTime.Now, DownloadCounter = 0, InputFileHash = RoboBrailleProcessor.GetMD5Hash(apiFileContent), MSOfficeOutput = msOutput }; if (hasVideo) { //TODO maybe mock Amara call OfficeJob.SubtitleLangauge = "en-US"; OfficeJob.SubtitleFormat = "srt"; } var apiTask = Task.Run(() => WebAPICall(OfficeJob)); return(apiTask.Result); }
public void TestDaisyDocx() { //arrange var testDocumentsName = "A1.Daisy.docx"; var apiFileContent = inputFiles.Where(x => x.Key.EndsWith(testDocumentsName)).Select(x => x.Value).First(); DaisyJob daisyj = new DaisyJob() { Id = Guid.NewGuid(), FileContent = apiFileContent, UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"), FileExtension = ".docx", FileName = "testDaisy", MimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", Status = JobStatus.Started, SubmitTime = DateTime.Now, DownloadCounter = 0, InputFileHash = RoboBrailleProcessor.GetMD5Hash(apiFileContent), DaisyOutput = DaisyOutput.TalkingBook }; //act var apiTask = Task.Run(() => WebAPICall(daisyj)); byte[] apiRes = apiTask.Result; //assert NUnit.Framework.Assert.IsNotEmpty(apiRes); IOController.SaveTestResultFile(apiRes, "Daisy-" + timestamp + "-API.zip"); }
public void TestEbookDocxEpub3() { RabbitMQCluster.ClusterConnect(); var testDocumentsName = "A1.Daisy.docx"; var apiFileContent = inputFiles.Where(x => x.Key.EndsWith(testDocumentsName)).Select(x => x.Value).First(); var ebookj = new DaisyJob() { Id = Guid.NewGuid(), FileContent = apiFileContent, UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"), FileExtension = ".docx", FileName = "testDaisyEPUB3WMO", MimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", Status = JobStatus.Started, SubmitTime = DateTime.Now, DownloadCounter = 0, InputFileHash = RoboBrailleProcessor.GetMD5Hash(apiFileContent), DaisyOutput = DaisyOutput.Epub3WMO }; var apiTask = Task.Run(() => WebAPICall(ebookj)); byte[] apiRes = apiTask.Result; //assert NUnit.Framework.Assert.IsNotEmpty(apiRes); IOController.SaveTestResultFile(apiRes, "Ebook-" + timestamp + "-EPUB3WMO-API.epub"); RabbitMQCluster.ClusterDisconnect(); }
//TODO test different formatting options: unicode, octobraille, nacb where applicable public byte[] TestBrailleAPI(string language, string format, int charsPerLine, int linesPerPage, string contraction, int dots) { Encoding enc = RoboBrailleProcessor.GetEncodingByCountryCode((Language)Enum.Parse(typeof(Language), language, true)); var apiFileContents = enc.GetBytes(IOController.GetTestForLanguage(language)); PageNumbering pn = PageNumbering.none; var brj = new BrailleJob() { Id = Guid.NewGuid(), FileContent = apiFileContents, UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"), FileExtension = ".txt", FileName = "testBraille", MimeType = "plaint/text", Status = JobStatus.Started, SubmitTime = DateTime.Now, DownloadCounter = 0, InputFileHash = RoboBrailleProcessor.GetMD5Hash(apiFileContents), BrailleLanguage = (Language)Enum.Parse(typeof(Language), language, true), BrailleFormat = (BrailleFormat)Enum.Parse(typeof(BrailleFormat), dots.ToString(), true), CharactersPerLine = charsPerLine, LinesPerPage = linesPerPage, Contraction = (BrailleContraction)Enum.Parse(typeof(BrailleContraction), contraction, true), ConversionPath = ConversionPath.texttobraille, OutputFormat = (OutputFormat)Enum.Parse(typeof(OutputFormat), format, true), PageNumbering = pn }; var apiTask = Task.Run(() => WebAPICall(brj)); byte[] apiRes = apiTask.Result; return(apiRes); }
public byte[] TestCerthOcrAPI(bool hasTable, string inputFileName) { byte[] apiFileContent = inputFiles.Where(x => x.Key.EndsWith(inputFileName)).Select(x => x.Value).First(); var extension = ".pdf"; var mime = "application/pdf"; if (inputFileName.EndsWith("png")) { extension = ".png"; mime = "image/png"; } if (inputFileName.EndsWith("jpg")) { extension = ".jpg"; mime = "image/jpeg"; } var ocrJob = new OcrConversionJob() { Id = Guid.NewGuid(), FileContent = apiFileContent, UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"), FileExtension = extension, FileName = "testOcr", MimeType = mime, Status = JobStatus.Started, SubmitTime = DateTime.Now, DownloadCounter = 0, InputFileHash = RoboBrailleProcessor.GetMD5Hash(apiFileContent), HasTable = hasTable, OcrLanguage = Language.enUS }; return(WebAPICall(ocrJob).Result); }
public byte[] TestAudioAPI(string language, List <VoicePropriety> voicepropriety, string age = "", string gender = "", AudioSpeed audioSpeed = AudioSpeed.Normal, AudioFormat audioFormat = AudioFormat.Mp3) { var outputPath = IOController.GetOutputDirectory(); Language lang = Language.enGB; byte[] apiFileContent = null; if (Enum.IsDefined(typeof(Language), language.Substring(0, 4))) { apiFileContent = RoboBrailleProcessor.GetEncodingByCountryCode(lang).GetBytes(IOController.GetTestForLanguage(language)); lang = (Language)Enum.Parse(typeof(Language), language.Substring(0, 4), true); } var voiceProps = new List <VoicePropriety>(); if (age.Equals("Young")) { voiceProps.Add(VoicePropriety.Younger); } if (age.Equals("Old")) { voiceProps.Add(VoicePropriety.Older); } if (gender.Equals("Male")) { voiceProps.Add(VoicePropriety.Male); } if (gender.Equals("Female")) { voiceProps.Add(VoicePropriety.Female); } if (voicepropriety != null) { voiceProps.AddRange(voicepropriety); } AudioJob auj = new AudioJob() { Id = Guid.NewGuid(), FileContent = apiFileContent, UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"), FileExtension = "" + ".mp3", FileName = "testAudio", MimeType = "plain/text", Status = JobStatus.Started, SubmitTime = DateTime.Now, DownloadCounter = 0, InputFileHash = RoboBrailleProcessor.GetMD5Hash(apiFileContent), AudioLanguage = lang, FormatOptions = audioFormat, SpeedOptions = audioSpeed, VoicePropriety = voiceProps.ToArray() }; return(WebAPICall(auj).Result); }
public async Task <IHttpActionResult> Delete([FromUri] Guid jobId) { try { Guid userId = RoboBrailleProcessor.getUserIdFromJob(this.Request.Headers.Authorization.Parameter); jobId = await RoboBrailleProcessor.DeleteJobFromDb(jobId, userId, _repository.GetDataContext()); return(Ok(jobId.ToString("D"))); } catch (Exception e) { var resp = new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(string.Format("Internal error: {0}", e)), ReasonPhrase = e.Message }; throw new HttpResponseException(resp); } }
public async Task <IHttpActionResult> Post(SignLanguageJob job) { try { Guid userId = RoboBrailleProcessor.getUserIdFromJob(this.Request.Headers.Authorization.Parameter); job.UserId = userId; Guid jobId = await _repository.SubmitWorkItem(job); return(Ok(jobId.ToString("D"))); } catch (Exception e) { var resp = new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(string.Format("Internal error: {0}", e)), ReasonPhrase = e.Message }; throw new HttpResponseException(resp); } }
public byte[] TestEbookAPI(string format, string testDocumentsName) { var apiFileContent = inputFiles.Where(x => x.Key.EndsWith(testDocumentsName)).Select(x => x.Value).First(); var ftpFilePath = inputFiles.Where(x => x.Key.EndsWith(testDocumentsName)).Select(x => x.Key).First(); var fileExtension = testDocumentsName.Substring(testDocumentsName.LastIndexOf(".") + 1); EbookFormat ef = (EbookFormat)Enum.Parse(typeof(EbookFormat), format.ToLowerInvariant()); switch (format) { case "EPUB": ef = EbookFormat.epub; break; case "MOBI": ef = EbookFormat.mobi; break; case "RTF": ef = EbookFormat.rtf; break; case "TXT": ef = EbookFormat.txt; break; default: break; } var ebookj = new EBookJob() { Id = Guid.NewGuid(), FileContent = apiFileContent, UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"), FileExtension = fileExtension, FileName = "testEbook", MimeType = "plain/text", Status = JobStatus.Started, SubmitTime = DateTime.Now, DownloadCounter = 0, InputFileHash = RoboBrailleProcessor.GetMD5Hash(apiFileContent), EbookFormat = ef }; var apiTask = Task.Run(() => WebAPICall(ebookj)); byte[] apiRes = apiTask.Result; return(apiRes); }
public byte[] TestAPI(string inputFileName) { //setup byte[] apiFileContent = inputFiles.Where(x => x.Key.EndsWith(inputFileName)).Select(x => x.Value).First(); HTMLToTextJob htmlToTextJob = new HTMLToTextJob() { Id = Guid.NewGuid(), FileContent = apiFileContent, UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"), FileExtension = "html", FileName = "testHtmlToText", MimeType = "text/html", Status = JobStatus.Started, SubmitTime = DateTime.Now, DownloadCounter = 0, InputFileHash = RoboBrailleProcessor.GetMD5Hash(apiFileContent) }; var apiTask = Task.Run(() => WebAPICall(htmlToTextJob)); return(apiTask.Result); }
public byte[] TestAccessibilityAPI(string format, string inputFileName) { //setup var of = (OutputFileFormatEnum)Enum.Parse(typeof(OutputFileFormatEnum), Convert.ToString("OFF_DOCX")); var extension = ".pdf"; var mime = "application/pdf"; if (inputFileName.EndsWith("png")) { extension = ".png"; mime = "image/png"; } if (inputFileName.EndsWith("jpg")) { extension = ".jpg"; mime = "image/jpeg"; } byte[] apiFileContent = inputFiles.Where(x => x.Key.EndsWith(inputFileName)).Select(x => x.Value).First(); switch (format) { case "doc": of = OutputFileFormatEnum.OFF_MSWord; break; case "docx": of = OutputFileFormatEnum.OFF_DOCX; break; case "rtf": of = OutputFileFormatEnum.OFF_RTF; break; case "pdf": of = OutputFileFormatEnum.OFF_PDF; break; case "pdfa": of = OutputFileFormatEnum.OFF_PDFA; break; case "xls": of = OutputFileFormatEnum.OFF_MSExcel; break; case "xlsx": of = OutputFileFormatEnum.OFF_XLSX; break; case "csv": of = OutputFileFormatEnum.OFF_CSV; break; case "txt": of = OutputFileFormatEnum.OFF_Text; break; case "htm": of = OutputFileFormatEnum.OFF_HTML; break; default: of = OutputFileFormatEnum.OFF_Text; break; } AccessibleConversionJob accj = new AccessibleConversionJob() { Id = Guid.NewGuid(), FileContent = apiFileContent, UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"), FileExtension = extension, FileName = "testAccessibility", MimeType = mime, Status = JobStatus.Started, SubmitTime = DateTime.Now, DownloadCounter = 0, InputFileHash = RoboBrailleProcessor.GetMD5Hash(apiFileContent), TargetDocumentFormat = of }; var apiTask = Task.Run(() => WebAPICall(accj)); return(apiTask.Result); }
public async Task <IHttpActionResult> Post(Job job) { try { Guid userId = RoboBrailleProcessor.getUserIdFromJob(this.Request.Headers.Authorization.Parameter); job.UserId = userId; Guid jobId = Guid.Empty; switch (job.GetType().Name) { case nameof(AccessibleConversionJob): jobId = await(new AccessibleConversionRepository().SubmitWorkItem((AccessibleConversionJob)job)); break; case nameof(AudioJob): jobId = await(new AudioRepository().SubmitWorkItem((AudioJob)job)); break; case nameof(BrailleJob): jobId = await(new BrailleRepository().SubmitWorkItem((BrailleJob)job)); break; case nameof(DaisyJob): jobId = await(new DaisyRepository().SubmitWorkItem((DaisyJob)job)); break; case nameof(DocumentStructureJob): jobId = await(new DocumentStructureRepository().SubmitWorkItem((DocumentStructureJob)job)); break; case nameof(EBookJob): jobId = await(new EBookRepository().SubmitWorkItem((EBookJob)job)); break; case nameof(HTMLtoPDFJob): jobId = await(new HTMLtoPDFRepository().SubmitWorkItem((HTMLtoPDFJob)job)); break; case nameof(HTMLToTextJob): jobId = await(new HTMLToTextRepository().SubmitWorkItem((HTMLToTextJob)job)); break; case nameof(MSOfficeJob): jobId = await(new MSOfficeRepository().SubmitWorkItem((MSOfficeJob)job)); break; case nameof(OcrConversionJob): jobId = await(new OcrConversionRepository().SubmitWorkItem((OcrConversionJob)job)); break; case nameof(SignLanguageJob): jobId = await(new SignLanguageRepository().SubmitWorkItem((SignLanguageJob)job)); break; case nameof(TranslationJob): jobId = await(new TranslationRepository().SubmitWorkItem((TranslationJob)job)); break; case nameof(AmaraSubtitleJob): jobId = await(new AmaraSubtitleRepository().SubmitWorkItem((AmaraSubtitleJob)job)); break; default: break; } return(Ok(jobId.ToString("D"))); } catch (Exception e) { var resp = new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent(string.Format("Internal error: {0}", e)), ReasonPhrase = e.Message }; throw new HttpResponseException(resp); } }
public void TestBraille() { //setup Encoding enc = RoboBrailleProcessor.GetEncodingByCountryCode((Language)Enum.Parse(typeof(Language), language, true)); resultPath = InputSourceRepository.GetTestResultDirectory() + @"\Braille-" + language + "-" + contraction + "-" + format; Directory.CreateDirectory(resultPath); InputSourceRepository isr = new InputSourceRepository(); File.WriteAllBytes(brailleTest, enc.GetBytes(isr.GetTestForLanguage(language))); PageNumbering pn = PageNumbering.none; if (((OutputFormat)Enum.Parse(typeof(OutputFormat), format, true)).Equals(OutputFormat.Pef)) { charsPerLine = new Random().Next(25, 33); linesPerPage = new Random().Next(25, 33); switch (new Random().Next(0, 2)) { case 0: pn = PageNumbering.none; break; case 1: pn = PageNumbering.left; break; case 2: pn = PageNumbering.right; break; default: break; } } BrailleJob brj = new BrailleJob() { Id = Guid.NewGuid(), FileContent = File.ReadAllBytes(brailleTest), UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"), FileExtension = ".txt", FileName = "testBraille", MimeType = "plaint/text", Status = JobStatus.Started, SubmitTime = DateTime.Now, DownloadCounter = 0, InputFileHash = new byte[8], BrailleLanguage = (Language)Enum.Parse(typeof(Language), language, true), BrailleFormat = BrailleFormat.sixdot, CharactersPerLine = charsPerLine, LinesPerPage = linesPerPage, Contraction = (BrailleContraction)Enum.Parse(typeof(BrailleContraction), contraction, true), ConversionPath = ConversionPath.texttobraille, OutputFormat = (OutputFormat)Enum.Parse(typeof(OutputFormat), format, true), PageNumbering = pn }; if (language == "daDK") { switch (contraction) { case "small": contraction = "Lille"; break; case "large": contraction = "Grade2"; break; case "full": contraction = "Grade1"; break; default: break; } } if (language == "nnNO") { switch (contraction) { case "level0": contraction = "Grade1"; break; case "level1": contraction = "Kortskrift1"; break; case "level2": contraction = "Kortskrift2"; break; default: break; } language = "nbNO"; } string destFile = Guid.NewGuid().ToString() + ".txt"; SensusRequest sr = new SensusRequest() { Process = "Braille", SubProcess = contraction, Option = format, Language = language.ToLowerInvariant().Insert(2, "-"), Prefix = "", RequesterID = "sensus-test", FTPServer = "2.109.50.19", FTPUser = "******", FTPPassword = "******", SourcePath = brailleTest, DestinationFile = destFile }; //act var apiTask = Task.Run(() => WebAPICall(brj)); //var ftpTask = Task.Run(() => FTPCall(sr)); //Task.WaitAll(new Task[] { apiTask, ftpTask }); byte[] apiRes = apiTask.Result; //byte[] ftpRes = ftpTask.Result; //assert //NUnit.Framework.Assert.IsNotNull(ftpRes); //string expected = enc.GetString(ftpRes).Trim(); NUnit.Framework.Assert.IsNotNull(apiRes); string result = enc.GetString(apiRes).Trim(); //byte assertion fails because the files are not the same encoding //NUnit.Framework.Assert.AreEqual(ftpRes, apiRes); //NUnit.Framework.Assert.AreEqual(expected,result); }
public void TestAudio() { //setup Language lang = (Language)Enum.Parse(typeof(Language), language, true); resultPath = InputSourceRepository.GetTestResultDirectory() + @"\Audio-" + language; Directory.CreateDirectory(resultPath); InputSourceRepository isr = new InputSourceRepository(); File.WriteAllBytes(audioTest, RoboBrailleProcessor.GetEncodingByCountryCode(lang).GetBytes(isr.GetTestForLanguage(language))); AudioJob auj = new AudioJob() { Id = Guid.NewGuid(), FileContent = File.ReadAllBytes(audioTest), UserId = Guid.Parse("d2b97532-e8c5-e411-8270-f0def103cfd0"), FileExtension = ".txt", FileName = "testAudio", MimeType = "plaint/text", Status = JobStatus.Started, SubmitTime = DateTime.Now, DownloadCounter = 0, InputFileHash = new byte[8], AudioLanguage = lang, FormatOptions = AudioFormat.Mp3, SpeedOptions = AudioSpeed.Normal, VoicePropriety = new VoicePropriety[] { VoicePropriety.None } }; string destFile = Guid.NewGuid().ToString() + ".txt"; SensusRequest sr = new SensusRequest() { Process = "MP3", Option = "", // + ++ +++ - -- --- Language = language.ToLowerInvariant().Insert(2, "-"), Gender = "", Age = "", Prefix = "", RequesterID = "sensus-test", FTPServer = "2.109.50.19", FTPUser = "******", FTPPassword = "******", SourcePath = audioTest, DestinationFile = destFile }; //act var apiTask = Task.Run(() => WebAPICall(auj)); var ftpTask = Task.Run(() => FTPCall(sr)); Task.WaitAll(new Task[] { apiTask, ftpTask }); byte[] apiRes = apiTask.Result; byte[] ftpRes = ftpTask.Result; //assert NUnit.Framework.Assert.IsNotNull(ftpRes); //string expected = RoboBrailleProcessor.GetEncodingByCountryCode((Language)Enum.Parse(typeof(Language), language, true)).GetString(ftpRes).Trim(); //string result = Encoding.UTF8.GetString(apiRes).Trim(); //byte assertion fails because the files are not the same encoding File.WriteAllBytes(resultPath + @"\api.mp3", apiRes); File.WriteAllBytes(resultPath + @"\ftp.mp3", ftpRes); NUnit.Framework.Assert.AreEqual(ftpRes, apiRes); //NUnit.Framework.Assert.AreEqual(expected, result); }