public void Post_Legg_til_prosjekt_Bad_Request() { var commandBus = new Mock<IProsjektLogikk>(); commandBus.Setup(c => c.RegistrerProsjekt(It.IsAny<Prosjekt>(), It.IsAny<string>())).Returns(true); // Mapper.CreateMap<CategoryFormModel, CreateOrUpdateCategoryCommand>(); var httpConfiguration = new HttpConfiguration(); WebApiConfig.Register(httpConfiguration); var httpRouteData = new HttpRouteData(httpConfiguration.Routes["DefaultApi"], new HttpRouteValueDictionary { { "controller", "ProsjektApi" } }); var controller = new ProsjektApiController(commandBus.Object) { Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/ProsjektApi/") { Properties = { { HttpPropertyKeys.HttpConfigurationKey, httpConfiguration }, { HttpPropertyKeys.HttpRouteDataKey, httpRouteData } } } }; // Act var pros = new Prosjekt(); pros.Arbeidsplass = ""; // The ASP.NET pipeline doesn't run, so validation don't run. controller.ModelState.AddModelError("Arbeidsplass", "mock error message"); var response = controller.Post(pros); // Assert Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public void Post_Registrer_Prosjekt_Ok() { Prosjekt nyttProsjekt = new Prosjekt() { Arbeidsplass = "TestShop" }; var commandBus = new Mock<IProsjektLogikk>(); commandBus.Setup(c => c.RegistrerProsjekt(It.IsAny<Prosjekt>(), It.IsAny<string>())).Returns(true); // Mapper.CreateMap<CategoryFormModel, CreateOrUpdateCategoryCommand>(); var httpConfiguration = new HttpConfiguration(); WebApiConfig.Register(httpConfiguration); var httpRouteData = new HttpRouteData(httpConfiguration.Routes["DefaultApi"], new HttpRouteValueDictionary { { "controller", "ProsjektApi" } }); var controller = new ProsjektApiController(commandBus.Object) { Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/ProsjektApi/") { Properties = { { HttpPropertyKeys.HttpConfigurationKey, httpConfiguration }, { HttpPropertyKeys.HttpRouteDataKey, httpRouteData } } } }; // Act var response = controller.Post(nyttProsjekt); // Assert Assert.AreEqual(HttpStatusCode.Created, response.StatusCode); // var newCategory = JsonConvert.DeserializeObject<CategoryModel>(response.Content.ReadAsStringAsync().Result); Assert.AreEqual(string.Format("http://localhost/api/ProsjektApi/{0}", nyttProsjekt.ProsjektId), response.Headers.Location.ToString()); }
public HttpResponseMessage Post(Prosjekt prosjektInn) { string userName = User.Identity.Name; if (ModelState.IsValid) { bool ok = _ProsjektBLL.RegistrerProsjekt(prosjektInn, userName); if (ok) { var response = Request.CreateResponse(HttpStatusCode.Created, prosjektInn); string uri = Url.Link("DefaultApi", new { id = prosjektInn.ProsjektId }); response.Headers.Location = new Uri(uri); return response; } return new HttpResponseMessage() { StatusCode = HttpStatusCode.NotFound, Content = new StringContent("Kunne ikke sette inn i databasen") }; } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); }
public bool RegistrerProsjekt(Prosjekt innProsjekt, string brukernavn) { Dbkontekst dbs = new Dbkontekst(); int userId = BrukerId(brukernavn); if (innProsjekt.Arbeidsplass == "" || userId == 0) { return false; } var nyProsjekt = new Prosjekt() { Arbeidsplass = innProsjekt.Arbeidsplass, EierId = userId }; var nyProsjektDeltakelse = new Prosjektdeltakelse() { BrukerId = userId, Medlemsdato = DateTime.Now, ProsjektId = nyProsjekt.ProsjektId }; using (var db = new Dbkontekst()) { try { db.Prosjekter.Add(nyProsjekt); db.Prosjektdeltakelser.Add(nyProsjektDeltakelse); db.SaveChanges(); return true; } catch (Exception feil) { return false; } } }
public bool RegistrerProsjekt(Prosjekt innProsjekt, string brukernavn) { return _repository.RegistrerProsjekt(innProsjekt, brukernavn); }
public bool EndreProsjekt(Prosjekt EndreProsjekt, string brukernavn) { return _repository.EndreProsjekt(EndreProsjekt, brukernavn); }
public bool EndreProsjekt(Prosjekt EndreProsjekt, string brukernavn) { Dbkontekst db = new Dbkontekst(); if (!ErEier(brukernavn, EndreProsjekt.ProsjektId)) { return false; } try { var NyEndreProsjekt = db.Prosjekter.FirstOrDefault(p => p.ProsjektId == EndreProsjekt.ProsjektId); NyEndreProsjekt.Arbeidsplass = EndreProsjekt.Arbeidsplass; db.SaveChanges(); return true; } catch (Exception feil) { return false; } }
public void RegistrerProsjekt_UgyldigBruker_False() { Prosjekt p = new Prosjekt(); bool testProduct = this.mockProductRepository.RegistrerProsjekt(p, "*****@*****.**"); Assert.IsFalse(testProduct); }
public void RegistrerProsjekt_Tom_False() { Prosjekt p = new Prosjekt(); p.Arbeidsplass = ""; bool testProduct = this.mockProductRepository.RegistrerProsjekt(p, "*****@*****.**"); Assert.IsFalse(testProduct); }
public ProsjektTest(){ // Lager mocks som vi kan gjøre spørringer mot var req = new List<Prosjektrequest>() { new Prosjektrequest() { ProsjektId = 1, BrukerIdFra = 1, BrukerIdTil = 2, MeldingId = 1, Sendt = Convert.ToDateTime("22.12.2012 16.43") }, new Prosjektrequest() { ProsjektId = 2, BrukerIdFra = 2, BrukerIdTil = 1, MeldingId = 1, Sendt = Convert.ToDateTime("22.12.2012 16.43") } }; List<dbBruker> bruker = new List<dbBruker> { new dbBruker { BrukerId = 1, Email = "*****@*****.**" }, new dbBruker { BrukerId = 2, Email = "*****@*****.**" }, new dbBruker { BrukerId = 3, Email = "*****@*****.**" } }; List<Prosjekt> prosjekter = new List<Prosjekt> { new Prosjekt() { ProsjektId=1,EierId=1 }, new Prosjekt() { ProsjektId=2,EierId=2 } }; List<Prosjektdeltakelse> deltakelser = new List<Prosjektdeltakelse> { new Prosjektdeltakelse { ProsjektDeltakerId=1, BrukerId = 1, ProsjektId = 1, Admin = false, Medlemsdato = Convert.ToDateTime("22.12.2012 16.43") }, new Prosjektdeltakelse { ProsjektDeltakerId=2, BrukerId = 2, ProsjektId = 1, Admin = true, Medlemsdato = Convert.ToDateTime("22.12.2012 16.43") }, new Prosjektdeltakelse { ProsjektDeltakerId=3, BrukerId = 3, ProsjektId = 1, Admin = false, Medlemsdato = Convert.ToDateTime("22.12.2012 16.43") } }; var reqMelding = new List<ProsjektrequestMelding>() { new ProsjektrequestMelding() { ProsjektId = 1, FraBruker = "*****@*****.**", TilBruker = "*****@*****.**", Melding = "", Prosjektnavn = "Bunnpris", MeldingId = 1, Tid = Convert.ToDateTime("22.12.2012 16.43") } }; Mock<InterfaceDbTProsjekt> mockProductRepository = new Mock<InterfaceDbTProsjekt>(); bool ok = false; mockProductRepository.Setup(mr => mr.ErEier(It.IsAny<string>(), It.IsAny<int>())) .Returns( (string u, int i) => { var bId = this.mockProductRepository.BrukerId(u); var TestOk = (from x in prosjekter where x.EierId == bId && x.ProsjektId == i select x.EierId).SingleOrDefault(); if (TestOk != 0) { ok = true; return ok; } return ok; }); mockProductRepository.Setup(mr => mr.ErAdmin(It.IsAny<string>(), It.IsAny<int>())) .Returns( (string u, int i) => { var okAdmin = false; var bId = this.mockProductRepository.BrukerId(u); var TestOk = (from x in deltakelser where x.ProsjektId == i && x.BrukerId == bId select x.Admin).SingleOrDefault(); if (TestOk != false) { okAdmin = true; return okAdmin; } return okAdmin; }); mockProductRepository.Setup(mr => mr.BrukerId(It.IsAny<string>())) .Returns( (string u) => { int userId = (from x in bruker where x.Email == u select x.BrukerId).SingleOrDefault(); return userId; }); mockProductRepository.Setup(mr => mr.BrukerNavn(It.IsAny<int>())) .Returns( (int i) => { var brukernavn = (from x in bruker where x.BrukerId == i select x.Email).SingleOrDefault(); return brukernavn; }); mockProductRepository.Setup(mr => mr.SjekkTilgangProsjekt(It.IsAny<string>())) .Returns( (string u) => { int BrukerId = this.mockProductRepository.BrukerId(u); List<ProsjektVis> pros = (from p in deltakelser from s in prosjekter where p.BrukerId == BrukerId && p.ProsjektId == s.ProsjektId select new ProsjektVis() { Id = p.ProsjektId, }).ToList(); return pros; }); mockProductRepository.Setup(mr => mr.VisRequesterForProsjekt(It.IsAny<int>(), It.IsAny<string>())) .Returns( (int i, string u) => { var tilganger = this.mockProductRepository.SjekkTilgangProsjekt(u); var eventer = (from k in req from s in tilganger where k.ProsjektId == i && k.ProsjektId == s.Id select new ProsjektrequestMelding { MeldingId = k.MeldingId, TilBruker = this.mockProductRepository.BrukerNavn(k.BrukerIdTil), Tid = k.Sendt, ProsjektId = k.ProsjektId }).ToList(); return eventer; }); mockProductRepository.Setup(mr => mr.VisRequester(It.IsAny<string>())) .Returns( (string u) => { int id = this.mockProductRepository.BrukerId(u); List<ProsjektrequestMelding> pros = (from p in req from b in bruker from s in prosjekter where p.BrukerIdTil == id && p.BrukerIdFra == b.BrukerId && p.ProsjektId == s.ProsjektId select new ProsjektrequestMelding() { ProsjektId = p.ProsjektId, FraBruker = b.Email, Melding = " har invitert deg til å bli medlem av: ", Tid = p.Sendt, TilBruker = u }).ToList(); return pros; }); mockProductRepository.Setup(mr => mr.HentProsjekter(It.IsAny<string>())) .Returns( (string u) => { int id = this.mockProductRepository.BrukerId(u); List<ProsjektVis> pros = (from p in deltakelser from s in prosjekter where p.BrukerId == id && p.ProsjektId == s.ProsjektId select new ProsjektVis() { Id = p.ProsjektId, Arbeidsplass = s.Arbeidsplass }).ToList(); return pros; }); mockProductRepository.Setup(mr => mr.SlettBrukerFraProsjekt(It.IsAny<string>(), It.IsAny<int>())) .Returns( (string u, int i) => { var SlettProsjekt = deltakelser.FirstOrDefault(p => p.ProsjektDeltakerId == i); var sjekkEier = prosjekter.FirstOrDefault(p => p.EierId == SlettProsjekt.BrukerId && p.ProsjektId == SlettProsjekt.ProsjektId); if (sjekkEier != null) { return false; // kan ikke slette eier fra prosjekt } if (this.mockProductRepository.ErAdmin(u, SlettProsjekt.ProsjektId) == true || this.mockProductRepository.ErEier(u, SlettProsjekt.ProsjektId) == true) { try { deltakelser.Remove(SlettProsjekt); return true; } catch (Exception feil) { return false; } } return false; }); mockProductRepository.Setup(mr => mr.RegistrerProsjekt(It.IsAny<Prosjekt>(), It.IsAny<string>())) .Returns( (Prosjekt p, string u) => { int userId = this.mockProductRepository.BrukerId(u); if (p.Arbeidsplass == "" || userId == 0) { return false; } var nyProsjekt = new Prosjekt() { Arbeidsplass = p.Arbeidsplass, EierId = userId }; var nyProsjektDeltakelse = new Prosjektdeltakelse() { BrukerId = userId, Medlemsdato = DateTime.Now, ProsjektId = nyProsjekt.ProsjektId }; try { prosjekter.Add(nyProsjekt); deltakelser.Add(nyProsjektDeltakelse); return true; } catch (Exception feil) { return false; } }); mockProductRepository.Setup(mr => mr.LeggTilBrukerRequest(It.IsAny<ProsjektrequestSkjema>(), It.IsAny<string>())) .Returns( (ProsjektrequestSkjema p, string u) => { int bId = this.mockProductRepository.BrukerId(u); int bIdTil = this.mockProductRepository.BrukerId(p.TilBruker); int pId = p.ProsjektId; if (!this.mockProductRepository.ErAdmin(u, p.ProsjektId) && !this.mockProductRepository.ErEier(u, p.ProsjektId)) { return false; } if (bIdTil == 0) { return false; } var nyRequest = new Prosjektrequest() { BrukerIdFra = bId, BrukerIdTil = bIdTil, ProsjektId = pId, Akseptert = false, Sendt = DateTime.Now }; try { req.Add(nyRequest); return true; } catch (Exception feil) { return false; } }); mockProductRepository.Setup(mr => mr.RegistrerProsjektdeltakelse(It.IsAny<ProsjektrequestMelding>(), It.IsAny<string>())) .Returns( (ProsjektrequestMelding p, string u) => { int id = this.mockProductRepository.BrukerId(u); IEnumerable<ProsjektDeltakelseOverforing> prosjektReq = from prosj in req from b in bruker from s in prosjekter where prosj.BrukerIdTil == id && prosj.BrukerIdFra == b.BrukerId && prosj.ProsjektId == p.ProsjektId select new ProsjektDeltakelseOverforing() { BrukerId = prosj.BrukerIdTil, ProsjektId = prosj.ProsjektId }; var prosjektD = new Prosjektdeltakelse(); foreach (var a in prosjektReq) { prosjektD.BrukerId = a.BrukerId; prosjektD.ProsjektId = a.ProsjektId; prosjektD.Medlemsdato = DateTime.Now; } try { deltakelser.Add(prosjektD); this.mockProductRepository.SlettRequest(prosjektD.ProsjektId, u); return true; } catch (Exception feil) { return false; } }); /* */ this.mockProductRepository = mockProductRepository.Object; }
public HttpResponseMessage Put(Prosjekt EndreProsjekt) { string userName = User.Identity.Name; if (ModelState.IsValid) { bool ok = _ProsjektBLL.EndreProsjekt(EndreProsjekt, userName); if (ok) { return new HttpResponseMessage() { StatusCode = HttpStatusCode.OK, }; } return new HttpResponseMessage() { StatusCode = HttpStatusCode.NotFound, Content = new StringContent("Kunne ikke sette inn databasen") }; } return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState); }
public void Post_Legg_til_prosjekt_NOT_FOUND() { var pros = new Prosjekt(); pros.Arbeidsplass = ""; var commandBus = new Mock<IProsjektLogikk>(); commandBus.Setup(c => c.RegistrerProsjekt(pros, "test")).Returns(false); // Mapper.CreateMap<CategoryFormModel, CreateOrUpdateCategoryCommand>(); var httpConfiguration = new HttpConfiguration(); WebApiConfig.Register(httpConfiguration); var httpRouteData = new HttpRouteData(httpConfiguration.Routes["DefaultApi"], new HttpRouteValueDictionary { { "controller", "ProsjektApi" } }); var controller = new ProsjektApiController(commandBus.Object) { Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/ProsjektApi/") { Properties = { { HttpPropertyKeys.HttpConfigurationKey, httpConfiguration }, { HttpPropertyKeys.HttpRouteDataKey, httpRouteData } } } }; // Act var response = controller.Post(pros); // Assert Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode); }
public void PUT_Endre_Prosjekt_Bad_request() { var commandBus = new Mock<IProsjektLogikk>(); commandBus.Setup(c => c.EndreProsjekt(It.IsAny<Prosjekt>(), It.IsAny<string>())).Returns(true); // Mapper.CreateMap<CategoryFormModel, CreateOrUpdateCategoryCommand>(); var httpConfiguration = new HttpConfiguration(); WebApiConfig.Register(httpConfiguration); var httpRouteData = new HttpRouteData(httpConfiguration.Routes["DefaultApi"], new HttpRouteValueDictionary { { "controller", "ProsjektApi" } }); var controller = new ProsjektApiController(commandBus.Object) { Request = new HttpRequestMessage(HttpMethod.Put, "http://localhost/api/ProsjektApi/") { Properties = { { HttpPropertyKeys.HttpConfigurationKey, httpConfiguration }, { HttpPropertyKeys.HttpRouteDataKey, httpRouteData } } } }; Prosjekt eProsj = new Prosjekt(); eProsj.Arbeidsplass = ""; // The ASP.NET pipeline doesn't run, so validation don't run. controller.ModelState.AddModelError("start", "mock error message"); var response = controller.Put(eProsj); // Assert commandBus.Verify(e => e.EndreProsjekt(eProsj, "brukernavn"), Times.Never); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); // Act }