public void Rediger_POST_ok()
        {
            //ARRANGE

            var controller = new ArtikkelController(new ArtikkelLogikk(new ArtikkelRepositoryStub()), new KategoriLogikk(new KategoriRepositoryStub()));
            var sessionMock = new TestControllerBuilder();
            sessionMock.InitializeController(controller);

            controller.Session["AdminInnlogget"] = true;

            var forventetArtikkel = new RedigerArtikkel()
            {
                KategoriID = 1,
                Beskrivelse = "iPhone 5",
                Pris = 1000,
                AntallPaaLager = 5,
                BildeUrl = "http://i.imgur.com/A9VXpL7.jpg"
            };

            // Act

            var actionResult = (RedirectToRouteResult)controller.Rediger(1, forventetArtikkel);

            // Assert

            Assert.AreEqual(actionResult.RouteName, "");
            Assert.AreEqual(actionResult.RouteValues.Values.ElementAt(0), "Liste");
        }
        public void Rediger_POST_ikke_innlogget()
        {
            var controller = new ArtikkelController(new ArtikkelLogikk(new ArtikkelRepositoryStub()), new KategoriLogikk(new KategoriRepositoryStub()));
            var sessionMock = new TestControllerBuilder();
            sessionMock.InitializeController(controller);

            controller.Session["AdminInnlogget"] = false;
            var forventetArtikkel = new RedigerArtikkel();

            var actionResult = (RedirectToRouteResult)controller.Rediger(1, forventetArtikkel);

            // Assert

            Assert.AreEqual(actionResult.RouteName, "");
            Assert.AreEqual(actionResult.RouteValues.Values.ElementAt(0), "Innlogging");
            Assert.AreEqual(actionResult.RouteValues.Values.ElementAt(1), "Admin");
        }
        public void Rediger_POST_feil_validering()
        {
            var controller = new ArtikkelController(new ArtikkelLogikk(new ArtikkelRepositoryStub()), new KategoriLogikk(new KategoriRepositoryStub()));
            var sessionMock = new TestControllerBuilder();
            sessionMock.InitializeController(controller);

            controller.Session["AdminInnlogget"] = true;
            var forventetArtikkel = new RedigerArtikkel();
            controller.ViewData.ModelState.AddModelError("KategoriID", "Mangler kategori ID");
            controller.ViewData.ModelState.AddModelError("Beskrivelse", "Mangler beskrivelse");
            controller.ViewData.ModelState.AddModelError("Pris", "Mangler pris");
            controller.ViewData.ModelState.AddModelError("BildeUrl", "Mangler Bilde URL");

            var resultat = (ViewResult)controller.Rediger(1);

            Assert.IsTrue(resultat.ViewData.ModelState.Count == 4);
            Assert.AreEqual(resultat.ViewName, "");
        }
        public void Rediger_POST_ikke_funnet()
        {
            var controller = new ArtikkelController(new ArtikkelLogikk(new ArtikkelRepositoryStub()), new KategoriLogikk(new KategoriRepositoryStub()));
            var sessionMock = new TestControllerBuilder();
            sessionMock.InitializeController(controller);

            controller.Session["AdminInnlogget"] = true;
            var forventetArtikkel = new RedigerArtikkel()
            {
                KategoriID = 0,
                Beskrivelse = "iPhone 5",
                Pris = 1000,
                AntallPaaLager = 5,
                BildeUrl = "http://i.imgur.com/A9VXpL7.jpg"
            };

            var actionResult = (ViewResult)controller.Rediger(0, forventetArtikkel);

            Assert.AreEqual(actionResult.ViewName, "");
        }
        public void Rediger_innlogget()
        {
            //ARRANGE

            var controller = new ArtikkelController(new ArtikkelLogikk(new ArtikkelRepositoryStub()), new KategoriLogikk(new KategoriRepositoryStub()));
            var sessionMock = new TestControllerBuilder();
            sessionMock.InitializeController(controller);

            controller.Session["AdminInnlogget"] = true;

            // Act

            var actionResult = (ViewResult)controller.Rediger(1);

            // Assert

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