Exemplo n.º 1
0
        protected override QuizItem LoadElement(XmlNode e)
        {
            QuizItem result = null;

            if (e.Name == "quiz")
            {
                result = new Quiz();
                ((Quiz)result).Title = e.Attributes["title"].Value;
            }
            if (e.Name == "container")
            {
                result = new QuizItemContainer();
            }
            if (e.Name == "question")
            {
                result = new Question(e.Attributes["text"].Value, bool.Parse(e.Attributes["multichoice"].Value));
                foreach (XmlNode ch in e.ChildNodes)
                {
                    ((Question)result).Answers.Add(new Answer(
                                                       ch.Attributes["text"].Value,
                                                       bool.Parse(ch.Attributes["correct"].Value)
                                                       ));
                }
            }
            return(result);
        }
Exemplo n.º 2
0
        protected QuizItem WalkLoad(Stream s)
        {
            QuizItem result = null;
            int      type   = s.ReadByte();

            if (type == 0)
            {
                int count             = s.ReadByte();
                QuizItemContainer res = new QuizItemContainer();
                for (int i = 0; i < count; i++)
                {
                    res.Items.Add(WalkLoad(s));
                }
                result = res;
            }
            if (type == 1)
            {
                int      count = s.ReadByte();
                Question res   = new Question(Util.ReadString(s), s.ReadByte() == 1);
                for (int i = 0; i < count; i++)
                {
                    res.Answers.Add(new Answer(Util.ReadString(s), s.ReadByte() == 1));
                }
                result = res;
            }
            return(result);
        }
Exemplo n.º 3
0
        protected override QuizItem LoadElement(XElement e)
        {
            QuizItem result = null;

            if (e.Name == "quiz")
            {
                result = new Quiz();
                ((Quiz)result).Title = e.Attribute("title").Value;
            }
            if (e.Name == "container")
            {
                result = new QuizItemContainer();
            }
            if (e.Name == "question")
            {
                result = new Question(e.Attribute("text").Value, bool.Parse(e.Attribute("multichoice").Value));
                foreach (XElement ch in e.Descendants())
                {
                    ((Question)result).Answers.Add(new Answer(
                                                       ch.Attribute("text").Value,
                                                       bool.Parse(ch.Attribute("correct").Value)
                                                       ));
                }
            }
            return(result);
        }
Exemplo n.º 4
0
 protected void WalkSave(QuizItem i, Stream s)
 {
     if (i is QuizItemContainer)
     {
         s.WriteByte(0);
         QuizItemContainer c = (QuizItemContainer)i;
         s.WriteByte((byte)c.Items.Count);
         foreach (QuizItem item in c)
         {
             WalkSave(item, s);
         }
     }
     if (i is Question)
     {
         s.WriteByte(1);
         Question c = (Question)i;
         s.WriteByte((byte)c.Answers.Count);
         Util.WriteString(s, c.Text);
         s.WriteByte((byte)(c.Multichoice ? 1 : 0));
         foreach (Answer item in c)
         {
             Util.WriteString(s, item.Text);
             s.WriteByte((byte)(item.Correct ? 1 : 0));
         }
     }
 }
Exemplo n.º 5
0
        public static Quiz GetQuiz()
        {
            Quiz q = new Quiz();
            QuizItemContainer q1  = new QuizItemContainer();
            Question          qe1 = new Question("Q1", false);

            qe1.Answers.AddRange(new List <Answer> {
                new Answer("A1", false), new Answer("A2", true)
            });
            Question qe2 = new Question("Q2", true);

            qe2.Answers.AddRange(new List <Answer> {
                new Answer("A1", false), new Answer("A2", true), new Answer("A3", true)
            });
            q1.Add(qe1);
            q1.Add(qe2);
            Question qe3 = new Question("Q2", true);

            qe3.Answers.AddRange(new List <Answer> {
                new Answer("A1", true), new Answer("A2", true), new Answer("A3", false)
            });
            q.Add(q1);
            q.Add(qe3);

            q.Title = "Test";
            return(q);
        }
Exemplo n.º 6
0
        public void GetQuestionCountTest()
        {
            QuizItemContainer target = Fixture.GetQuiz();
            int expected             = 3;
            int actual;

            actual = target.GetQuestionCount();
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 7
0
        public void GetCorrectAnswerCountTest()
        {
            QuizItemContainer target = Fixture.GetQuiz();

            ((Question)((QuizItemContainer)target[0])[0]).SelectAnswer(1);
            ((Question)target[1]).SelectAnswer(1);
            int expected = 1;
            int actual;

            actual = target.GetCorrectAnswerCount();
            Assert.AreEqual(expected, actual);
        }
Exemplo n.º 8
0
        public void IsAnsweredCorrectlyTest()
        {
            QuizItemContainer target = Fixture.GetQuiz();

            ((Question)((QuizItemContainer)target[0])[0]).SelectAnswer(1);
            ((Question)target[1]).SelectAnswer(1);
            Assert.IsFalse(target.IsAnsweredCorrectly());
            ((Question)((QuizItemContainer)target[0])[1]).SelectAnswer(1);
            ((Question)((QuizItemContainer)target[0])[1]).SelectAnswer(2);
            ((Question)target[1]).SelectAnswer(1);
            ((Question)target[1]).SelectAnswer(0);
            Assert.IsTrue(target.IsAnsweredCorrectly());
        }
Exemplo n.º 9
0
        public void IsAnsweredTest()
        {
            QuizItemContainer target = Fixture.GetQuiz();
            bool expected            = false;
            bool actual;

            actual = target.IsAnswered();
            Assert.AreEqual(expected, actual);
            ((Question)((QuizItemContainer)target[0])[0]).SelectAnswer(1);
            ((Question)((QuizItemContainer)target[0])[1]).SelectAnswer(1);
            ((Question)target[1]).SelectAnswer(1);
            actual = target.IsAnswered();
            Assert.IsTrue(actual);
        }
Exemplo n.º 10
0
 protected QuizItem WalkLoad(Stream s)
 {
     QuizItem result = null;
        int type = s.ReadByte();
        if (type == 0)
        {
        int count = s.ReadByte();
        QuizItemContainer res = new QuizItemContainer();
        for (int i = 0; i < count; i++)
            res.Items.Add(WalkLoad(s));
        result = res;
        }
        if (type == 1)
        {
        int count = s.ReadByte();
        Question res = new Question(Util.ReadString(s), s.ReadByte() == 1);
        for (int i = 0; i < count; i++)
            res.Answers.Add(new Answer(Util.ReadString(s), s.ReadByte() == 1));
        result = res;
        }
        return result;
 }
Exemplo n.º 11
0
        public void QuizItemContainerConstructorTest()
        {
            QuizItemContainer target = new QuizItemContainer();

            Assert.AreEqual(target.GetQuestionCount(), 0);
        }