public void PrzetwarzaczZNastępnikiemWywołujeGoPoSobie()
 {
     _mapa = new Mapa(); // nie mock, bo testujemy zachowanie związane z rejestracją przetwarzaczy
      var przetwarzacz = new PustyPrzetwarzaczZNastepnikiem();
      _mapa.ZastosujPrzetwarzanie(przetwarzacz);
      _mapa.ZastosowanePrzetwarzacze.ElementAt(0).ShouldBeType<PustyPrzetwarzaczZNastepnikiem>();
      _mapa.ZastosowanePrzetwarzacze.ElementAt(1).ShouldBeType<PustyPrzetwarzacz>();
 }
        public void NastepnicyPunktówGeograficznychSąIchSąsiadami()
        {
            _mapa = MakietaKlasyMapa();
             var modyfikator = new ProstyModyfikatorWysokosci();
             _mapa.ZastosujPrzetwarzanie(modyfikator);

             var punkt1 = _mapa.Punkty.ElementAt(0);
             var punkt2 = _mapa.Punkty.ElementAt(1);
             punkt1.Sasiedzi.ShouldContain(punkt1.Nastepnik);
             punkt2.Sasiedzi.ShouldContain(punkt2.Nastepnik);
        }
 public void PunktyGeograficznePrzetworzonejMapyMająOdpowiednioPoustawianychNastepnikow()
 {
     _mapa = MakietaKlasyMapa();
      var modyfikator = new ProstyModyfikatorWysokosci();
      _mapa.ZastosujPrzetwarzanie(modyfikator);
      var punkt1 = _mapa.Punkty.ElementAt(0);
      var punkt2 = _mapa.Punkty.ElementAt(1);
      var punkt3 = _mapa.Punkty.ElementAt(2);
      punkt1.Nastepnik.ShouldEqual(punkt2);
      punkt2.Nastepnik.ShouldEqual(punkt3);
      punkt3.Nastepnik.ShouldBeNull();
 }
        public void ŁańcuchNastępnikówKończySięNaBrzegu()
        {
            _mapa = MakietaKlasyMapa();
             var modyfikator = new ProstyModyfikatorWysokosci();
             var punkt1 = _mapa.Punkty.ElementAt(0);
             var punkt2 = _mapa.Punkty.ElementAt(1);
             var punkt3 = _mapa.Punkty.ElementAt(2);
             _mapa.Rogi.Add(new Rog
             {
            Punkt = punkt2,
            Dane = new DaneRogu
            {
               Brzeznosc = BrzeznoscRogu.Brzeg
            }
             });

             _mapa.ZastosujPrzetwarzanie(modyfikator);

             punkt1.Nastepnik.ShouldEqual(punkt2);
             punkt2.Nastepnik.ShouldBeNull();
             punkt3.Nastepnik.ShouldBeNull();
        }