public void corrigeren(Taaltest taalTestUitslag)
        {
            //#AS:2013/06/23: merges answers with template test and corrects it.
            var testUitslaagAntwoorden =
                from tttf in this.vragen
                join ttuf in taalTestUitslag.vragen on tttf.ID equals ttuf.ID
                select(
                    from to1 in tttf.antwoorden
                    join to2 in ttuf.antwoorden
                    on to1.ID equals to2.ID
                    select new { ID = tttf.ID, data = new TestOnderdeel {
                                     ID = to2.ID, tekst = to2.tekst, antwoord = to2.antwoord
                                 } }
                    ).ToList();

            var testUitslaagTestOnderdeelList = testUitslaagAntwoorden.SelectMany(i => i);

            this.vragen.ForEach(v => v.antwoorden.ForEach(
                                    a => a.antwoord = testUitslaagTestOnderdeelList.Where(
                                        testOnderdeelWrapper => (testOnderdeelWrapper.ID == v.ID)
                                        ).
                                                      Where(
                                        testOnderdeel => (testOnderdeel.data.ID == a.ID)
                                        ).First().data.antwoord)
                                );
            this.corrigeren();
        }
        public void corrigeren(Taaltest taalTestUitslag)
        {
            //#AS:2013/06/23: merges answers with template test and corrects it.
            var testUitslaagAntwoorden =
                from tttf in this.vragen
                join ttuf in taalTestUitslag.vragen on tttf.ID equals ttuf.ID
                select (
                from to1 in tttf.antwoorden
                join to2 in ttuf.antwoorden
                on to1.ID equals to2.ID
                select new { ID = tttf.ID, data = new TestOnderdeel { ID = to2.ID, tekst = to2.tekst, antwoord = to2.antwoord } }
                ).ToList();

            var testUitslaagTestOnderdeelList = testUitslaagAntwoorden.SelectMany(i => i);

            this.vragen.ForEach(v => v.antwoorden.ForEach(
                a => a.antwoord = testUitslaagTestOnderdeelList.Where(
                    testOnderdeelWrapper => (testOnderdeelWrapper.ID == v.ID)
                    ).
                Where(
                testOnderdeel => (testOnderdeel.data.ID == a.ID)
                ).First().data.antwoord)
                );
            this.corrigeren();

        }
        public void wrongAnswersAreDetected()
        {
            Taaltest t = new Taaltest();
            TestDeel td = new TestDeel();

            td.add("Tekst", "Fout", false);
            td.add("Tekst", "A1", true);
            t.vragen.Add(td);
            t.corrigeren();
            IList<TestDeel> fouten = t.fouten;
            //Has.Exactly(1).Member(t)
            Assert.AreEqual(1, fouten.AsEnumerable().Count());
        }
 public void canCreateNewTest()
 {
     //arrange
     var test = new Taaltest();
     var eersteTestDeel = new TestDeel();
    
     eersteTestDeel.add("eerste vraag", "eerste antwoord", true);
     var tweedeTestDeel = new TestDeel();
     tweedeTestDeel.add("tweede vraag", "tweede antowoord", true);
     test.vragen.Add(eersteTestDeel);
     test.vragen.Add(tweedeTestDeel);
     //act
     //assert
     Assert.AreEqual(2, test.vragen.Count);
     
 }