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); }
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); }
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. }
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); }
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"); }
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); }
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. }
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 }
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); }
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, "");*/ }
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]); }
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, "");*/ }
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"); }
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, "");*/ }
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); }
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); }