public void LagNy()
        {
            // Arrange

            var controller = new KategoriController(new KategoriLogikk(new KategoriRepositoryStub()));
            var builder = new TestControllerBuilder();
            builder.InitializeController(controller);

            controller.Session["AdminInnlogget"] = true;

            // Act

            var result = (ViewResult)controller.LagNy();

            // Assert

            Assert.AreEqual(result.ViewName, "");
        }
        public void LagNy_ikke_innlogget()
        {
            // Arrange

            var controller = new KategoriController(new KategoriLogikk(new KategoriRepositoryStub()));
            var builder = new TestControllerBuilder();
            builder.InitializeController(controller);

            controller.Session["AdminInnlogget"] = false;

            // Act

            var result = (RedirectToRouteResult)controller.LagNy();

            // Assert

            Assert.AreEqual(result.RouteName, "");
            Assert.AreEqual(result.RouteValues.Values.ElementAt(0), "Innlogging");
            Assert.AreEqual(result.RouteValues.Values.ElementAt(1), "Admin");
        }
        public void LagNy_POST_model_feil()
        {
            // Arrange

            var controller = new KategoriController(new KategoriLogikk(new KategoriRepositoryStub()));
            var builder = new TestControllerBuilder();
            builder.InitializeController(controller);

            controller.Session["AdminInnlogget"] = true;
            controller.ViewData.ModelState.AddModelError("Navn", "Ikke oppgitt kategorinavn.");

            var forventetKategori = new Kategori();

            // Act

            var result = (ViewResult)controller.LagNy(forventetKategori);

            // Assert

            Assert.IsTrue(result.ViewData.ModelState.Count == 1);
            Assert.AreEqual(result.ViewName, "");
        }
        public void Slett_POST_ok()
        {
            // Arrange

            var controller = new KategoriController(new KategoriLogikk(new KategoriRepositoryStub()));
            var builder = new TestControllerBuilder();
            builder.InitializeController(controller);

            controller.Session["AdminInnlogget"] = true;

            var forventetKategori = new Kategori() {
                ID = 1,
                Navn = "Mobiltelefoner"
            };

            // Act

            var result = (RedirectToRouteResult)controller.Slett(1, forventetKategori);

            // Assert

            Assert.AreEqual(result.RouteName, "");
            Assert.AreEqual(result.RouteValues.Values.ElementAt(0), "Liste");
        }
        public void Slett_POST_ikke_funnet()
        {
            // Arrange

            var controller = new KategoriController(new KategoriLogikk(new KategoriRepositoryStub()));
            var builder = new TestControllerBuilder();
            builder.InitializeController(controller);

            controller.Session["AdminInnlogget"] = true;

            var forventetKategori = new Kategori() {
                ID = 0,
                Navn = "Mobiltelefoner"
            };

            // Act

            var result = (ViewResult)controller.Slett(0, forventetKategori);

            // Assert

            Assert.AreEqual(result.ViewName, "");
        }
        public void Rediger_POST_ok_ref_front()
        {
            // Arrange

            var controller = new KategoriController(new KategoriLogikk(new KategoriRepositoryStub()));
            var builder = new TestControllerBuilder();
            builder.InitializeController(controller);

            controller.Session["AdminInnlogget"] = true;
            controller.Request.QueryString.Add("ref", "front");

            var forventetKategori = new Kategori() {
                ID = 1,
                Navn = "Bærbare håndholdte telefoner"
            };

            // Act

            var result = (RedirectToRouteResult)controller.Rediger(1, forventetKategori);

            // Assert

            Assert.AreEqual(result.RouteName, "");
            Assert.AreEqual(result.RouteValues.Values.ElementAt(0), "Liste");
            Assert.AreEqual(result.RouteValues.Values.ElementAt(1), "Katalog");
        }
        public void Rediger_POST_feil_validering()
        {
            // Arrange

            var controller = new KategoriController(new KategoriLogikk(new KategoriRepositoryStub()));
            var builder = new TestControllerBuilder();
            builder.InitializeController(controller);

            controller.Session["AdminInnlogget"] = true;

            var forventetKategori = new Kategori();

            controller.ModelState.AddModelError("ID", "ID er null");
            controller.ModelState.AddModelError("Navn", "Navn er tom");

            // Act

            var result = (ViewResult)controller.Rediger(1, forventetKategori);

            // Assert

            Assert.IsTrue(result.ViewData.ModelState.Count == 2);
            Assert.AreEqual(result.ViewName, "");
        }
        public void Liste()
        {
            // Arrange

            var controller = new KategoriController(new KategoriLogikk(new KategoriRepositoryStub()));
            var builder = new TestControllerBuilder();
            builder.InitializeController(controller);

            controller.Session["AdminInnlogget"] = true;

            var mobiltelefoner = new Kategori() {
                Navn = "Mobiltelefoner"
            };

            var datautstyr = new Kategori() {
                Navn = "Datautstyr"
            };

            var forventetResultat = new List<Kategori>();

            forventetResultat.Add(mobiltelefoner);
            forventetResultat.Add(datautstyr);

            // Act

            var result = (ViewResult)controller.Liste();
            var resultat = (List<Kategori>)result.Model;

            // Assert

            Assert.AreEqual(result.ViewName, "");

            for (var i = 0; i < resultat.Count; i++) {
                Assert.AreEqual(forventetResultat[i].Navn, resultat[i].Navn);
                Assert.AreEqual(forventetResultat[i].Slettet, resultat[i].Slettet);
            }
        }
        public void LagNy_POST_ok()
        {
            // Arrange

            var controller = new KategoriController(new KategoriLogikk(new KategoriRepositoryStub()));
            var builder = new TestControllerBuilder();
            builder.InitializeController(controller);

            controller.Session["AdminInnlogget"] = true;

            var forventetKategori = new Kategori() {
                Navn = "Datamaskiner"
            };

            // Act

            var result = (RedirectToRouteResult)controller.LagNy(forventetKategori);

            // Assert

            Assert.AreEqual(result.RouteName, "");
            Assert.AreEqual(result.RouteValues.Values.First(), "Liste");
        }