示例#1
0
        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);
        }
示例#2
0
        public void RegistrerProsjekt_UgyldigBruker_False()
        {
            Prosjekt p           = new Prosjekt();
            bool     testProduct = this.mockProductRepository.RegistrerProsjekt(p, "*****@*****.**");

            Assert.IsFalse(testProduct);
        }
示例#3
0
        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);
        }
示例#4
0
        public bool taLedigVakt(int id, string brukernavn)
        {
            var dbt = new DbTransaksjonerProsjekt();
            var db  = new Dbkontekst();

            try
            {
                // finn personen i databasen
                Vakt taVakt = db.Vakter.FirstOrDefault(p => p.VaktId == id);

                VaktRequest nyRequest = new VaktRequest();
                // oppdater vakt fra databasen

                var      pId      = taVakt.ProsjektId;
                Prosjekt prosjekt = db.Prosjekter.FirstOrDefault(p => p.ProsjektId == pId);

                nyRequest.VaktId      = taVakt.VaktId;
                nyRequest.Sendt       = DateTime.Now;
                nyRequest.BrukerIdFra = dbt.BrukerId(brukernavn);
                nyRequest.BrukerIdTil = prosjekt.EierId;
                nyRequest.ProsjektId  = prosjekt.ProsjektId;
                db.Vaktrequester.Add(nyRequest);

                db.SaveChanges();
                return(true);
            }
            catch (Exception feil)
            {
                return(false);
            }
        }
示例#5
0
        public void PUT_Endre_Prosjekt_NOT_found()
        {
            var      commandBus = new Mock <IProsjektLogikk>();
            Prosjekt test       = null;

            commandBus.Setup(c => c.EndreProsjekt(test, It.IsAny <string>())).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.Put, "http://localhost/api/ProsjektApi/")
                {
                    Properties =
                    {
                        { HttpPropertyKeys.HttpConfigurationKey, httpConfiguration },
                        { HttpPropertyKeys.HttpRouteDataKey,     httpRouteData     }
                    }
                }
            };
            // The ASP.NET pipeline doesn't run, so validation don't run.

            var response = controller.Put(test);

            // Assert
            commandBus.Verify(e => e.EndreProsjekt(test, "brukernavn"), Times.Never);
            Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
            // Act
        }
示例#6
0
        public void RegistrerProsjekt_Tom_False()
        {
            Prosjekt p = new Prosjekt();

            p.Arbeidsplass = "";
            bool testProduct = this.mockProductRepository.RegistrerProsjekt(p, "*****@*****.**");

            Assert.IsFalse(testProduct);
        }
示例#7
0
        public bool Oppdater(Prosjekt prosjekt)
        {
            Prosjekt p = Get(prosjekt.ProsjektNr);

            if (p != null)
            {
                p.Intern       = prosjekt.Intern;
                p.ProsjektNavn = prosjekt.ProsjektNavn;
                p.Brukere      = prosjekt.Brukere;

                return(true);
            }

            return(false);
        }
示例#8
0
        public bool Slett(Prosjekt prosjekt)
        {
            bool suksess = _dataSource.Prosjekter.Remove(prosjekt);

            if (suksess)
            {
                var prosjektBrukere = _dataSource.Brukere.Where(bruker => (bruker.Prosjekter != null && bruker.Prosjekter.Contains(prosjekt)));

                foreach (var bruker in prosjektBrukere)
                {
                    bruker.Prosjekter.Remove(prosjekt);
                }
            }

            return(suksess);
        }
示例#9
0
        public ActionResult LeggTilProsjekt(ProsjekterModel Model)
        {
            Prosjekt NyttProsjekt = new Prosjekt();

            NyttProsjekt.Kunde       = Model.Kunde.Trim();
            NyttProsjekt.Navn        = Model.Prosjektnavn.Trim();
            NyttProsjekt.Beskrivelse = Model.Beskrivelse.Trim();
            NyttProsjekt.Fra         = short.Parse(DateTime.Now.Year.ToString());
            NyttProsjekt.Til         = short.Parse(DateTime.Now.Year.ToString());
            NyttProsjekt.Avsluttet   = false;
            db.Prosjekt.Add(NyttProsjekt);

            db.SaveChanges();

            return(RedirectToAction("Index", "Prosjekter"));
        }
示例#10
0
        public HttpResponseMessage Postprosjekt(Prosjekt prosjekt)
        {
            if (prosjekt != null)
            {
                bool suksess = _prosjektRepository.LeggTil(prosjekt);

                if (suksess)
                {
                    HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, prosjekt);
                    response.Headers.Location = new Uri(Url.Link("GetProsjektMedId", new { id = prosjekt.ProsjektNr }));
                    return(response);
                }
            }

            return(Request.CreateResponse(HttpStatusCode.BadRequest));
        }
示例#11
0
        public void PutProsjekt_naarProsjektMedIdFinnes_skalReturnere_HttpStatusOk()
        {
            // Arrange
            var prosjekt = new Prosjekt
            {
                Intern       = true,
                ProsjektNavn = "ProsjektNavn",
                ProsjektNr   = 1
            };

            // Act
            using (var response = SendHttpRequest(HttpMethod.Put, "api/prosjekter/" + prosjekt.ProsjektNr, prosjekt))
            {
                // Assert
                response.StatusCode.ShouldEqual(HttpStatusCode.OK);
            }
        }
示例#12
0
        public HttpResponseMessage PutBruker(int id, Prosjekt prosjekt)
        {
            if (id == prosjekt.ProsjektNr)
            {
                bool suksess = _prosjektRepository.Oppdater(prosjekt);

                if (suksess)
                {
                    return(Request.CreateResponse(HttpStatusCode.OK));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound));
                }
            }

            return(Request.CreateResponse(HttpStatusCode.BadRequest));
        }
示例#13
0
        public ActionResult SlettProsjekt(SlettProsjektModel Model)
        {
            var Item = from a in db.Prosjekt
                       where a.ProsjektId.Equals(Model.Id)
                       select a;

            Prosjekt ValgtProsjekt = Item.FirstOrDefault();
            ICollection <TekniskProfil> Profiler  = ValgtProsjekt.TekniskProfil;
            ICollection <Medlem>        Medlemmer = ValgtProsjekt.Medlem;

            db.Medlem.RemoveRange(Medlemmer);
            db.TekniskProfil.RemoveRange(Profiler);

            db.Prosjekt.Remove(ValgtProsjekt);
            db.SaveChanges();

            return(RedirectToAction("Index", "Prosjekter"));
        }
示例#14
0
        public ActionResult LeggTilProfil(LeggTilTekniskProfilModel Model)
        {
            var Data = from a in db.Prosjekt
                       where a.ProsjektId.Equals(Model.ProsjektId)
                       select a;

            Prosjekt Pro = Data.FirstOrDefault();

            TekniskProfil NyTekniskProfil = new TekniskProfil();

            NyTekniskProfil.Navn      = Model.ProfilNavn;
            NyTekniskProfil.Elementer = "";

            Pro.TekniskProfil.Add(NyTekniskProfil);

            db.SaveChanges();

            return(RedirectToAction("Index", "TekniskeProfiler"));
        }
示例#15
0
        public void PostProsjekt_naarProsjektHarRikitigFormat_skalReturnere_HttpStatusCreatedOgOpprettetProsjektr()
        {
            // Arrange
            var prosjekt = new Prosjekt
            {
                Intern       = true,
                ProsjektNavn = "ProsjektNavn5",
                ProsjektNr   = 5
            };

            // Act
            using (var response = SendHttpRequest(HttpMethod.Post, "api/prosjekter", prosjekt))
            {
                // Assert
                response.StatusCode.ShouldEqual(HttpStatusCode.Created);

                var opprettetProsjekt = GetContent <Prosjekt>(response);
                opprettetProsjekt.ShouldEqual(prosjekt);
            }
        }
示例#16
0
        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);
            }
        }
示例#17
0
        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));
        }
示例#18
0
        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));
        }
示例#19
0
        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);
                }
            }
        }
示例#20
0
        public void PUT_Endre_Prosjekt_Ok()
        {
            Prosjekt vakter = new Prosjekt()
            {
                Arbeidsplass = "test",
                EierId       = 1
            };
            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     }
                    }
                }
            };
            // Act
            var response = controller.Put(vakter);

            // Assert
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            // var newCategory = JsonConvert.DeserializeObject<CategoryModel>(response.Content.ReadAsStringAsync().Result);
        }
示例#21
0
        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
        }
示例#22
0
        public bool LeggTil(Prosjekt prosjekt)
        {
            _dataSource.Prosjekter.Add(prosjekt);

            return(true);
        }
示例#23
0
 public bool RegistrerProsjekt(Prosjekt innProsjekt, string brukernavn)
 {
     return(_repository.RegistrerProsjekt(innProsjekt, brukernavn));
 }
示例#24
0
 public bool EndreProsjekt(Prosjekt EndreProsjekt, string brukernavn)
 {
     return(_repository.EndreProsjekt(EndreProsjekt, brukernavn));
 }
示例#25
0
        private Data()
        {
            var bruker1 = new Bruker
            {
                AnsattNummer = 1,
                BrukerId     = "bruker1",
                EpostAdr     = "*****@*****.**",
                FulltNavn    = "Bruker1",
                KontoNummer  = 123456789L
            };

            var bruker2 = new Bruker
            {
                AnsattNummer = 2,
                BrukerId     = "bruker2",
                EpostAdr     = "*****@*****.**",
                FulltNavn    = "Bruker2",
                KontoNummer  = 234567890L
            };

            var bruker3 = new Bruker
            {
                AnsattNummer = 3,
                BrukerId     = "bruker3",
                EpostAdr     = "*****@*****.**",
                FulltNavn    = "Bruker3",
                KontoNummer  = 345678901L
            };

            var prosjekt1 = new Prosjekt {
                Intern = true, ProsjektNr = 1, ProsjektNavn = "Intern Prosjekt 1"
            };
            var prosjekt2 = new Prosjekt {
                Intern = false, ProsjektNr = 2, ProsjektNavn = "Ekstern Prosjekt 1"
            };
            var prosjekt3 = new Prosjekt {
                Intern = false, ProsjektNr = 3, ProsjektNavn = "Ekstern Prosjekt 2"
            };

            bruker1.Prosjekter = new Collection <Prosjekt> {
                prosjekt1, prosjekt2
            };
            bruker2.Prosjekter = new Collection <Prosjekt> {
                prosjekt2
            };
            bruker3.Prosjekter = new Collection <Prosjekt>();

            prosjekt1.Brukere = new Collection <Bruker> {
                bruker1
            };
            prosjekt2.Brukere = new Collection <Bruker> {
                bruker1, bruker2
            };
            prosjekt3.Brukere = new Collection <Bruker>();

            _brukere = new Collection <Bruker> {
                bruker1, bruker2, bruker3
            };
            _prosjekter = new Collection <Prosjekt> {
                prosjekt1, prosjekt2, prosjekt3
            };
        }
示例#26
0
        public VaktTest()
        {
            // Lager mocks som vi kan gjøre spørringer mot

            List <Vaktkalender> vakter = new List <Vaktkalender>
            {
                // new Vaktkalender {ProsjektId = 1, start = Convert.ToDateTime("22.12.2012 16.43"),end =  Convert.ToDateTime("22.12.2012 16.43"),title = "Dagvakt",Beskrivelse = "Opplæring"},
                // new Vaktkalender {ProsjektId = 2, start = Convert.ToDateTime("22.12.2012 16.43"),end =  Convert.ToDateTime("22.12.2012 16.43"),title = "Dagvakt",Beskrivelse = "Opplæring" },
                //new Vaktkalender {ProsjektId = 3, Brukernavn = "", start = Convert.ToDateTime("22.12.2012 16.43"),end =  Convert.ToDateTime("22.12.2012 16.43"),title = "Dagvakt",Beskrivelse = "Opplæring"}
            };
            List <VaktRequest> vaktReq = new List <VaktRequest>
            {
                new VaktRequest
                {
                    BrukerIdTil = 1,
                    BrukerIdFra = 2,
                    MeldingId   = 1,
                    VaktId      = 1,
                    ProsjektId  = 1,
                }
            };

            List <Vakt> vakterDB = new List <Vakt>
            {
                new Vakt {
                    VaktId = 1, ProsjektId = 1, start = Convert.ToDateTime("22.12.2012 16.43"), end = Convert.ToDateTime("22.12.2012 16.43"), title = "Dagvakt", Beskrivelse = "Opplæring"
                },
                new Vakt {
                    ProsjektId = 2, start = Convert.ToDateTime("22.12.2012 16.43"), end = Convert.ToDateTime("22.12.2012 16.43"), title = "Dagvakt", Beskrivelse = "Opplæring"
                },
                new Vakt {
                    ProsjektId = 3, BrukerId = 1, start = Convert.ToDateTime("22.12.2012 16.43"), end = Convert.ToDateTime("22.12.2012 16.43"), title = "Dagvakt", Beskrivelse = "Opplæring"
                },
                new Vakt {
                    ProsjektId = 3, BrukerId = 0, Ledig = true, start = Convert.ToDateTime("22.12.2012 16.43"), end = Convert.ToDateTime("22.12.2012 16.43"), title = "Dagvakt", Beskrivelse = "Opplæring"
                }
            };
            List <Maler> maler = new List <Maler>
            {
                new Maler {
                    ProsjektId = 1, startTid = "07.15", sluttTid = "14.15", Tittel = "dagvakt"
                }
            };

            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")
                }
            };
            Mock <InterfaceDbTProsjekt> mockProductRepositoryProsjekt = new Mock <InterfaceDbTProsjekt>();

            Mock <InterfaceDbTVakt> mockProductRepository = new Mock <InterfaceDbTVakt>();

            List <Vakt> myFilteredFoos = null;

            mockProductRepository.Setup(mr => mr.hentAlleVakter(It.IsAny <int>(), It.IsAny <string>()))
            .Callback((int i, string u) =>
                      myFilteredFoos = vakterDB.Where(x => x.ProsjektId == i).ToList())
            .Returns(() =>
            {
                List <Vaktkalender> testliste = new List <Vaktkalender>();
                foreach (var vakt in myFilteredFoos)
                {
                    testliste.Add(new Vaktkalender()
                    {
                        ProsjektId = vakt.ProsjektId, start = vakt.start, end = vakt.end, title = vakt.title, Beskrivelse = vakt.Beskrivelse
                    });
                }
                return(testliste);
            });

            List <Maler> malene = null;

            mockProductRepository.Setup(mr => mr.hentAlleMaler(It.IsAny <int>(), It.IsAny <string>()))
            .Callback((int i, string u) =>
                      malene = maler.Where(x => x.ProsjektId == i).ToList())
            .Returns(() =>
            {
                List <VisMaler> testliste = new List <VisMaler>();
                foreach (var mal in malene)
                {
                    testliste.Add(new VisMaler()
                    {
                        ProsjektId = mal.ProsjektId, startTid = mal.startTid, sluttTid = mal.sluttTid, Tittel = mal.Tittel
                    });
                }
                return(testliste);
            });


            mockProductRepository.Setup(mr => mr.visVaktRequester(It.IsAny <string>()))
            .Returns(
                (string u) =>
            {
                int id = this.mockProductRepositoryProsjekt.BrukerId(u);

                List <VaktRequestMelding> req = (from p in vaktReq
                                                 from b in bruker
                                                 from s in vakterDB
                                                 where p.BrukerIdTil == id && p.BrukerIdFra == b.BrukerId && p.VaktId == s.VaktId
                                                 select new VaktRequestMelding()
                {
                    MeldingId = p.MeldingId,
                    ProsjektId = p.ProsjektId,
                    FraBruker = b.Email,
                    Melding = " vil ta vakten: ",

                    VaktId = p.VaktId,

                    Tid = p.Sendt,
                    TilBruker = u
                }).ToList();

                return(req);
            });

            mockProductRepository.Setup(mr => mr.requestOk(It.IsAny <int>()))
            .Returns(
                (int i) =>
            {
                try
                {
                    var Requester         = vaktReq.FirstOrDefault(p => p.MeldingId == i);
                    var OppdaterVakt      = vakterDB.FirstOrDefault(p => p.VaktId == Requester.VaktId);
                    OppdaterVakt.BrukerId = Requester.BrukerIdFra;
                    OppdaterVakt.Ledig    = false;
                    OppdaterVakt.color    = "#3A87AD";
                    vaktReq.Remove(Requester);

                    return(true);
                }
                catch (Exception feil)
                {
                    return(false);
                }
            });

            mockProductRepository.Setup(mr => mr.hentAlleLedigeVakter(It.IsAny <int>(), It.IsAny <string>()))
            .Callback((int i, string u) =>
                      myFilteredFoos = vakterDB.Where(x => x.ProsjektId == i && x.BrukerId == 0).ToList())
            .Returns(() =>
            {
                List <Vaktkalender> testliste = new List <Vaktkalender>();
                foreach (var vakt in myFilteredFoos)
                {
                    testliste.Add(new Vaktkalender()
                    {
                        ProsjektId = vakt.ProsjektId, Ledig = vakt.Ledig, start = vakt.start, end = vakt.end, title = vakt.title, Beskrivelse = vakt.Beskrivelse
                    });
                }
                return(testliste);
            });

            mockProductRepository.Setup(mr => mr.hentAlleVakterForBruker(It.IsAny <string>()))
            .Returns((string u) =>
            {
                var user       = bruker.Where(x => x.Email == u).Single();
                int id         = user.BrukerId;
                myFilteredFoos = vakterDB.Where(x => x.BrukerId == id).ToList();
                List <Vaktkalender> testliste = new List <Vaktkalender>();
                foreach (var vakt in myFilteredFoos)
                {
                    testliste.Add(new Vaktkalender()
                    {
                        ProsjektId = vakt.ProsjektId, Brukernavn = user.Email, Ledig = vakt.Ledig, start = vakt.start, end = vakt.end, title = vakt.title, Beskrivelse = vakt.Beskrivelse
                    });
                }
                return(testliste);
            });

            mockProductRepository.Setup(mr => mr.SlettVakt(It.IsAny <int>(), It.IsAny <string>()))
            .Returns((int i, string u) =>
            {
                var slettVakt = vakterDB.FirstOrDefault(p => p.VaktId == i);
                if (!this.mockProductRepositoryProsjekt.ErAdmin(u, slettVakt.ProsjektId) && !this.mockProductRepositoryProsjekt.ErEier(u, slettVakt.ProsjektId))
                {
                    return(false);
                }
                try
                {
                    vakterDB.Remove(slettVakt);
                    return(true);
                }
                catch (Exception feil)
                {
                    return(false);
                }
            });

            mockProductRepository.Setup(mr => mr.LedigVakt(It.IsAny <Vaktskjema>()))
            .Returns((Vaktskjema i) =>
            {
                if (i.BrukerId == 0)
                {
                    return(true);
                }
                return(false);
            });

            mockProductRepository.Setup(mr => mr.taLedigVakt(It.IsAny <int>(), It.IsAny <string>()))
            .Returns((int i, string u) =>
            {
                try
                {
                    // finn personen i databasen
                    Vakt taVakt = vakterDB.FirstOrDefault(p => p.VaktId == i);

                    VaktRequest nyRequest = new VaktRequest();
                    // oppdater vakt fra databasen

                    var pId           = taVakt.ProsjektId;
                    Prosjekt prosjekt = prosjekter.FirstOrDefault(p => p.ProsjektId == pId);

                    nyRequest.VaktId      = taVakt.VaktId;
                    nyRequest.Sendt       = DateTime.Now;
                    nyRequest.BrukerIdFra = this.mockProductRepositoryProsjekt.BrukerId(u);
                    nyRequest.BrukerIdTil = prosjekt.EierId;
                    nyRequest.ProsjektId  = prosjekt.ProsjektId;
                    vaktReq.Add(nyRequest);
                    return(true);
                }
                catch (Exception feil)
                {
                    return(false);
                }
            });

            mockProductRepository.Setup(mr => mr.VakterProsjekt(It.IsAny <int>()))
            .Returns((int i) =>
            {
                var eventer = (from k in vakterDB
                               where k.ProsjektId == i
                               select k
                               ).ToList();
                return(eventer);
            });


            mockProductRepository.Setup(mr => mr.RegistrerVakt(It.IsAny <Vaktskjema>(), It.IsAny <string>())).Returns(
                (Vaktskjema vakt, string u) =>
            {
                if (!this.mockProductRepositoryProsjekt.ErAdmin(u, vakt.ProsjektId) && !this.mockProductRepositoryProsjekt.ErEier(u, vakt.ProsjektId))
                {
                    return(false);
                }

                Vakt nyVakt       = new Vakt();
                nyVakt.ProsjektId = vakt.ProsjektId;
                nyVakt.BrukerId   = vakt.ProsjektId;
                string start      = vakt.start + " " + vakt.startTid;

                IFormatProvider culture = System.Threading.Thread.CurrentThread.CurrentCulture;
                DateTime dt1            = DateTime.ParseExact(start, "dd.MM.yyyy H:mm", culture, System.Globalization.DateTimeStyles.AssumeLocal);
                DateTime dt2;
                string end = "";
                if (vakt.end != null)
                {
                    end = vakt.end + " " + vakt.endTid;
                    dt2 = DateTime.ParseExact(end, "dd.MM.yyyy H:mm", culture, System.Globalization.DateTimeStyles.AssumeLocal);
                }
                else
                {
                    end = vakt.start + " " + vakt.endTid;
                    dt2 = DateTime.ParseExact(end, "dd.MM.yyyy H:mm", culture, System.Globalization.DateTimeStyles.AssumeLocal);
                }
                nyVakt.start = dt1;
                nyVakt.end   = dt2;

                int result = DateTime.Compare(dt1, dt2);
                if (result > 0 || result == 0)
                {
                    return(false);
                }
                else
                {
                    vakterDB.Add(nyVakt);
                }


                return(true);
            });

            mockProductRepository.Setup(mr => mr.EndreVakt(It.IsAny <Vaktskjema>(), It.IsAny <string>())).Returns(
                (Vaktskjema vakt, string u) =>
            {
                if (!this.mockProductRepositoryProsjekt.ErAdmin(u, vakt.ProsjektId) && !this.mockProductRepositoryProsjekt.ErEier(u, vakt.ProsjektId))
                {
                    return(false);
                }

                var NyEndreVakt = vakterDB.FirstOrDefault(p => p.VaktId == vakt.Vaktid);
                string start    = vakt.start + " " + vakt.startTid;
                string end;

                IFormatProvider culture = System.Threading.Thread.CurrentThread.CurrentCulture;
                DateTime dt1            = DateTime.ParseExact(start, "dd.MM.yyyy H:mm", culture, System.Globalization.DateTimeStyles.AssumeLocal);
                DateTime dt2;

                if (vakt.end != "" && vakt.endDato == true)
                {
                    end = vakt.end + " " + vakt.endTid;
                    dt2 = DateTime.ParseExact(end, "dd.MM.yyyy H:mm", culture, System.Globalization.DateTimeStyles.AssumeLocal);
                }
                else
                {
                    end = vakt.start + " " + vakt.endTid;
                    dt2 = DateTime.ParseExact(end, "dd.MM.yyyy H:mm", culture, System.Globalization.DateTimeStyles.AssumeLocal);
                }

                int result = DateTime.Compare(dt1, dt2);
                if (result > 0 || result == 0)
                {
                    return(false);
                }
                if (!this.mockProductRepositoryProsjekt.ErAdmin(u, NyEndreVakt.ProsjektId) && !this.mockProductRepositoryProsjekt.ErEier(u, NyEndreVakt.ProsjektId))
                {
                    return(false);
                }
                try
                {
                    NyEndreVakt.Beskrivelse = vakt.Beskrivelse;
                    NyEndreVakt.BrukerId    = vakt.BrukerId;
                    NyEndreVakt.start       = dt1;
                    NyEndreVakt.end         = dt2;
                    NyEndreVakt.title       = vakt.title;

                    if (this.mockProductRepository.LedigVakt(vakt))
                    {
                        NyEndreVakt.Ledig = true;
                        NyEndreVakt.color = "#5CB85C";
                    }
                    else
                    {
                        NyEndreVakt.Ledig = false;
                        NyEndreVakt.color = "#3A87AD";
                    }

                    return(true);
                }
                catch (Exception feil)
                {
                    return(false);
                }
            });



            mockProductRepositoryProsjekt.Setup(mr => mr.ErEier(It.IsAny <string>(), It.IsAny <int>()))
            .Returns(
                (string u, int i) =>
            {
                var bId    = this.mockProductRepositoryProsjekt.BrukerId(u);
                var TestOk = (from x in prosjekter
                              where x.EierId == bId && x.ProsjektId == i
                              select x.EierId).SingleOrDefault();
                bool ok = false;
                if (TestOk != 0)
                {
                    ok = true;
                    return(ok);
                }
                return(ok);
            });

            mockProductRepositoryProsjekt.Setup(mr => mr.ErAdmin(It.IsAny <string>(), It.IsAny <int>()))
            .Returns(
                (string u, int i) =>
            {
                var okAdmin = false;
                var bId     = this.mockProductRepositoryProsjekt.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);
            });
            mockProductRepositoryProsjekt.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);
            });

            // Complete the setup of our Mock Product Repository
            this.mockProductRepositoryProsjekt = mockProductRepositoryProsjekt.Object;
            this.mockProductRepository         = mockProductRepository.Object;
        }
示例#27
0
        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;
        }