Beispiel #1
0
        public void HentAlleStasjoner()
        {
            // Arrange
            var controller  = new AdminController(new VyBLL(new AdminDBMetoderStubs()));
            var SessionMock = new TestControllerBuilder();

            SessionMock.InitializeController(controller);
            controller.Session["Innlogget"] = true;
            var stasjonListe = new List <stasjon>();
            var stasjon      = new stasjon()
            {
                StasjonID    = 1,
                Stasjonsnavn = "Oslo S"
            };

            stasjonListe.Add(stasjon);
            stasjonListe.Add(stasjon);
            stasjonListe.Add(stasjon);
            stasjonListe.Add(stasjon);

            var jsonSerializer    = new JavaScriptSerializer();
            var forventetResultat = jsonSerializer.Serialize(stasjonListe);

            // Act
            var resultat = controller.hentAlleStasjoner();

            // Assert
            for (var i = 0; i < resultat.Length; i++)
            {
                Assert.AreEqual(forventetResultat[i], resultat[i]);
            }
        }
Beispiel #2
0
        public void OversiktStasjoner()
        {
            //Arrange
            var controller  = new AdminController(new VyBLL(new AdminDBMetoderStubs()));
            var SessionMock = new TestControllerBuilder();

            SessionMock.InitializeController(controller);
            controller.Session["Innlogget"] = true;

            var forventetResultat = new List <stasjon>();
            var stasjon           = new stasjon()
            {
                StasjonID    = 1,
                Stasjonsnavn = "Oslo S"
            };

            forventetResultat.Add(stasjon);
            forventetResultat.Add(stasjon);
            forventetResultat.Add(stasjon);
            forventetResultat.Add(stasjon);

            //Act
            var actionResult = (ViewResult)controller.OversiktStasjoner();
            var resultat     = (List <stasjon>)actionResult.Model;

            //Assert
            Assert.AreEqual(actionResult.ViewName, "");

            for (var i = 0; i < resultat.Count; i++)
            {
                Assert.AreEqual(forventetResultat[i].StasjonID, resultat[i].StasjonID);
                Assert.AreEqual(forventetResultat[i].Stasjonsnavn, resultat[i].Stasjonsnavn);
            }
        }
        public ActionResult LeggTilAvgang(stasjonPaaBane stasjonPaaBane)
        {
            //Sørger for at man blir stående i samme view om man legger inn en avgang som finnes fra før
            var stasjon = _vyBLL.hentEnStasjon(stasjonPaaBane.StasjonsID);

            stasjonPaaBane.Stasjon = stasjon.Stasjonsnavn;

            //sjekker om tidspunkt er valgt og på riktig format
            var  metodeSjekk = new ValideringsMetoder();
            bool tidspunktOk = metodeSjekk.sjekkTidspunkt(stasjonPaaBane.Avgang);

            if (stasjonPaaBane.BaneID == 0)
            {
                ModelState.AddModelError("BaneID", "Velg bane");
            }

            else if (string.IsNullOrEmpty(stasjonPaaBane.Avgang))
            {
                ModelState.AddModelError("Avgang", "Tidspunkt må oppgis");
            }

            else if (!tidspunktOk)
            {
                ModelState.AddModelError("Avgang", "Tidspunkt må være på korrekt format");
            }

            else if (ModelState.IsValid)
            {
                //sjekker om avgangen finnes fra før
                bool avgangOK = _vyBLL.sjekkAvgangOK(stasjonPaaBane);
                if (avgangOK)
                {
                    stasjon s            = _vyBLL.hentEnStasjon(stasjonPaaBane.StasjonsID);
                    String  Stasjonsnavn = s.Stasjonsnavn;

                    bool leggtilOK = _vyBLL.leggTilStasjonPaaBane(stasjonPaaBane.Avgang, stasjonPaaBane.StasjonsID, stasjonPaaBane.BaneID);
                    if (leggtilOK)
                    {
                        log.Info("Avgang " + stasjonPaaBane.Avgang + " er lagt til stasjon " + Stasjonsnavn + "!");
                        return(RedirectToAction("AvgangerPaStasjon", "Admin", new { id = stasjonPaaBane.StasjonsID }));
                    }

                    else
                    {
                        log.Error("Avgang " + stasjonPaaBane.Avgang + " på stasjon " + Stasjonsnavn + " ble forsøkt lagret, feil oppsto. Transaksjon avbrutt!");
                        ViewBag.save = "Kunne ikke legge til avgang";
                    }
                }
                else
                {
                    log.Debug("Kommer inn i ModelstateValid 'Legg til Avgang', men ikke videre!");
                    ModelState.AddModelError("Avgang", "Avgangen finnes fra før");
                }
            }
            log.Debug("Kommer ikke inn i ModelstateValid 'Legg til Avgang'");
            return(View(stasjonPaaBane));
        }
Beispiel #4
0
        public bool leggTilStasjon(stasjon stasjon)
        {
            if (stasjon.Stasjonsnavn == "DetteErFeil")
            {
                return(false);
            }

            else
            {
                return(true);
            }
        }
Beispiel #5
0
        public bool sjekkStasjonOK(stasjon stasjon)
        {
            if (stasjon.Stasjonsnavn == "Feil")
            {
                return(false);
            }

            else
            {
                return(true);
            }
        }
Beispiel #6
0
        public bool endreStasjon(int id, stasjon stasjon)
        {
            if (id == 10)
            {
                return(false);
            }

            else
            {
                return(true);
            }
        }
Beispiel #7
0
        //------------------------------------------------------------------------------
        //Valideringsmetoder


        //returnerer false om stasjonen finnes fra før av
        public bool sjekkStasjonOK(stasjon innStasjon)
        {
            using (var db = new DB())
            {
                foreach (Stasjon s in db.Stasjon)
                {
                    if (s.Stasjonsnavn == innStasjon.Stasjonsnavn)
                    {
                        return(false);
                    }
                }
                return(true);
            }
        }
Beispiel #8
0
        public List <stasjon> hentAlleStasjoner()
        {
            var stasjonListe = new List <stasjon>();
            var stasjon      = new stasjon()
            {
                StasjonID    = 1,
                Stasjonsnavn = "Oslo S"
            };

            stasjonListe.Add(stasjon);
            stasjonListe.Add(stasjon);
            stasjonListe.Add(stasjon);
            stasjonListe.Add(stasjon);

            return(stasjonListe);
        }
Beispiel #9
0
        public bool endreStasjon(int stasjonID, stasjon innStasjon)
        {
            using (var db = new DB())
            {
                try
                {
                    Stasjon endreStasjon = db.Stasjon.Find(stasjonID);
                    endreStasjon.Stasjonsnavn = innStasjon.Stasjonsnavn;
                    db.SaveChanges();
                    return(true);
                }

                catch (Exception)
                {
                    return(false);
                }
            }
        }
        public ActionResult SlettStasjon(int id, stasjon slettstasjon)
        {
            stasjon s            = _vyBLL.hentEnStasjon(id);
            String  Stasjonsnavn = s.Stasjonsnavn;

            bool slettOK = _vyBLL.slettStasjon(id);

            if (slettOK)
            {
                log.Info("Sletting av stasjon " + Stasjonsnavn + " var vellykket!");
                return(RedirectToAction("OversiktStasjoner"));
            }
            else
            {
                log.Error("Sletting av stasjon " + Stasjonsnavn + " feilet. Transakjson avbrutt!");
                ViewBag.save = "Kunne ikke slette stasjon";
            }
            return(View());
        }
Beispiel #11
0
        public void LeggTilStasjon_LeggTilOK_Feil()
        {
            // Arrange
            var controller  = new AdminController(new VyBLL(new AdminDBMetoderStubs()));
            var SessionMock = new TestControllerBuilder();

            SessionMock.InitializeController(controller);
            controller.Session["Innlogget"] = true;
            var stasjon = new stasjon()
            {
                Stasjonsnavn = "DetteErFeil"
            };

            // Act
            var actionResult = (ViewResult)controller.LeggTilStasjon(stasjon);

            // Assert
            Assert.AreEqual(actionResult.ViewName, "");
        }
Beispiel #12
0
        public stasjon hentEnStasjon(int id)
        {
            if (id == 0)
            {
                var stasjon = new stasjon();
                stasjon.StasjonID = id;
                return(stasjon);
            }

            else
            {
                var stasjon = new stasjon()
                {
                    StasjonID    = 1,
                    Stasjonsnavn = "Oslo S"
                };
                return(stasjon);
            }
        }
Beispiel #13
0
        public void LeggTilStasjon_Model_Feil()
        {
            // Arrange
            var controller  = new AdminController(new VyBLL(new AdminDBMetoderStubs()));
            var SessionMock = new TestControllerBuilder();

            SessionMock.InitializeController(controller);
            controller.Session["Innlogget"] = true;
            var stasjon = new stasjon();

            controller.ViewData.ModelState.AddModelError("Stasjonsnavn", "Stasjonsnavn må oppgis");

            // Act
            var actionResult = (ViewResult)controller.LeggTilStasjon(stasjon);

            // Assert
            Assert.IsTrue(actionResult.ViewData.ModelState.Count == 1);
            Assert.AreEqual(actionResult.ViewName, "");
        }
        public ActionResult EndreStasjon(int id, stasjon endreStasjon)
        {
            Regex regex = new Regex("[^ÆØÅæøåa-zA-Z0-9 ]+");

            if (string.IsNullOrEmpty(endreStasjon.Stasjonsnavn))
            {
                ModelState.AddModelError("Stasjonsnavn", "Stasjonnavn må oppgis");
            }

            else if (regex.IsMatch(endreStasjon.Stasjonsnavn))
            {
                ModelState.AddModelError("Stasjonsnavn", "Stasjonnavn kan ikke inneholde spesialtegn");
            }

            if (ModelState.IsValid)
            {
                stasjon s            = _vyBLL.hentEnStasjon(id);
                String  Stasjonsnavn = s.Stasjonsnavn;

                //sjekker at stasjonen ikke finnes fra før
                bool nyStasjonOK = _vyBLL.sjekkStasjonOK(endreStasjon);
                if (nyStasjonOK)
                {
                    bool endringOK = _vyBLL.endreStasjon(id, endreStasjon);
                    if (endringOK)
                    {
                        log.Info("Stasjon " + Stasjonsnavn + " endret navn til " + endreStasjon.Stasjonsnavn + "!");
                        return(RedirectToAction("OversiktStasjoner"));
                    }
                    else
                    {
                        log.Error("Stasjon " + Stasjonsnavn + " ble forsøkt endret til " + endreStasjon.Stasjonsnavn + ". Endring feilet, transaksjon ble avbrutt!");
                        ViewBag.save = "Kunne ikke oppdatere stasjon";
                    }
                }
                else
                {
                    ModelState.AddModelError("Stasjonsnavn", "Stasjonen finnes fra før");
                }
            }
            return(View());
        }
Beispiel #15
0
        public void EndreStasjon_EndreStasjon_Feil()
        {
            //Arrange
            var controller  = new AdminController(new VyBLL(new AdminDBMetoderStubs()));
            var SessionMock = new TestControllerBuilder();

            SessionMock.InitializeController(controller);
            controller.Session["Innlogget"] = true;
            var stasjon = new stasjon()
            {
                StasjonID    = 10,
                Stasjonsnavn = "Oslo S"
            };

            // Act
            var actionResult = (ViewResult)controller.EndreStasjon(10, stasjon);

            // Assert
            Assert.AreEqual(actionResult.ViewName, "");
        }
Beispiel #16
0
        // Metode for å hente EN stasjon, EN bane

        public stasjon hentEnStasjon(int id)
        {
            using (var db = new DB())
            {
                var enDbStasjon = db.Stasjon.Find(id);
                if (enDbStasjon == null)
                {
                    return(null);
                }
                else
                {
                    var utStasjon = new stasjon()
                    {
                        StasjonID    = enDbStasjon.StasjonsID,
                        Stasjonsnavn = enDbStasjon.Stasjonsnavn
                    };
                    return(utStasjon);
                }
            }
        }
Beispiel #17
0
        public void EndreStasjon_Regex_Feil()
        {
            //Arrange
            var controller  = new AdminController(new VyBLL(new AdminDBMetoderStubs()));
            var SessionMock = new TestControllerBuilder();

            SessionMock.InitializeController(controller);
            controller.Session["Innlogget"] = true;
            var stasjon = new stasjon()
            {
                Stasjonsnavn = "#¤%&/"
            };

            // Act
            var actionResult = (ViewResult)controller.EndreStasjon(0, stasjon);

            // Assert
            Assert.AreEqual(actionResult.ViewName, "");
            Assert.IsTrue(actionResult.ViewData.ModelState.Count == 1);
        }
Beispiel #18
0
        public void AvgangerPaStasjonTom_ID_0()
        {
            var controller  = new AdminController(new VyBLL(new AdminDBMetoderStubs()));
            var SessionMock = new TestControllerBuilder();

            SessionMock.InitializeController(controller);
            controller.Session["Innlogget"] = true;
            var forventetResultat = new stasjon()
            {
                StasjonID = 0
            };

            //Act
            var actionResult = (ViewResult)controller.AvgangerPaStasjonTom(forventetResultat.StasjonID);
            var resultat     = (stasjon)actionResult.Model;

            //Assert
            Assert.AreEqual(actionResult.ViewName, "");
            Assert.AreEqual(forventetResultat.StasjonID, resultat.StasjonID);
            Assert.AreEqual(forventetResultat.Stasjonsnavn, resultat.Stasjonsnavn);
        }
Beispiel #19
0
        public void LeggTilStasjon_LeggTil_OK()
        {
            // Arrange
            var controller  = new AdminController(new VyBLL(new AdminDBMetoderStubs()));
            var SessionMock = new TestControllerBuilder();

            SessionMock.InitializeController(controller);
            controller.Session["Innlogget"] = true;

            var stasjon = new stasjon()
            {
                StasjonID    = 1,
                Stasjonsnavn = "Oslo S"
            };
            // Act
            var result = (RedirectToRouteResult)controller.LeggTilStasjon(stasjon);

            // Assert
            Assert.AreEqual(result.RouteName, "");
            Assert.AreEqual(result.RouteValues.Values.First(), "OversiktStasjoner");
        }
Beispiel #20
0
        // ------------------------------------------------------------------------------------
        // Metoder for å endre, slette og legge til stasjoner i DB

        public bool leggTilStasjon(stasjon innStasjon)
        {
            var nyStasjon = new Stasjon()
            {
                Stasjonsnavn = innStasjon.Stasjonsnavn
            };

            using (var db = new DB())
            {
                try
                {
                    db.Stasjon.Add(nyStasjon);
                    db.SaveChanges();
                    return(true);
                }

                catch (Exception)
                {
                    return(false);
                }
            }
        }
        public ActionResult LeggTilStasjon(stasjon stasjon)
        {
            Regex regex = new Regex("[^ÆØÅæøåa-zA-Z0-9 ]+");

            if (string.IsNullOrEmpty(stasjon.Stasjonsnavn))
            {
                ModelState.AddModelError("Stasjonsnavn", "Stasjonnavn må oppgis");
            }

            else if (regex.IsMatch(stasjon.Stasjonsnavn))
            {
                ModelState.AddModelError("Stasjonsnavn", "Stasjonnavn kan ikke inneholde spesialtegn");
            }

            if (ModelState.IsValid)
            {
                //sjekker at stasjon ikke finnes fra før
                bool nyStasjonOK = _vyBLL.sjekkStasjonOK(stasjon);
                if (nyStasjonOK)
                {
                    bool leggTilOK = _vyBLL.leggTilStasjon(stasjon);
                    if (leggTilOK)
                    {
                        log.Info("Ny stasjon med navn " + stasjon.Stasjonsnavn + " lagt til i databasen");
                        return(RedirectToAction("OversiktStasjoner"));
                    }
                    else
                    {
                        log.Error("Ny stasjon med navn " + stasjon.Stasjonsnavn + " kunne ikke lagres. Transaksjon avbrutt!");
                        ViewBag.save = "Kunne ikke legge til stasjon";
                    }
                }
                else
                {
                    ModelState.AddModelError("Stasjonsnavn", "Stasjonen finnes fra før");
                }
            }
            return(View());
        }
Beispiel #22
0
 //----------------------------------------------------------------
 //Valideringsmetoder
 public bool sjekkStasjonOK(stasjon innStasjon)
 {
     return(_AdminDAL.sjekkStasjonOK(innStasjon));
 }
Beispiel #23
0
 //----------------------------------------------------------------
 //Metoder for å lagre, endre, slette i database
 public bool leggTilStasjon(stasjon innStasjon)
 {
     return(_AdminDAL.leggTilStasjon(innStasjon));
 }
Beispiel #24
0
 public bool endreStasjon(int stasjonID, stasjon innStasjon)
 {
     return(_AdminDAL.endreStasjon(stasjonID, innStasjon));
 }
        public ActionResult EndreStasjon(int id)
        {
            stasjon enstasjon = _vyBLL.hentEnStasjon(id);

            return(View(enstasjon));
        }
        public ActionResult AvgangerPaStasjonTom(int id)
        {
            stasjon stasjon = _vyBLL.hentEnStasjon(id);

            return(View(stasjon));
        }