Пример #1
0
    public void LoadExercise(int id)
    {
        for (int i = 0; i < viewport.transform.childCount; i++)
        {
            viewport.transform.GetChild(i).gameObject.SetActive(false);
        }

        if (fromInternet)
        {
            WWWForm postData = new WWWForm();
            postData.AddField("id", id);
            loadExerciseRequest = UnityWebRequest.Post("http://public.hochschule-trier.de/~simonj/suremath/load.php", postData);
            loadExerciseRequest.Send();
        }
        else
        {
            ExerciseBrowserPanel exerciseBrowserListItemController = viewport.transform.GetChild(id).GetComponent <ExerciseBrowserPanel>();
            Text   titleText = exerciseBrowserListItemController.titleTextGameObject.GetComponent <Text>();
            string content   = "<exercise>";
            content += File.ReadAllText(Application.persistentDataPath + "/" + titleText.text);
            content += "</exercise>";
            ExerciseParser.ParseExercise(content, exerciseTitleText, exercisePanelContainer, shapePanelContainer);
            Destroy(gameObject);
        }
    }
Пример #2
0
    public void RefreshList(bool fromInternet)
    {
        //internetTab.gameObject.SetActive(true);

        for (int i = 0; i < viewport.transform.childCount; i++)
        {
            Destroy(viewport.transform.GetChild(i).gameObject);
        }

        if (fromInternet)
        {
            refreshListRequest = UnityWebRequest.Get("http://public.hochschule-trier.de/~simonj/suremath/list.php");
            refreshListRequest.Send();
        }
        else
        {
            DirectoryInfo directoryInfo = new DirectoryInfo(Application.persistentDataPath);
            FileInfo[]    fileInfo      = directoryInfo.GetFiles("*.xml", SearchOption.TopDirectoryOnly);

            string list = "<exercises>";

            int id = 0;
            foreach (FileInfo file in fileInfo)
            {
                list += "<exercise id = '" + id + "' title = '" + file.Name + "' author = '' faculty = ''/>";
                id++;
            }

            list += "</exercises>";

            ExerciseParser.ParseList(list, exerciseBrowserListItemPrefab, viewport, this);
        }

        this.fromInternet = fromInternet;
    }
Пример #3
0
        public void cannot_parse_invalid_input(string input)
        {
            var result = ExerciseParser
                         .GetParser(
                new AudioServiceMock(MockBehavior.Loose),
                new DelayServiceMock(MockBehavior.Loose),
                new SpeechServiceMock(MockBehavior.Loose))(new Input(input));

            Assert.False(result.WasSuccessful && result.Remainder.AtEnd);
        }
Пример #4
0
        public void can_parse_name(string input, string expectedName)
        {
            var result = ExerciseParser
                         .GetParser(
                new AudioServiceMock(MockBehavior.Loose),
                new DelayServiceMock(MockBehavior.Loose),
                new SpeechServiceMock(MockBehavior.Loose))
                         .Parse(input);

            Assert.NotNull(result);
            Assert.Equal(expectedName, result.Name);
        }
Пример #5
0
        public void can_parse_matchers_with_actions(string input, Type[] expectedMatcherTypes)
        {
            var result = ExerciseParser
                         .GetParser(
                new AudioServiceMock(MockBehavior.Loose),
                new DelayServiceMock(MockBehavior.Loose),
                new SpeechServiceMock(MockBehavior.Loose))
                         .Parse(input);

            Assert.NotNull(result);
            Assert.True(result.MatchersWithActions.Select(x => x.Matcher.GetType()).SequenceEqual(expectedMatcherTypes));
        }
Пример #6
0
        public void can_parse_set_and_repetition_counts(string input, int expectedSetCount, int expectedRepetitionCount)
        {
            var result = ExerciseParser
                         .GetParser(
                new AudioServiceMock(MockBehavior.Loose),
                new DelayServiceMock(MockBehavior.Loose),
                new SpeechServiceMock(MockBehavior.Loose))
                         .Parse(input);

            Assert.NotNull(result);
            Assert.Equal(expectedSetCount, result.SetCount);
            Assert.Equal(expectedRepetitionCount, result.RepetitionCount);
        }
 public void get_parser_throws_if_speech_service_is_null()
 {
     Assert.Throws <ArgumentNullException>(() => ExerciseParser.GetParser(new AudioServiceMock(), new DelayServiceMock(), new LoggerServiceMock(), null));
 }
Пример #8
0
 public GeneratorRunner(Options options)
 {
     _options                = options;
     _exerciseParser         = new Lazy <ExerciseParser>(() => ExerciseParser.Create(options));
     _exerciseGeneratorTypes = FindExerciseGeneratorTypes();
 }
Пример #9
0
 void HandleLoadExerciseResponse()
 {
     ExerciseParser.ParseExercise(loadExerciseRequest.downloadHandler.text, exerciseTitleText, exercisePanelContainer, shapePanelContainer);
     Destroy(gameObject);
     loadExerciseRequest = null;
 }
Пример #10
0
 void HandleRefreshListResponse()
 {
     ExerciseParser.ParseList(refreshListRequest.downloadHandler.text, exerciseBrowserListItemPrefab, viewport, this);
     refreshListRequest = null;
 }
Пример #11
0
 void Awake()
 {
     instance = this;
 }