예제 #1
0
 // GET: Thread
 public ActionResult Index()
 {
     using (FakebookContext Fk = new FakebookContext()) {
         Home content = new Home(Fk.Threads.ToList(), Fk.Categories.ToList());
         return(View(content));
     }
 }
        public void GetUser_ByIds_ValidData(List <User> users, List <int> userIds)
        {
            // Arrange
            using var connection = new SqliteConnection("Data Source=:memory:");
            connection.Open();

            var options = new DbContextOptionsBuilder <FakebookContext>()
                          .UseSqlite(connection)
                          .Options;

            // Act
            using (var actingContext = new FakebookContext(options)) {
                actingContext.Database.EnsureCreated();

                var repo = new UserRepo(actingContext);

                // Create the user data
                users.ForEach(user => _ = repo.CreateUser(user).Result);
            }

            using (var assertionContext = new FakebookContext(options)) {
                var repo = new UserRepo(assertionContext);

                var usersActual = repo.GetAllUsers();

                Assert.True(usersActual.Any());

                usersActual = repo.GetUsersByIdsAsync(userIds).Result;

                Assert.True(usersActual.Any());
                Assert.True(usersActual.Count() == userIds.Distinct().Count());
            }
        }
        public void CreateUser_InvalidData(User user)
        {
            // Arrange
            using var connection = new SqliteConnection("Data Source=:memory:");
            connection.Open();

            var options = new DbContextOptionsBuilder <FakebookContext>()
                          .UseSqlite(connection)
                          .Options;

            // Act
            using (var actingContext = new FakebookContext(options)) {
                actingContext.Database.EnsureCreated();

                var repo = new UserRepo(actingContext);

                // Create the user data
                Assert.ThrowsAsync <ArgumentException>(() => repo.CreateUser(user));
            }

            using (var assertionContext = new FakebookContext(options)) {
                var repo = new UserRepo(assertionContext);

                var users = repo.GetAllUsers();

                Assert.False(users.Any());
            }
        }
        public void DeleteUser_InvalidData(List <User> users, int userId)
        {
            // Arrange
            using var connection = new SqliteConnection("Data Source=:memory:");
            connection.Open();

            var options = new DbContextOptionsBuilder <FakebookContext>()
                          .UseSqlite(connection)
                          .Options;

            // Act
            using (var actingContext = new FakebookContext(options)) {
                actingContext.Database.EnsureCreated();

                var repo = new UserRepo(actingContext);

                // Create the user data
                users.ForEach(user => _ = repo.CreateUser(user).Result);
            }

            using (var assertionContext = new FakebookContext(options)) {
                var repo = new UserRepo(assertionContext);

                var usersActual = repo.GetAllUsers();

                Assert.ThrowsAsync <ArgumentException>(() => repo.DeleteUserAsync(userId));
            }
        }
예제 #5
0
 public ActionResult Delete(int _id)
 {
     using (FakebookContext Fk = new FakebookContext())
     {
         Thread thread = Fk.Threads.First(x => x.Id == _id);
         return(View(thread));
     }
 }
예제 #6
0
 public ActionResult AddComment(DetailThread _detailThread)
 {
     using (FakebookContext Fk = new FakebookContext())
     {
         _detailThread.Comment.IdThread = _detailThread.Thread.Id;
         Fk.Comments.Add(_detailThread.Comment);
         Fk.SaveChanges();
         return(RedirectToAction("Detail", "Thread", new{ _id = _detailThread.Thread.Id }));
     }
 }
예제 #7
0
 public ActionResult Delete(Thread _thread)
 {
     using (FakebookContext Fk = new FakebookContext())
     {
         Thread thread = Fk.Threads.First(x => x.Id == _thread.Id);
         Fk.Threads.Remove(thread);
         Fk.SaveChanges();
         return(RedirectToAction("Index"));
     }
 }
예제 #8
0
 public ActionResult Edit(int _id)
 {
     ViewBag.State = "Editar Recomendación";
     using (FakebookContext Fk = new FakebookContext())
     {
         //Creamos una instancia de un post para colocar nuesto elemnto editado
         Thread editThread = Fk.Threads.First(x => x.Id == _id);
         //creamos la instancia del nuevo modelo para alta de post
         ThreadCRU threadCRU = new ThreadCRU(Fk.Categories.ToList());
         //compactamos las dos instancias para poder complementar vista y modelo
         threadCRU.Thread = editThread;
         return(View("Create", threadCRU));
     }
 }
예제 #9
0
 public ActionResult Create()
 {
     ViewBag.State = "Nueva Recomendación";
     using (FakebookContext Fk = new FakebookContext())
     {
         //Creamos una instancia de un nuevo post
         Thread newThread = new Thread();
         //creamos la instancia del nuevo modelo para alta de post
         ThreadCRU AddThread = new ThreadCRU(Fk.Categories.ToList());
         //compactamos las dos instancias para poder complementar vista y modelo
         AddThread.Thread = newThread;
         return(View(AddThread));
     }
 }
예제 #10
0
        public ActionResult Detail(int _id)
        {
            //consultamos en base al Id
            using (FakebookContext Fk = new FakebookContext())
            {
                Thread  threadConsultado = Fk.Threads.First(x => x.Id == _id);
                Comment comment          = new Comment();


                DetailThread detail = new DetailThread
                                      (
                    Fk.Categories.ToList()
                    , Fk.Comments.Where(x => x.IdThread == _id).ToList()
                    , threadConsultado
                    , comment
                                      );
                return(View(detail));
            }
        }
        public void CreateUser_ValidData(User user)
        {
            // Arrange
            using var connection = new SqliteConnection("Data Source=:memory:");
            connection.Open();

            var options = new DbContextOptionsBuilder <FakebookContext>()
                          .UseSqlite(connection)
                          .Options;

            int result;

            // Act
            using (var actingContext = new FakebookContext(options)) {
                actingContext.Database.EnsureCreated();

                var repo = new UserRepo(actingContext);

                // Create the user data
                result = repo.CreateUser(user).Result;
            }

            // Assert
            Assert.True(result != -1, "Unable to create the user.");

            using (var assertionContext = new FakebookContext(options)) {
                var repo = new UserRepo(assertionContext);

                var users = repo.GetAllUsers();

                Assert.True(users.Any());

                var userActual = repo.GetUserByIdAsync(result).Result;

                Assert.NotNull(userActual);

                Assert.Equal(user.Email, userActual.Email);
                Assert.Equal(user.FirstName, userActual.FirstName);
                Assert.Equal(user.LastName, userActual.LastName);
                Assert.Equal(user.BirthDate, userActual.BirthDate);
            }
        }
예제 #12
0
        public void UpdateUser_ValidData(User user, User userUpdates)
        {
            // Arrange
            using var connection = new SqliteConnection("Data Source=:memory:");
            connection.Open();

            var options = new DbContextOptionsBuilder <FakebookContext>()
                          .UseSqlite(connection)
                          .Options;

            int result;

            // Act
            using (var actingContext = new FakebookContext(options)) {
                actingContext.Database.EnsureCreated();

                var repo = new UserRepo(actingContext);

                // Create the user data
                result = repo.CreateUser(user).Result;
            }

            // Assert
            Assert.True(result != -1, "Unable to create the user.");

            using (var assertionContext = new FakebookContext(options)) {
                var repo = new UserRepo(assertionContext);

                bool updateResult = repo.UpdateUserAsync(user.Id, userUpdates).Result;

                Assert.True(updateResult, "Unable to update the user.");
                var alteredUser = repo.GetUserByIdAsync(user.Id).Result;

                Assert.NotEqual(user.FirstName, alteredUser.FirstName);
                Assert.NotEqual(user.LastName, alteredUser.LastName);
                Assert.NotEqual(user.Status, alteredUser.Status);
            }
        }
예제 #13
0
        public ActionResult AddOrEdit(ThreadCRU _threadCRUD)
        {
            Thread _thread = _threadCRUD.Thread;

            using (FakebookContext Fk = new FakebookContext())
            {
                if (Fk.Threads.Any(x => x.Id == _thread.Id))
                {
                    Thread threadEdit = Fk.Threads.First(x => x.Id == _thread.Id);
                    threadEdit.Title       = _thread.Title;
                    threadEdit.Description = _thread.Description;
                    threadEdit.IdCategory  = _thread.IdCategory;
                    Fk.SaveChanges();
                }
                else
                {
                    Fk.Threads.Add(_thread);
                    Fk.SaveChanges();
                }

                return(RedirectToAction("Index"));
            }
        }
예제 #14
0
        public void UpdateUser_InvalidData(User user, User userUpdates)
        {
            // Arrange
            using var connection = new SqliteConnection("Data Source=:memory:");
            connection.Open();

            var options = new DbContextOptionsBuilder <FakebookContext>()
                          .UseSqlite(connection)
                          .Options;

            int result;

            // Act
            using (var actingContext = new FakebookContext(options)) {
                actingContext.Database.EnsureCreated();

                var repo = new UserRepo(actingContext);

                // Create the user data
                result = repo.CreateUser(user).Result;
            }

            // Assert
            Assert.True(result != -1, "Unable to create the user.");

            using (var assertionContext = new FakebookContext(options)) {
                var repo = new UserRepo(assertionContext);

                Assert.ThrowsAsync <ArgumentException>(() => repo.UpdateUserAsync(user.Id, userUpdates));

                var userActual = repo.GetUserByIdAsync(user.Id).Result;

                Assert.Equal(user.FirstName, userActual.FirstName);
                Assert.Equal(user.LastName, userActual.LastName);
                Assert.Equal(user.Email, userActual.Email);
            }
        }
        public void GetUser_ById_ValidData(List <User> users, int userId)
        {
            // Arrange
            using var connection = new SqliteConnection("Data Source=:memory:");
            connection.Open();

            var options = new DbContextOptionsBuilder <FakebookContext>()
                          .UseSqlite(connection)
                          .Options;

            // Act
            using (var actingContext = new FakebookContext(options)) {
                actingContext.Database.EnsureCreated();

                var repo = new UserRepo(actingContext);

                // Create the user data
                users.ForEach(user => _ = repo.CreateUser(user).Result);
            }

            using (var assertionContext = new FakebookContext(options)) {
                var repo = new UserRepo(assertionContext);

                var usersActual = repo.GetAllUsers();

                Assert.True(usersActual.Any());

                var userActual = repo.GetUserByIdAsync(userId).Result;

                Assert.NotNull(userActual);

                Assert.Equal(userActual.Email, userActual.Email);
                Assert.Equal(userActual.FirstName, userActual.FirstName);
                Assert.Equal(userActual.LastName, userActual.LastName);
                Assert.Equal(userActual.BirthDate, userActual.BirthDate);
            }
        }
예제 #16
0
 public UserRepo(FakebookContext context)
 {
     _context = context;
 }
 public CommentRepo(FakebookContext context)
 {
     _context = context;
 }
예제 #18
0
 public PostRepo(FakebookContext context)
 {
     _context = context;
 }