示例#1
0
        public void RunTests()
        {
            //megtörténik a játékosváltás helyesen
            PlayerSettingsChanged("PP");
            assert(PP && !PC && !CC);
            PlayerSettingsChanged("PC");
            assert(!PP && PC && !CC);
            PlayerSettingsChanged("CC");
            assert(!PP && !PC && CC);
            PlayerSettingsChanged("asd");
            assert(!PP && !PC && CC);
            PlayerSettingsChanged("PP");
            assert(Elements != null); //létrejönnek az elemek
            //megfelelő a tábla mérete (n*n)
            CreateGameTable(1);
            assert(Elements.Count == 1);
            CreateGameTable(50);
            assert(Elements.Count == 2500);
            //minden elem üres-e
            assert(Elements[12].Id == 12);
            assert(Elements.Where(p => p.IsEnabled).Count() == Elements.Count);
            assert(Elements.Where(p => p.Text == "").Count() == Elements.Count);
            assert(Elements.Where(p =>
                                  p.X == (p.Id / 50) && p.Y == p.Id - ((p.Id / 50) * 50)
                                  ).Count() == Elements.Count);
            //néhány lépés
            FieldChosen(0);
            FieldChosen(1);
            FieldChosen(2);
            FieldChosen(3);
            FieldChosen(4);
            //új játék hívása után újra üres-e a tábla
            NewGame();
            assert(Elements.Count == 2500);
            assert(Elements[12].Id == 12);
            assert(Elements.Where(p => p.IsEnabled).Count() == Elements.Count);
            assert(Elements.Where(p => p.Text == "").Count() == Elements.Count);
            assert(Elements.Where(p =>
                                  p.X == (p.Id / 50) && p.Y == p.Id - ((p.Id / 50) * 50)
                                  ).Count() == Elements.Count);

            //két jó elem és egy rossz elem kiválasztása után kettővel kevesebb mezőre lehet lépni
            NewGame();
            assert(Elements.Where(p => p.IsEnabled).Count() == Elements.Count);
            FieldChosen(0);
            assert(Elements.Where(p => p.IsEnabled).Count() == Elements.Count - 1);
            FieldChosen(1);
            assert(Elements.Where(p => p.IsEnabled).Count() == Elements.Count - 2);
            FieldChosen(1);
            assert(Elements.Where(p => p.IsEnabled).Count() == Elements.Count - 2);

            //A nextstep lép-e az adott mezőre
            PlayerSettingsChanged("PP");
            assert(Elements.Where(p => p.IsEnabled).Count() == Elements.Count);
            NextStep(Elements[0]);
            assert(Elements[0].Text == "X");
            NextStep(Elements[1]);
            assert(Elements[1].Text == "O");
            NextStep(Elements[2]);
            assert(Elements[2].Text == "X");

            //a gépi játékos rak-e önmagától valahova
            PlayerSettingsChanged("PC");
            assert(Elements.Where(p => p.IsEnabled).Count() == Elements.Count);
            FieldChosen(0);
            assert(Elements.Where(p => p.IsEnabled).Count() == Elements.Count - 2);

            //befejeződik-e a játék
            PlayerSettingsChanged("PP");
            bool vege = false;

            GameEnded += delegate(object sender, WinEventArgs e)
            {
                vege = true;
            };
            FieldChosen(0);
            FieldChosen(11);
            FieldChosen(1);
            FieldChosen(12);
            FieldChosen(2);
            FieldChosen(13);
            FieldChosen(3);
            FieldChosen(14);
            FieldChosen(4);
            assert(vege);

            //A kiírandó szövegek ellenőrzése
            PlayerSettingsChanged("PP");
            assert(Elements.Where(p => p.IsEnabled).Count() == Elements.Count);
            SetInfoFromActualState();
            assert(InfoText.Equals("Next is X player"));
            FieldChosen(0);
            SetInfoFromActualState();
            assert(InfoText.Equals("Next is O player"));
            CPUStep();
            assert(Elements.Where(p => p.IsEnabled).Count() == Elements.Count - 2);

            assert(PlayerToString(true).Equals("X player"));
            assert(PlayerToString(false).Equals("O player"));
            PlayerSettingsChanged("PC");
            assert(PlayerToString(true).Equals("X player"));
            assert(PlayerToString(false).Equals("O CPU"));
            PlayerSettingsChanged("CC");
            assert(PlayerToString(true).Equals("X CPU"));
            assert(PlayerToString(false).Equals("O CPU"));
        }