//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[] 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);
        }
Example #3
0
        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);
        }