Exemple #1
0
        public async Task LagreLoggetInnOK()
        {
            /*  Kan unngå denne med It.IsAny<Kunde>
             * var kunde1 = new Kunde {Id = 1,Fornavn = "Per",Etternavn = "Hansen",Adresse = "Askerveien 82",
             *                      Postnr = "1370",Poststed = "Asker"};
             */

            // Arrange, da kan jeg ta It.IsAny av type Kunde. Returnerer true.
            mockRep.Setup(k => k.Lagre(It.IsAny <Kunde>())).ReturnsAsync(true);

            var kundeController = new KundeController(mockRep.Object, mockLog.Object);

            //setter mockSession til loggetInn
            mockSession[_loggetInn] = _loggetInn;
            mockHttpContext.Setup(s => s.Session).Returns(mockSession);
            kundeController.ControllerContext.HttpContext = mockHttpContext.Object;

            // Act, da skal vi få OK tilbake (OkObjectResult)
            var resultat = await kundeController.Lagre(It.IsAny <Kunde>()) as OkObjectResult;

            // Assert, sjekker på statuskoden
            Assert.Equal((int)HttpStatusCode.OK, resultat.StatusCode);
            //Kunde lagret
            Assert.Equal("Kunde lagret", resultat.Value);
        }
Exemple #2
0
        public async Task HentAlleIkkeLoggetInn()
        {
            // Arrange

            //var tomListe = new List<Kunde>();

            /**
             * It.IsAny også typen. Den returnerer altså et eller annet, et objekt av type List<Kunde>
             * Det er ikke viktig hva den returnerer fordi vi skal ikke teste på det fordi jeg er ikke
             * logget inn og derfor er det ikke viktig hva som kommer ut her. Men det må være av riktig
             * type. Da kan vi brukke mocken, altså klassen mock.It sin IsAny også typen.
             **/
            mockRep.Setup(k => k.HentAlle()).ReturnsAsync(It.IsAny <List <Kunde> >());

            //KundeController mocker repository og loggen.
            var kundeController = new KundeController(mockRep.Object, mockLog.Object);

            //setter IKKE loggetInn i MockSession
            mockSession[_loggetInn] = _ikkeLoggetInn;
            mockHttpContext.Setup(s => s.Session).Returns(mockSession);
            kundeController.ControllerContext.HttpContext = mockHttpContext.Object;

            // Act, tar HentAlle på KundeController og da returnerer vi UnauthorizedObjectResult,
            //returnerer Unauthorized hvis vi ikke er logget inn.
            var resultat = await kundeController.HentAlle() as UnauthorizedObjectResult;

            // Assert, sjekker at HttpStatisCode sin Unauthorized er lik resultatet sin statuskode
            Assert.Equal((int)HttpStatusCode.Unauthorized, resultat.StatusCode);
            //og at vi får "Ikke logget inn" i resultatet sin value.
            Assert.Equal("Ikke logget inn", resultat.Value);
        }
Exemple #3
0
        public void Liste()
        {
            var controller        = new KundeController(new VareBLL(new KundeDALStub()));
            var forventetResultat = new List <Kunde>();

            /*var kunde = new Kunde()
             * {
             *  ID = 1,
             *  Fornavn = "Per",
             *  Etternavn = "Olsen",
             *  Adresse = "Osloveien 82"
             * };
             * forventetResultat.Add(kunde);
             * forventetResultat.Add(kunde);
             * forventetResultat.Add(kunde);
             *
             * // Act
             * var actionResult = (ViewResult)controller.kundeListe();
             * var resultat = (List<Kunde>)actionResult.Model;
             * // Assert
             *
             * Assert.AreEqual(actionResult.ViewName, "");
             *
             * for (var i = 0; i < resultat.Count; i++)
             * {
             *  Assert.AreEqual(forventetResultat[i].ID, resultat[i].ID);
             *  Assert.AreEqual(forventetResultat[i].Fornavn, resultat[i].Fornavn);
             *  Assert.AreEqual(forventetResultat[i].Etternavn, resultat[i].Etternavn);
             *  Assert.AreEqual(forventetResultat[i].Adresse, resultat[i].Adresse);
             * }*/
        }
        //Arrange
        public async Task Lagre()
        {
            var innKunde = new Kunde
            {
                Id        = 1,
                Fornavn   = "Per",
                Etternavn = "Hansen",
                Adresse   = "Askerveien 82",
                Postnr    = "1370",
                Poststed  = "Asker"
            };
            //Mock i KundeRepository. Da har vi laget en mock, en variabel som kan brukes til å erstatte kallet til repository. Skal ikke gå mot db.
            var mock = new Mock <IKundeRepository>();

            //Så setter vi opp den mock-en. Altså: vi beskriver hvordan mock skal fungere. Kallet er et lambda-uttrykk
            //k står for kunde. Kaller kunde sin lagre. Og jeg skal lagre innKunde. Etter det skriver vi ReturnAsync(true)
            //Vi returnerer true fordi lagre-metoden i repository returnerer bool. Hvis det går bra returnerer den true, hvis ikke
            //så returnerer den false. Altså: det kallet til lagre innKunde, det er kallet i kunderepository-et.
            //Dvs: når vi kaller på lagre i kundeController, så er det denne metoden her vi skal kjøre istedenfor den som er i kundeRepository.
            //Når vi kaller på IKunderepository så er det denne metoden den skal kjøre, og den skal returnere true. Det er repo som jeg faker
            mock.Setup(k => k.Lagre(innKunde)).ReturnsAsync(true); //her erstatter vi kallet til repository. Og sier at når controlleren kaller repository lagre, så skal den returnere true.
            //Må ta new på kundeController. KundeControlleren tar et interface/objekt. Det er den mock-en som gjør at vi kan kalle den med
            //den kundeController vi opprettet her istedenfor repository. KundeController skal ta inn mock sitt objekt. Alt dette var arrange
            var kundeController = new KundeController(mock.Object);
            //Så er det "Act". Her skal vi gjøre selve kallet. Må ha await her fordi dette er et asynkront kall.
            //Dette er selve kjøringen av lagre. Dette er lagre i mock-en, altså erstatte kallet til repository.
            bool resultat = await kundeController.Lagre(innKunde); //her er selve kallet og det fører til et resultat som igjen er true eller false.

            //Assert. Her sammenligner vi. Jeg sjekker om resultatet er true.
            Assert.True(resultat);
            //Så skal testen kjøres. Ta trykker jeg på Run --> Run Unit Tests (funket ikke). Kan da ta View --> Pads --> Unit Tests
            //Så får vi et vindu på siden til høyre.
        }
        public async Task HentEn()
        {
            //Arrange = data som skal testes
            var returKunde = new Kunde
            {
                Id        = 1,
                Fornavn   = "Per",
                Etternavn = "Hansen",
                Adresse   = "Askerveien 82",
                Postnr    = "1370",
                Poststed  = "Asker"
            };
            var mock = new Mock <IKundeRepository>();

            mock.Setup(k => k.HentEn(1)).ReturnsAsync(returKunde); //denne skal returnere den fiktive kunden vi definerte/opprettet over
            var kundeController = new KundeController(mock.Object);
            //Act = det som skal gjøres
            Kunde resultat = await kundeController.HentEn(1); //1 fordi Kunde id er 1

            //Assert = sammenligning
            Assert.Equal <Kunde>(returKunde, resultat);
            //sjekker om Assert.Equal av type Kunde.. (kundeController.HentEn(1), skal returnere en kunde
            //og resultatet vil da bli den kunden som vi mocker i repository (returnKunde), så sammenligner vi resultatet og returKunde
            //vha. Assert sin Equal kundetypen og sammenligner returnKunde og resultat attributt for attributt.
        }
Exemple #6
0
        public async Task HentEnLoggetInnOK()
        {
            // Arrange
            var kunde1 = new Kunde
            {
                Id        = 1,
                Fornavn   = "Per",
                Etternavn = "Hansen",
                Adresse   = "Askerveien 82",
                Postnr    = "1370",
                Poststed  = "Asker"
            };

            mockRep.Setup(k => k.HentEn(It.IsAny <int>())).ReturnsAsync(kunde1);

            var kundeController = new KundeController(mockRep.Object, mockLog.Object);

            mockSession[_loggetInn] = _loggetInn;
            mockHttpContext.Setup(s => s.Session).Returns(mockSession);
            kundeController.ControllerContext.HttpContext = mockHttpContext.Object;

            // Act
            var resultat = await kundeController.HentEn(It.IsAny <int>()) as OkObjectResult;

            // Assert
            Assert.Equal((int)HttpStatusCode.OK, resultat.StatusCode);
            Assert.Equal <Kunde>(kunde1, (Kunde)resultat.Value);
        }
Exemple #7
0
        public Kunden()
        {
            InitializeComponent();

            controller  = new KundeController();
            DataContext = controller.GenerateKundeViewModel();
        }
        public void Endre_funnet_session_ikke_OK()
        {
            // Arrange
            var SessionMock = new TestControllerBuilder();
            var controller  = new KundeController(new KundeBLL(new KundeStub()));

            SessionMock.InitializeController(controller);
            controller.Session["LoggetInn"] = false;

            var innKunde = new Kunde()
            {
                Fornavn   = "Per",
                Etternavn = "Olsen",
                Adresse   = "Osloveien 82",
                Poststed  = poststed,
                Telefon   = "12345678",
                Epost     = "*****@*****.**",
                Aktiv     = true
            };
            // Act
            var result = (RedirectToRouteResult)controller.EndreKunde("*****@*****.**", innKunde);

            // Assert
            Assert.AreEqual(result.RouteName, "");
            Assert.AreEqual(result.RouteValues.Values.First(), "IngenTilgang");
        }
        public void Endre_ikke_funnet_Post()
        {
            // Arrange
            var SessionMock = new TestControllerBuilder();
            var controller  = new KundeController(new KundeBLL(new KundeStub()));

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

            var innKunde = new Kunde()
            {
                Fornavn   = "Per",
                Etternavn = "Olsen",
                Adresse   = "Osloveien 82",
                Poststed  = poststed,
                Telefon   = "12345678",
                Epost     = "*****@*****.**",
                Aktiv     = true
            };

            // Act
            var actionResult = (ViewResult)controller.EndreKunde("", innKunde);

            // Assert
            Assert.AreEqual(actionResult.ViewName, "~/Views/Error/Error.cshtml");
        }
Exemple #10
0
        public async Task EndreLoggetInnFeilModel()
        {
            // Arrange
            // Kunden er indikert feil med tomt fornavn her.
            // det har ikke noe å si, det er introduksjonen med ModelError under som tvinger frem feilen
            // kunnde også her brukt It.IsAny<Kunde>
            var kunde1 = new Kunde
            {
                Id        = 1,
                Fornavn   = "",
                Etternavn = "Hansen",
                Adresse   = "Askerveien 82",
                Postnr    = "1370",
                Poststed  = "Asker"
            };

            mockRep.Setup(k => k.Endre(kunde1)).ReturnsAsync(true);

            var kundeController = new KundeController(mockRep.Object, mockLog.Object);

            kundeController.ModelState.AddModelError("Fornavn", "Feil i inputvalidering på server");

            mockSession[_loggetInn] = _loggetInn;
            mockHttpContext.Setup(s => s.Session).Returns(mockSession);
            kundeController.ControllerContext.HttpContext = mockHttpContext.Object;

            // Act
            var resultat = await kundeController.Endre(kunde1) as BadRequestObjectResult;

            // Assert
            Assert.Equal((int)HttpStatusCode.BadRequest, resultat.StatusCode);
            Assert.Equal("Feil i inputvalidering på server", resultat.Value);
        }
        public void Detaljer()
        {
            // Arrange
            var SessionMock = new TestControllerBuilder();
            var controller  = new KundeController(new KundeBLL(new KundeStub()));

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

            var forventetResultat = new Kunde()
            {
                Fornavn   = "Per",
                Etternavn = "Olsen",
                Adresse   = "Osloveien 82",
                Poststed  = poststed,
                Telefon   = "12345678",
                Epost     = "*****@*****.**",
                Aktiv     = true
            };
            // Act
            var actionResult = (ViewResult)controller.KundeDetaljer("*****@*****.**");
            var resultat     = (Kunde)actionResult.Model;

            // Assert
            Assert.AreEqual(actionResult.ViewName, "");
            Assert.AreEqual(forventetResultat.Fornavn, resultat.Fornavn);
            Assert.AreEqual(forventetResultat.Etternavn, resultat.Etternavn);
            Assert.AreEqual(forventetResultat.Adresse, resultat.Adresse);
            Assert.AreEqual(forventetResultat.Poststed.Postnr, resultat.Poststed.Postnr);
            Assert.AreEqual(forventetResultat.Poststed.Sted, resultat.Poststed.Sted);
            Assert.AreEqual(forventetResultat.Telefon, resultat.Telefon);
            Assert.AreEqual(forventetResultat.Epost, resultat.Epost);
        }
Exemple #12
0
        public void Registrer()
        {
            var controller = new KundeController(new VareBLL(new KundeDALStub()));

            //var actionResult = (ViewResult)controller.Registrer();

            //Assert.AreEqual(actionResult.ViewName, "");
        }
        public async Task HentEnIkkeOK()
        {
            var mock = new Mock <IKundeRepository>();

            mock.Setup(k => k.HentEn(1)).ReturnsAsync(() => null);
            var   kundeController = new KundeController(mock.Object);
            Kunde resultat        = await kundeController.HentEn(1);

            Assert.Null(resultat);
        }
        public async Task SlettOK()
        {
            var mock = new Mock <IKundeRepository>();

            mock.Setup(k => k.Slett(1)).ReturnsAsync(true);
            var  kundeController = new KundeController(mock.Object);
            bool resultat        = await kundeController.Slett(1);

            Assert.True(resultat);
        }
        public async Task SlettIkkeOK() //her er det igjen true eller false. Metoden for true og false er så og si like.
        {
            var mock = new Mock <IKundeRepository>();

            mock.Setup(k => k.Slett(1)).ReturnsAsync(false);
            var  kundeController = new KundeController(mock.Object);
            bool resultat        = await kundeController.Slett(1);

            Assert.False(resultat); //Assert false når vi får false fra repository. Det kan bety at databasen er nede eller lignende.
        }
Exemple #16
0
        public void Endre()
        {
            // Arrange
            var controller = new KundeController(new VareBLL(new KundeDALStub()));

            // Act
            //var actionResult = (ViewResult)controller.Endre(1);

            // Assert
            //Assert.AreEqual(actionResult.ViewName, "");
        }
        public async Task Slett()
        {
            var mock = new Mock <IKundeRepository>();

            //slett skal returnere true eller false. Tar ReturAsync(true) når jeg tar slett(1), når jeg finner en.
            mock.Setup(k => k.Slett(1)).ReturnsAsync(true);
            var  kundeController = new KundeController(mock.Object);
            bool resultat        = await kundeController.Slett(1); //slett returnerer en boolsk variabel

            Assert.True(resultat);                                 //true her fordi den returnerer true.
            //Altså: vi tar metoden i KundeController, Slett(1) og returnerer true
        }
Exemple #18
0
        public void slettKunde()
        {
            var controller = new KundeController(new VareBLL(new KundeDALStub()));

            // Act

            /*var actionResult = (ViewResult)controller.slettKunde(1);
             * var resultat = (Kunde)actionResult.Model;
             *
             * // Assert
             * Assert.AreEqual(actionResult.ViewName, "");*/
        }
        public async Task HentAlleTomListe()
        {
            var kundeListe = new List <Kunde>();

            var mock = new Mock <IKundeRepository>();

            mock.Setup(k => k.HentAlle()).ReturnsAsync(() => null); // merk: parantesene, de må stå på rett plass ellers fås rare feilmeldinger!
            var          kundeController = new KundeController(mock.Object);
            List <Kunde> resultat        = await kundeController.HentAlle();

            Assert.Null(resultat);
        }
Exemple #20
0
        public void Registrer_feil_db()
        {
            var controller = new KundeController(new VareBLL(new KundeDALStub()));

            /*var forventetKunde = new Kunde();
             * forventetKunde.Fornavn = "";
             *
             * // Act
             * var actionResult = (ViewResult)controller.Registrer(forventetKunde);
             *
             * // Assert
             * Assert.AreEqual(actionResult.ViewName, "");*/
        }
Exemple #21
0
        public void LoggUt()
        {
            var kundeController = new KundeController(mockRep.Object, mockLog.Object);

            mockHttpContext.Setup(s => s.Session).Returns(mockSession);
            mockSession[_loggetInn] = _loggetInn;
            kundeController.ControllerContext.HttpContext = mockHttpContext.Object;

            // Act
            kundeController.LoggUt();

            // Assert
            Assert.Equal(_ikkeLoggetInn, mockSession[_loggetInn]);
        }
Exemple #22
0
        public void Registrer_feil_modell()
        {
            var controller = new KundeController(new VareBLL(new KundeDALStub()));

            /*var forventetKunde = new Kunde();
             * controller.ViewData.ModelState.AddModelError("Fornavn", "Ikke oppgitt fornavn");
             *
             * // Act
             * var actionResult = (ViewResult)controller.Registrer(forventetKunde);
             *
             * // Assert
             * Assert.IsTrue(actionResult.ViewData.ModelState.Count == 1);
             * Assert.AreEqual(actionResult.ViewName, "");*/
        }
Exemple #23
0
        public void Endre_Ikke_Funnet_Ved_View()
        {
            // Arrange
            var controller = new KundeController(new VareBLL(new KundeDALStub()));

            // Act

            /*var actionResult = (ViewResult)controller.Endre(0);
             * var kundeResultat = (Kunde)actionResult.Model;
             *
             * // Assert
             * Assert.AreEqual(actionResult.ViewName, "");
             * Assert.AreEqual(kundeResultat.ID, 0);*/
        }
        [Fact]                       //alle enhetstester har denne dekoratøren. Fast: et faktum, det er det vi definerer i testen
        public async Task HentAlle() //vi kjører async, derfor har vi ikke void her, async Task er det samme som void
        {
            //Asssert
            var kunde1 = new Kunde
            {
                Id        = 1,
                Fornavn   = "Per",
                Etternavn = "Hansen",
                Adresse   = "Askerveien 82",
                Postnr    = "1370",
                Poststed  = "Asker"
            };
            var kunde2 = new Kunde
            {
                Id        = 2,
                Fornavn   = "Ole",
                Etternavn = "Olsen",
                Adresse   = "Osloveien 82",
                Postnr    = "0270",
                Poststed  = "Oslo"
            };
            var kunde3 = new Kunde
            {
                Id        = 1,
                Fornavn   = "Finn",
                Etternavn = "Finnsen",
                Adresse   = "Bergensveien 82",
                Postnr    = "5000",
                Poststed  = "Bergen"
            };

            //oppretter en List av Kunde, kundeListe og legger til de tre kundene.
            var kundeListe = new List <Kunde>();

            kundeListe.Add(kunde1);
            kundeListe.Add(kunde2);
            kundeListe.Add(kunde3);

            //lager mock av IKundeRepository
            var mock = new Mock <IKundeRepository>();

            //den skal returnere listen med de kundenee vi opprettet når den kalles.
            mock.Setup(k => k.HentAlle()).ReturnsAsync(kundeListe);          // merk: parantesene, de må stå på rett plass ellers fås rare feilmeldinger!
            var          kundeController = new KundeController(mock.Object); //tar new KundeController
            List <Kunde> resultat        = await kundeController.HentAlle(); //Dette er Action

            Assert.Equal <List <Kunde> >(kundeListe, resultat);              //Dette er Assert, sammenligningen?
            //Equal kan ta en type og her er det List av Kunde. resultat er en List av Kunde og kundeListe er også en List av Kunde.
            //Så disse to sammenlignes attributt for attrubitt, ved hjelp av Assert.Equal og typen, at kundeListe og resultat er av samme type.
        }
        public void Liste()
        {
            // Arrange
            var controller = new KundeController(new ProsjektOppgave1.BLL.KundeBLL(new KundeRepositoryStub()));
            // uten test : var controller = new PersonController();
            var forventetResultat = new List <ProsjektOppgave1.Models.KundeBLL>();
            var kunde             = new ProsjektOppgave1.Models.KundeBLL()
            {
                ID        = 1,
                Fornavn   = "Per",
                Etternavn = "Olsen",
                Adresse   = "Osloveien 82",
                Passord   = "1234",
            };

            forventetResultat.Add(kunde);
            forventetResultat.Add(kunde);
            forventetResultat.Add(kunde);

            // Act
            var actionResult = (ViewResult)controller.Liste();
            var resultat     = (List <ProsjektOppgave1.Models.KundeBLL>)actionResult.Model;

            // Assert

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

            for (var i = 0; i < resultat.Count; i++)
            {
                Assert.AreEqual(forventetResultat[i].ID, resultat[i].ID);
                Assert.AreEqual(forventetResultat[i].Fornavn, resultat[i].Fornavn);
                Assert.AreEqual(forventetResultat[i].Etternavn, resultat[i].Etternavn);
                Assert.AreEqual(forventetResultat[i].Adresse, resultat[i].Adresse);
                Assert.AreEqual(forventetResultat[i].Passord, resultat[i].Passord);
            }

            /*
             * Det som kommer under er bare for å vise hva Assert.IsTrue kan gjøre (dvs alt!)
             * string forventet1 = "Her er en mulighet";
             * string forventet2 = "Her er en mulighet til";
             * string virkelig = "Her er en mulighet";
             * if (virkelig == forventet1 || virkelig==forventet2)
             *  test = true;
             * else
             *  test = false;
             * Assert.IsTrue(test);
             *
             */
        }
        public void Endre()
        {
            // Arrange
            var SessionMock = new TestControllerBuilder();
            var controller  = new KundeController(new KundeBLL(new KundeStub()));

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

            // Act
            var actionResult = (ViewResult)controller.EndreKunde("");

            // Assert
            Assert.AreEqual(actionResult.ViewName, "");
        }
        public void Endre_session_ikke_OK()
        {
            // Arrange
            var SessionMock = new TestControllerBuilder();
            var controller  = new KundeController(new KundeBLL(new KundeStub()));

            SessionMock.InitializeController(controller);
            controller.Session["LoggetInn"] = false;

            // Act
            var result = (RedirectToRouteResult)controller.EndreKunde("");

            // Assert
            Assert.AreEqual(result.RouteName, "");
            Assert.AreEqual(result.RouteValues.Values.First(), "IngenTilgang");
        }
Exemple #28
0
        public void Endre_feil_validering_Post()
        {
            // Arrange
            var controller = new KundeController(new VareBLL(new KundeDALStub()));

            /*var innKunde = new Kunde();
             * controller.ViewData.ModelState.AddModelError("feil", "ID = 0");
             *
             * // Act
             * var actionResult = (ViewResult)controller.Endre(0, innKunde);
             *
             * // Assert
             * Assert.IsTrue(actionResult.ViewData.ModelState.Count == 1);
             * Assert.AreEqual(actionResult.ViewData.ModelState["feil"].Errors[0].ErrorMessage, "ID = 0");
             * Assert.AreEqual(actionResult.ViewName, "");*/
        }
Exemple #29
0
        public async Task LoggInnFeilPassordEllerBruker()
        {
            mockRep.Setup(k => k.LoggInn(It.IsAny <Bruker>())).ReturnsAsync(false);

            var kundeController = new KundeController(mockRep.Object, mockLog.Object);

            mockSession[_loggetInn] = _ikkeLoggetInn;
            mockHttpContext.Setup(s => s.Session).Returns(mockSession);
            kundeController.ControllerContext.HttpContext = mockHttpContext.Object;

            // Act
            var resultat = await kundeController.LoggInn(It.IsAny <Bruker>()) as OkObjectResult;

            // Assert
            Assert.Equal((int)HttpStatusCode.OK, resultat.StatusCode);
            Assert.False((bool)resultat.Value);
        }
Exemple #30
0
        public async Task EndreIkkeLoggetInn()
        {
            mockRep.Setup(k => k.Endre(It.IsAny <Kunde>())).ReturnsAsync(true);

            var kundeController = new KundeController(mockRep.Object, mockLog.Object);

            mockSession[_loggetInn] = _ikkeLoggetInn;
            mockHttpContext.Setup(s => s.Session).Returns(mockSession);
            kundeController.ControllerContext.HttpContext = mockHttpContext.Object;

            // Act
            var resultat = await kundeController.Endre(It.IsAny <Kunde>()) as UnauthorizedObjectResult;

            // Assert
            Assert.Equal((int)HttpStatusCode.Unauthorized, resultat.StatusCode);
            Assert.Equal("Ikke logget inn", resultat.Value);
        }