Пример #1
0
        public async void AddMemberAsyncShouldThrowExcpetion()
        {
            // arrange
            var options = new DbContextOptionsBuilder <PH_DbContext>()
                          .UseInMemoryDatabase("AddMemberAsyncShouldThrowExcpetion")
                          .Options;

            using var actContext = new PH_DbContext(options);
            var repo = new UserRepo(actContext);

            Member newMember = new Member()
            {
                FirstName = "Rando",
                LastName  = "Random",
                Email     = "*****@*****.**",
                Username  = "******",
                Password  = "******",
                Phone     = "1231231234",
                //PointAvailable = 100
            };


            // act
            try
            {
                await repo.AddMemberAsync(newMember);

                await repo.AddMemberAsync(newMember);
            }
            catch (InvalidOperationException ex)
            {
                Assert.Equal("Duplicate info in unique Column", ex.Message);
            }
        }
Пример #2
0
        public async void AddProfessionalAsyncShouldAdd()
        {
            // arrange
            var options = new DbContextOptionsBuilder <PH_DbContext>()
                          .UseInMemoryDatabase("AddProfessionalAsyncShouldAdd")
                          .Options;

            using var actContext = new PH_DbContext(options);
            var repo = new UserRepo(actContext);

            Professional professional = new Professional()
            {
                Email     = "*****@*****.**",
                FirstName = "Rando",
                LastName  = "Random",
                Username  = "******",
                Password  = "******",
                Phone     = "1231231234",
                //Profile_Pic = p.User.Profile_Pic,
                //PointAvailable = p.AccInfo.PointAvailable,
                Category = "Math"
            };

            // act
            await repo.AddProfessionalAsync(professional);

            //actContext.SaveChanges();

            // assert
            using var assertContext = new PH_DbContext(options);
            var member = assertContext.Members.Select(m => professional);

            Assert.NotNull(member);
        }
Пример #3
0
        public void GetAUserShouldReturnResult()
        {
            // arrange
            var options = new DbContextOptionsBuilder <PH_DbContext>()
                          .UseInMemoryDatabase("GetAUserShouldReturnResult")
                          .Options;

            using var arrangeContext = new PH_DbContext(options);

            var id       = 5;
            var username = "******";

            arrangeContext.Users.Add(new Users {
                Id = id, Username = username
            });
            arrangeContext.SaveChanges();

            using var actContext = new PH_DbContext(options);
            var repo = new UserRepo(actContext);

            // act
            var result = repo.GetAUserAsync(username);

            // assert
            Assert.NotNull(result);
        }
Пример #4
0
        public void GetProfessionalListShouldReturnResult()
        {
            // arrange
            var options = new DbContextOptionsBuilder <PH_DbContext>()
                          .UseInMemoryDatabase("GetProfessionalListShouldReturnResult")
                          .Options;

            using var arrangeContext = new PH_DbContext(options);

            var id     = 5;
            var userId = 10;

            arrangeContext.Professionals.Add(new Professionals {
                Id = id, UserID = userId
            });
            arrangeContext.SaveChanges();

            using var actContext = new PH_DbContext(options);
            var repo = new UserRepo(actContext);

            // act
            var result = repo.GetProfessionalListAsync();

            // assert
            Assert.NotNull(result);
        }
Пример #5
0
        public void GetUsersQuestionShouldReturnResult()
        {
            // arrange
            var options = new DbContextOptionsBuilder <PH_DbContext>()
                          .UseInMemoryDatabase("GetUsersQuestionShouldReturnResult")
                          .Options;

            using var arrangeContext = new PH_DbContext(options);

            string username = "******";

            arrangeContext.Questions.Add(new Questions {
                UserQuestion = "wtf?"
            });
            arrangeContext.SaveChanges();

            using var actContext = new PH_DbContext(options);
            var repo = new UserRepo(actContext);

            // act
            var result = repo.GetUsersQuestionAsync(username);

            // assert
            Assert.NotNull(result);
        }
Пример #6
0
        public async void AddMemberAsyncShouldAdd()
        {
            // arrange
            var options = new DbContextOptionsBuilder <PH_DbContext>()
                          .UseInMemoryDatabase("AddMemberAsyncShouldAdd")
                          .Options;

            using var actContext = new PH_DbContext(options);
            var repo = new UserRepo(actContext);

            Member newMember = new Member()
            {
                FirstName = "Rando",
                LastName  = "Random",
                Email     = "*****@*****.**",
                Username  = "******",
                Password  = "******",
                Phone     = "1231231234",
                //PointAvailable = 100
            };

            // act
            await repo.AddMemberAsync(newMember);

            //actContext.SaveChanges();

            // assert
            using var assertContext = new PH_DbContext(options);
            var member = assertContext.Members.Select(m => newMember);

            Assert.NotNull(member);
        }
Пример #7
0
        public void GetMemberListShouldReturnResult()
        {
            // arrange
            var options = new DbContextOptionsBuilder <PH_DbContext>()
                          .UseInMemoryDatabase("GetMemberListShouldReturnResult")
                          .Options;

            using var arrangeContext = new PH_DbContext(options);

            var id = 5;

            arrangeContext.Users.Add(new Users {
                FirstName = "Abc"
            });
            arrangeContext.SaveChanges();

            using var actContext = new PH_DbContext(options);
            var repo = new UserRepo(actContext);

            // act
            var result = repo.GetMemberListAsync();

            // assert
            // if it is needed to check the actual database here,
            // use a separate assertContext as well.
            Assert.NotNull(result);
        }
Пример #8
0
        public void GetAdminListAsyncShouldReturnResult()
        {
            // arrange
            var options = new DbContextOptionsBuilder <PH_DbContext>()
                          .UseInMemoryDatabase("GetAdminListAsyncShouldReturnResult")
                          .Options;

            using var arrangeContext = new PH_DbContext(options);

            var id      = 5;
            var UserId  = 10;
            var newUser = new Users {
                Email = "dude"
            };

            arrangeContext.Admin.Add(new Admins {
                Id = id, UsersID = UserId, User = newUser
            });
            arrangeContext.SaveChanges();

            using var actContext = new PH_DbContext(options);
            var repo = new AdminRepo(actContext);

            // act
            var result = repo.GetAdminListAsync();

            // assert
            Assert.NotNull(result);
        }
Пример #9
0
        public async void AddProfessionalAsyncShouldThrowExcpetion()
        {
            // arrange
            var options = new DbContextOptionsBuilder <PH_DbContext>()
                          .UseInMemoryDatabase("AddProfessionalAsyncShouldThrowExcpetion")
                          .Options;

            Professional professional = new Professional()
            {
                Email     = "*****@*****.**",
                FirstName = "Rando",
                LastName  = "Random",
                Username  = "******",
                Password  = "******",
                Phone     = "1231231234",
                //Profile_Pic = p.User.Profile_Pic,
                //PointAvailable = p.AccInfo.PointAvailable,
                Category = "Math"
            };

            Professional professional2 = new Professional()
            {
                Email     = "*****@*****.**",
                FirstName = "Randwo",
                LastName  = "Randowm",
                Username  = "******",
                Password  = "******",
                Phone     = "w",
                //Profile_Pic = p.User.Profile_Pic,
                //PointAvailable = p.AccInfo.PointAvailable,
                Category = "English"
            };

            using (var actContext = new PH_DbContext(options))
            {
                var repo = new UserRepo(actContext);

                // act
                try {
                    await repo.AddProfessionalAsync(professional);

                    await repo.AddProfessionalAsync(professional);
                }
                catch (InvalidOperationException ex)
                {
                    Assert.Equal("Duplicate info in unique Column", ex.Message);
                }
                //   Exception ex = await Assert.ThrowsAsync<InvalidOperationException>(() => repo.AddProfessionalAsync(professional));

                // Assert.Equal("Duplicate info in unique Column", ex.Message);
            }
        }
Пример #10
0
        public void GetAUserShouldThrowNullException()
        {
            // arrange
            var options = new DbContextOptionsBuilder <PH_DbContext>()
                          .UseInMemoryDatabase("GetAUserShouldThrowNullException")
                          .Options;

            string username = null;

            //assert
            using (var assertContext = new PH_DbContext(options))
            {
                var repo = new UserRepo(assertContext);
                Assert.ThrowsAsync <ArgumentNullException>(() => repo.GetAUserAsync(username));
            }
        }
Пример #11
0
        public async void AddAnswerAsyncShouldThrowExcpetion()
        {
            // arrange
            var options = new DbContextOptionsBuilder <PH_DbContext>()
                          .UseInMemoryDatabase("AddAnswerAsyncShouldThrowExcpetion")
                          .Options;

            using var actContext = new PH_DbContext(options);
            var repo = new ForumRepo(actContext);

            var newAnswer = new Answer();

            try
            {
                await repo.AddAnswerAsync(newAnswer);
            }
            catch (InvalidOperationException ex)
            {
                Assert.Equal("There is no user logged in.", ex.Message);
            }
        }
Пример #12
0
        public async void AddQuestionAsyncShouldAdd()
        {
            // arrange
            var options = new DbContextOptionsBuilder <PH_DbContext>()
                          .UseInMemoryDatabase("AddQuestionAsyncShouldAdd")
                          .Options;

            using var actContext = new PH_DbContext(options);
            var repo = new ForumRepo(actContext);

            Users newUsers = new Users()
            {
                FirstName = "Rando",
                LastName  = "Random",
                Email     = "*****@*****.**",
                Username  = "******",
                Password  = "******",
                Phone     = "1231231234",
                //PointAvailable = 100
            };

            actContext.Add(newUsers);
            actContext.SaveChanges();

            var newQuestion = new Question()
            {
                AuthorName = "randorandom"
            };

            // act
            await repo.AddQuestionAsync(newQuestion);

            //actContext.SaveChanges();

            // assert
            using var assertContext = new PH_DbContext(options);
            var ques = assertContext.Questions.Select(q => newQuestion);

            Assert.NotNull(ques);
        }
Пример #13
0
 public UserRepo(PH_DbContext context)
 {
     _context = context;
 }
Пример #14
0
 public AdminRepo(PH_DbContext context)
 {
     _context = context;
 }