コード例 #1
0
        public void Cannot_Edit_Nonexistent_Game()
        {
            // Организация - создание имитированного хранилища данных
            Mock <IPorsheRepository> mock = new Mock <IPorsheRepository>();

            mock.Setup(m => m.Porshe).Returns(new List <Porshe>
            {
                new Porshe {
                    Id = 1, Name = "Игра1"
                },
                new Porshe {
                    Id = 2, Name = "Игра2"
                },
                new Porshe {
                    Id = 3, Name = "Игра3"
                },
                new Porshe {
                    Id = 4, Name = "Игра4"
                },
                new Porshe {
                    Id = 5, Name = "Игра5"
                }
            });

            // Организация - создание контроллера
            AdminPorsheController controller = new AdminPorsheController(mock.Object);

            // Действие
            Porshe result = controller.Edit(6).ViewData.Model as Porshe;

            // Assert
        }
コード例 #2
0
        public ViewResult Edit(int Id)
        {
            Porshe game = repository.Porshe
                          .FirstOrDefault(g => g.Id == Id);

            return(View(game));
        }
コード例 #3
0
        public void Cannot_Save_Invalid_Changes()
        {
            // Организация - создание имитированного хранилища данных
            Mock <IPorsheRepository> mock = new Mock <IPorsheRepository>();

            // Организация - создание контроллера
            AdminPorsheController controller = new AdminPorsheController(mock.Object);

            // Организация - создание объекта Game
            Porshe game = new Porshe {
                Name = "Test"
            };

            // Организация - добавление ошибки в состояние модели
            controller.ModelState.AddModelError("error", "error");

            // Действие - попытка сохранения товара
            ActionResult result = controller.Edit(game);

            // Утверждение - проверка того, что обращение к хранилищу НЕ производится
            mock.Verify(m => m.SavePorshe(It.IsAny <Porshe>()), Times.Never());

            // Утверждение - проверка типа результата метода
            Assert.IsInstanceOfType(result, typeof(ViewResult));
        }
コード例 #4
0
        public Porshe DeletePorshe(int Id)
        {
            Porshe dbEntry = context.Porshe.Find(Id);

            if (dbEntry != null)
            {
                context.Porshe.Remove(dbEntry);
                context.SaveChanges();
            }
            return(dbEntry);
        }
コード例 #5
0
        public ActionResult Delete(int Id)
        {
            Porshe deletedPorshe = repository.DeletePorshe(Id);

            if (deletedPorshe != null)
            {
                TempData["message"] = string.Format("Машина \"{0}\" была удалена",
                                                    deletedPorshe.Name);
            }
            return(RedirectToAction("Index"));
        }
コード例 #6
0
 public ActionResult Edit(Porshe game)
 {
     if (ModelState.IsValid)
     {
         repository.SavePorshe(game);
         TempData["message"] = string.Format("Изменения в PORSHE \"{0} {1}\" были сохранены", game.Name, game.Model);
         return(RedirectToAction("Index"));
     }
     else
     {
         // Что-то не так со значениями данных
         return(View(game));
     }
 }
コード例 #7
0
 public void SavePorshe(Porshe game)
 {
     if (game.Id == 0)
     {
         context.Porshe.Add(game);
     }
     else
     {
         Porshe dbEntry = context.Porshe.Find(game.Id);
         if (dbEntry != null)
         {
             dbEntry.Name  = game.Name;
             dbEntry.Model = game.Model;
             dbEntry.Price = game.Price;
         }
     }
     context.SaveChanges();
 }
コード例 #8
0
        public void Can_Delete_Valid_Games()
        {
            // Организация - создание объекта Game
            Porshe game = new Porshe {
                Id = 2, Name = "Игра2"
            };

            // Организация - создание имитированного хранилища данных
            Mock <IPorsheRepository> mock = new Mock <IPorsheRepository>();

            mock.Setup(m => m.Porshe).Returns(new List <Porshe>
            {
                new Porshe {
                    Id = 1, Name = "Игра1"
                },
                new Porshe {
                    Id = 2, Name = "Игра2"
                },
                new Porshe {
                    Id = 3, Name = "Игра3"
                },
                new Porshe {
                    Id = 4, Name = "Игра4"
                },
                new Porshe {
                    Id = 5, Name = "Игра5"
                }
            });

            // Организация - создание контроллера
            AdminPorsheController controller = new AdminPorsheController(mock.Object);

            // Действие - удаление игры
            controller.Delete(game.Id);

            // Утверждение - проверка того, что метод удаления в хранилище
            // вызывается для корректного объекта Game
            mock.Verify(m => m.DeletePorshe(game.Id));
        }
コード例 #9
0
        public void Can_Save_Valid_Changes()
        {
            // Организация - создание имитированного хранилища данных
            Mock <IPorsheRepository> mock = new Mock <IPorsheRepository>();

            // Организация - создание контроллера
            AdminPorsheController controller = new AdminPorsheController(mock.Object);

            // Организация - создание объекта Game
            Porshe game = new Porshe {
                Name = "Test"
            };

            // Действие - попытка сохранения товара
            ActionResult result = controller.Edit(game);

            // Утверждение - проверка того, что к хранилищу производится обращение
            mock.Verify(m => m.SavePorshe(game));

            // Утверждение - проверка типа результата метода
            Assert.IsNotInstanceOfType(result, typeof(ViewResult));
        }
コード例 #10
0
        public void Can_Edit_Game()
        {
            // Организация - создание имитированного хранилища данных
            Mock <IPorsheRepository> mock = new Mock <IPorsheRepository>();

            mock.Setup(m => m.Porshe).Returns(new List <Porshe>
            {
                new Porshe {
                    Id = 1, Name = "Игра1"
                },
                new Porshe {
                    Id = 2, Name = "Игра2"
                },
                new Porshe {
                    Id = 3, Name = "Игра3"
                },
                new Porshe {
                    Id = 4, Name = "Игра4"
                },
                new Porshe {
                    Id = 5, Name = "Игра5"
                }
            });

            // Организация - создание контроллера
            AdminPorsheController controller = new AdminPorsheController(mock.Object);

            // Действие
            Porshe game1 = controller.Edit(1).ViewData.Model as Porshe;
            Porshe game2 = controller.Edit(2).ViewData.Model as Porshe;
            Porshe game3 = controller.Edit(3).ViewData.Model as Porshe;

            // Assert
            Assert.AreEqual(1, game1.Id);
            Assert.AreEqual(2, game2.Id);
            Assert.AreEqual(3, game3.Id);
        }