Exemple #1
0
 public BrukerBLL()
 {
     _repository = new DbTransaksjonerBruker();
 }
Exemple #2
0
 public BrukerBLL(InterfaceDbTBruker moqs)
 {
     _repository = moqs;
 }
Exemple #3
0
        public BrukerTest()
        {
            // Lager mock som vi kan gjøre spørringer mot

            List<BrukerListe> brukere = new List<BrukerListe>
                {
                   new BrukerListe() {Brukernavn = "[email protected]", ProsjektDeltakerId = 1, Admin = false, Navn="Mats"},
                    new BrukerListe() {Brukernavn = "[email protected]", ProsjektDeltakerId = 2, Admin=true, Navn = "Gordo"}
                };
            List<dbBruker> brukereDB = new List<dbBruker>
                {
                     new dbBruker
                    {
                        BrukerId = 1, Email = "[email protected]"
                    },
                    new dbBruker
                    {
                        BrukerId = 2, Email = "[email protected]"
                    },
                    new dbBruker
                    {
                        BrukerId = 3, Email = "[email protected]"
                    }
                };
            List<Vakt> vakterDB = new List<Vakt>
                {
                    new Vakt {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 = 1, BrukerId = 1, start = Convert.ToDateTime("22.12.2012 16.43"),end =  Convert.ToDateTime("22.12.2012 16.43"),title = "Dagvakt",Beskrivelse = "Opplæring"}
                };
            List<Prosjektdeltakelse> deltakelser = new List<Prosjektdeltakelse>
                {
                    new Prosjektdeltakelse() {BrukerId = 1, ProsjektId = 1, ProsjektDeltakerId = 1, Admin = false},
                    new Prosjektdeltakelse() {BrukerId = 2, ProsjektId = 1, ProsjektDeltakerId = 2, Admin = false}
                };
            List<Prosjekt> prosjekter  = new List<Prosjekt>
                {
                    new Prosjekt() {ProsjektId = 1, EierId = 1},
                    new Prosjekt() {ProsjektId = 2, EierId = 2}
                };

            // Mock the Products Repository using Moq
            Mock<InterfaceDbTBruker> mockProductRepository = new Mock<InterfaceDbTBruker>();
            Mock<InterfaceDbTProsjekt> mockProductRepositoryProsjekt = new Mock<InterfaceDbTProsjekt>();



            mockProductRepository.Setup(mr => mr.HentBrukere(It.IsAny<int>(), It.IsAny<string>()))
                .Returns(
                (int i, string u) =>
                {
                    var deltakels = deltakelser.Where(x => x.ProsjektId == i).ToList();
                    List<BrukerListe> testliste = new List<BrukerListe>();
                    foreach (var del in deltakels)
                    {
                        testliste.Add(new BrukerListe() { ProsjektId = del.ProsjektId, ProsjektDeltakerId = del.ProsjektDeltakerId, Admin = del.Admin });
                    }
                    return testliste;
                });

            mockProductRepository.Setup(mr => mr.GiBrukerAdminTilgang(It.IsAny<Sjef>(), It.IsAny<string>()))
              .Returns(
              (Sjef s, string u) =>
              {
                  if (!this.mockProductRepositoryProsjekt.ErEier(u, s.ProsjektId))
                  {
                      return false;
                  }
                  var AdminTilgang = deltakelser.FirstOrDefault(p => p.ProsjektId == s.ProsjektId && p.BrukerId == s.BrukerId);
                  if (AdminTilgang == null)
                  {
                      return false;
                  }
                  try
                  {
                      AdminTilgang.Admin = true;
                      return true;
                  }
                  catch (Exception feil)
                  {
                      return false;
                  }
              });


           


            mockProductRepository.Setup(mr => mr.RegistrerBruker(It.IsAny<Registrer>()))
           .Returns(
           (Registrer r) =>
           {
               if (this.mockProductRepository.EmailDb(r))
               {
                   return false;
               }
                var algoritme = System.Security.Cryptography.SHA256.Create();
                var innData = System.Text.Encoding.ASCII.GetBytes(r.BekreftPassord);
                var passordDb = algoritme.ComputeHash(innData);
              
               var nyBruker = new dbBruker()
               {
                   Passord = passordDb,
                   Fornavn = r.Fornavn,
                   Etternavn = r.Etternavn,
                   Email = r.Email,
                   Telefonnummer = r.Telefonnummer
               };

               using (var db = new Dbkontekst())
               {
                   try
                   {
                       db.Brukere.Add(nyBruker);
                       db.SaveChanges();
                       return true;
                   }
                   catch (Exception feil)
                   {
                       return false;
                   }
               }
           });

            mockProductRepository.Setup(mr => mr.EmailDb(It.IsAny<Registrer>()))
          .Returns(
          (Registrer r) =>
          {
              dbBruker funnetBruker = brukereDB.FirstOrDefault
                     (b => b.Email == r.Email);
              if (funnetBruker == null)
              {
                  return false;
              }
              else
              {
                  return true;
              }
          });



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

               List<Timeliste> pros = (from p in vakterDB
                                       where p.BrukerId == id && p.ProsjektId == i
                                       select
                                           new Timeliste()
                                           {
                                               ProsjektId = p.ProsjektId,
                                               PeriodeStart = p.start,
                                               PeriodeSlutt = p.end
                                           }).ToList();

               return pros;
           });
            mockProductRepository.Setup(mr => mr.FjernAdminTilgang(It.IsAny<Sjef>(), It.IsAny<string>()))
              .Returns(
              (Sjef s, string u) =>
              {
                
                  if (!this.mockProductRepositoryProsjekt.ErEier(u, s.ProsjektId))
                  {
                      return false;
                  }
                  try
                  {
                      var AdminTilgang = deltakelser.FirstOrDefault(p => p.ProsjektId == s.ProsjektId && p.BrukerId == s.BrukerId);
                      AdminTilgang.Admin = false;
                 
                      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 brukereDB
                                  where x.Email == u
                                  select x.BrukerId).SingleOrDefault();
                    return userId;
                });

            // Allows us to test saving a product

            // Complete the setup of our Mock Product Repository
            this.mockProductRepository = mockProductRepository.Object;
                  this.mockProductRepositoryProsjekt = mockProductRepositoryProsjekt.Object;
        }