public void Can_Paginate() { Mock <IPhoneRepository> mock = new Mock <IPhoneRepository>(); mock.Setup(m => m.Phones).Returns(new List <Phone> { new Phone { PhoneId = 1, Mark = "Sony1" }, new Phone { PhoneId = 2, Mark = "Sony2" }, new Phone { PhoneId = 3, Mark = "Sony3" }, new Phone { PhoneId = 4, Mark = "Sony4" }, new Phone { PhoneId = 5, Mark = "Sony5" } }); PhonesController controller = new PhonesController(mock.Object); controller.pageSize = 3; PhonesListViewModel result = (PhonesListViewModel)controller.List(null, 2).Model; List <Phone> phones = result.Phones.ToList(); Assert.IsTrue(phones.Count == 2); Assert.AreEqual(phones[0].Mark, "Sony4"); Assert.AreEqual(phones[1].Mark, "Sony5"); }
public void Can_Filter_Phones() { Mock <IPhoneRepository> mock = new Mock <IPhoneRepository>(); mock.Setup(m => m.Phones).Returns(new List <Phone> { new Phone { PhoneId = 1, Mark = "Sony1", Category = "Category1" }, new Phone { PhoneId = 2, Mark = "Sony2", Category = "Category2" }, new Phone { PhoneId = 3, Mark = "Sony3", Category = "Category1" }, new Phone { PhoneId = 4, Mark = "Sony4", Category = "Category3" }, new Phone { PhoneId = 5, Mark = "Sony5", Category = "Category2" } }); PhonesController controller = new PhonesController(mock.Object); controller.pageSize = 3; List <Phone> result = ((PhonesListViewModel)controller.List("Category2", 1).Model).Phones.ToList(); Assert.AreEqual(result.Count(), 2); Assert.IsTrue(result[0].Mark == "Category2" && result[0].Category == "Category2"); Assert.IsTrue(result[1].Mark == "Category5" && result[1].Category == "Category2"); }
public AdminPhonesControllerTests() { var options = new DbContextOptionsBuilder <MobileContext>() .UseInMemoryDatabase(databaseName: "schooldb") .Options; _context = new MobileContext(options); _hostEnv = new Mock <IWebHostEnvironment>(); _controller = new PhonesController(_context, _hostEnv.Object); }
public PhonesControllerAdminTest() { var webhostmocker = new Mock <IWebHostEnvironment>(); _phonesController = new PhonesController(_context, webhostmocker.Object); _ihost = webhostmocker.Object; var options = new DbContextOptionsBuilder <MobileContext>() .UseInMemoryDatabase(databaseName: "phonesdb") .Options; }
public void Cannot_Retrieve_Image_Data_For_Invalid_ID() { // Организация - создание имитированного хранилища Mock <IPhoneRepository> mock = new Mock <IPhoneRepository>(); mock.Setup(m => m.Phones).Returns(new List <Phone> { new Phone { PhoneId = 1, Mark = "Марка1" }, new Phone { PhoneId = 2, Mark = "Марка2" } }.AsQueryable()); // Организация - создание контроллера PhonesController controller = new PhonesController(mock.Object); // Действие - вызов метода действия GetImage() ActionResult result = controller.GetImage(10); // Утверждение Assert.IsNull(result); }
public async Task TestDelete() { var options = new DbContextOptionsBuilder <MobileContext>() .UseInMemoryDatabase(databaseName: "phonesdb") .Options; using (var context = new MobileContext(options)) { int beforeCount = context.Phones.Count(); var phones = new Phone { Name = "IPhone 14", Company = "Apple", Price = 20 }; _phonesController = new PhonesController(context, _ihost); var result = await _phonesController.Delete(phones); var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("Index", redirectToActionResult.ActionName); Assert.Equal(beforeCount - 1, context.Phones.Count()); } }
static void Main(string[] args) { var phones_ctrl = new PhonesController(); while (true) { Console.Clear(); Console.WriteLine("A - Ввести новый смартфон.\tB - Вывести список смартфонов.\tD - Удалить смартфон\tQ - Выход."); var key = Console.ReadKey(); Console.WriteLine(); switch (key.Key) { case ConsoleKey.A: SetNewDevice(phones_ctrl); break; case ConsoleKey.B: PrintDevice(phones_ctrl); break; case ConsoleKey.D: RemoveDevice(phones_ctrl); break; case ConsoleKey.Q: Environment.Exit(0); break; default: Console.WriteLine("Неправильный ввод."); break; } } }
public void Generate_Category_Specific_Phone_Count() { Mock <IPhoneRepository> mock = new Mock <IPhoneRepository>(); mock.Setup(m => m.Phones).Returns(new List <Phone> { new Phone { PhoneId = 1, Mark = "Sony1", Category = "Category1" }, new Phone { PhoneId = 2, Mark = "Sony2", Category = "Category2" }, new Phone { PhoneId = 3, Mark = "Sony3", Category = "Category1" }, new Phone { PhoneId = 4, Mark = "Sony4", Category = "Category3" }, new Phone { PhoneId = 5, Mark = "Sony5", Category = "Category2" } }); PhonesController controller = new PhonesController(mock.Object); controller.pageSize = 3; int res1 = ((PhonesListViewModel)controller.List("Category1").Model).PagingInfo.TotalItems; int res2 = ((PhonesListViewModel)controller.List("Category2").Model).PagingInfo.TotalItems; int res3 = ((PhonesListViewModel)controller.List("Category3").Model).PagingInfo.TotalItems; int resAll = ((PhonesListViewModel)controller.List(null).Model).PagingInfo.TotalItems; Assert.AreEqual(res1, 2); Assert.AreEqual(res2, 2); Assert.AreEqual(res3, 1); Assert.AreEqual(resAll, 5); }
public void Can_Retrieve_Image_Data() { // Организация - создание объекта phone с данными изображения Phone phone = new Phone { PhoneId = 2, Mark = "Марка2", ImageData = new byte[] { }, ImageMimeType = "image/png" }; // Организация - создание имитированного хранилища Mock <IPhoneRepository> mock = new Mock <IPhoneRepository>(); mock.Setup(m => m.Phones).Returns(new List <Phone> { new Phone { PhoneId = 1, Mark = "Марка1" }, phone, new Phone { PhoneId = 3, Mark = "Марка3" } }.AsQueryable()); // Организация - создание контроллера PhonesController controller = new PhonesController(mock.Object); // Действие - вызов метода действия GetImage() ActionResult result = controller.GetImage(2); // Утверждение Assert.IsNotNull(result); Assert.IsInstanceOfType(result, typeof(FileResult)); Assert.AreEqual(phone.ImageMimeType, ((FileResult)result).ContentType); }
public void Can_Send_Pagination_View_Model() { Mock <IPhoneRepository> mock = new Mock <IPhoneRepository>(); mock.Setup(m => m.Phones).Returns(new List <Phone> { new Phone { PhoneId = 1, Mark = "Sony1" }, new Phone { PhoneId = 2, Mark = "Sony2" }, new Phone { PhoneId = 3, Mark = "Sony3" }, new Phone { PhoneId = 4, Mark = "Sony4" }, new Phone { PhoneId = 5, Mark = "Sony5" } }); PhonesController controller = new PhonesController(mock.Object); controller.pageSize = 3; PhonesListViewModel result = (PhonesListViewModel)controller.List(null, 2).Model; PagingInfo pagingInfo = result.PagingInfo; Assert.AreEqual(pagingInfo.CurrentPage, 2); Assert.AreEqual(pagingInfo.ItemsPerPage, 3); Assert.AreEqual(pagingInfo.TotalItems, 5); Assert.AreEqual(pagingInfo.TotalPages, 2); }
private static void RemoveDevice(PhonesController phones_ctrl) { Console.Clear(); Console.WriteLine("Выберите название и нажмите Enter:"); //Если список смартфонов пуст, возвращаемся в меню if (phones_ctrl.Phones.Count == 0) { Console.WriteLine("Список смартфонов пуст. Нажмите Enter чтобы продолжить."); Console.ReadLine(); return; } for (int i = 0; i < phones_ctrl.Phones.Count; i++) { Console.WriteLine($"{i + 1} - {phones_ctrl.Phones[i]}"); } int numPhoneforRemove; while (true) { if (int.TryParse(Console.ReadLine(), out int numPhone) && numPhone <= phones_ctrl.Phones.Count) { numPhoneforRemove = numPhone - 1; var phoneName = phones_ctrl.Phones[numPhone - 1].Name; Console.WriteLine($"Вы выбрали: {phoneName}"); phones_ctrl.AddnSetCurrent(phoneName); break; } else { Console.WriteLine("Некорректный ввод!"); } } var models_controller = new ModelsController(phones_ctrl.current_phone); if (models_controller.Models.Count == 0) { Console.WriteLine($"У {phones_ctrl.current_phone.Name} не найдено моделей. Нажмите любую кнопку чтобы продолжить."); Console.ReadKey(); return; } Console.WriteLine("Для удаления выберите модель и нажмите Enter."); //models_controller.RemoveModel(2); for (int i = 0; i < models_controller.Models.Count; i++) { Console.WriteLine($"{i + 1} - {models_controller.Models[i]}"); } string modelName; while (true) { if (int.TryParse(Console.ReadLine(), out int numModel) && numModel <= models_controller.Models.Count) { modelName = models_controller.Models[numModel - 1].Name; models_controller.RemoveModel(numModel - 1); break; } else { Console.WriteLine("Некорректный ввод!"); } } var characteristicksCtrl = new CharactersController(modelName); characteristicksCtrl.Remove(); if (models_controller.Models.Count == 0) { phones_ctrl.RemovePhone(numPhoneforRemove, true); } Console.WriteLine($"Модель {modelName} удален. Нажмите Enter кнопку чтобы продолжить."); Console.ReadLine(); }
private static void PrintDevice(PhonesController phones_ctrl) { Console.Clear(); Console.WriteLine("Выберите название и нажмите Enter:"); for (int i = 0; i < phones_ctrl.Phones.Count; i++) { Console.WriteLine($"{i + 1} - {phones_ctrl.Phones[i]}"); } while (true) { if (int.TryParse(Console.ReadLine(), out int numPhone) && numPhone <= phones_ctrl.Phones.Count) { var phoneName = phones_ctrl.Phones[numPhone - 1].Name; Console.WriteLine($"Вы выбрали: {phoneName}"); phones_ctrl.AddnSetCurrent(phoneName); break; } else { Console.WriteLine("Некорректный ввод!"); } } var models_controller = new ModelsController(phones_ctrl.current_phone); if (models_controller.Models.Count == 0) { Console.WriteLine($"У {phones_ctrl.current_phone.Name} не найдено моделей. Нажмите любую кнопку чтобы продолжить."); Console.ReadKey(); return; } Console.WriteLine("Выберите модель и нажмите Enter."); //models_controller.RemoveModel(2); for (int i = 0; i < models_controller.Models.Count; i++) { Console.WriteLine($"{i+1} - {models_controller.Models[i]}"); } string modelName; while (true) { if (int.TryParse(Console.ReadLine(), out int numModel) && numModel <= models_controller.Models.Count) { modelName = models_controller.Models[numModel - 1].Name; break; } else { Console.WriteLine("Некорректный ввод!"); } } var characteristicksCtrl = new CharactersController(modelName); var Characteristick = characteristicksCtrl.Characteristic; Console.WriteLine($"Экран: {Characteristick.Screen}"); Console.WriteLine($"Камера: {Characteristick.Camera}"); Console.WriteLine($"Память: {Characteristick.Memory}"); Console.WriteLine($"Hardware: {Characteristick.Hardware}"); Console.WriteLine($"Аккумулятор: {Characteristick.Battery}"); Console.WriteLine("Нажмите Enter кнопку чтобы продолжить."); Console.ReadLine(); }
private static void SetNewDevice(PhonesController phones_ctrl) { Console.WriteLine("Введите название смартфона: "); string smartName; while (true) { smartName = Console.ReadLine(); if (string.IsNullOrEmpty(smartName)) { Console.WriteLine("Название не может быть пустым."); } else { break; } } phones_ctrl.AddnSetCurrent(smartName); Console.WriteLine($"Введите модель {smartName}:"); var modelName = Console.ReadLine(); var model = new Model(phones_ctrl.current_phone, modelName); var model_ctrl = new ModelsController(phones_ctrl.current_phone); model_ctrl.Add(model); if (!model_ctrl.newModel) { Console.WriteLine("Вы ввели существующую модель. Е - изменить характеристики моделя. Q - отменить действие."); while (true) { var key = Console.ReadKey(); if (key.Key == ConsoleKey.E) { break; } else if (key.Key == ConsoleKey.Q) { return; } else { Console.WriteLine("Неправильный ввод."); } } } Console.WriteLine("Введите параметры экрана [пример: 6.53\", 2340x1080 (19.5:9)]: "); var screen = Console.ReadLine(); Console.WriteLine("Введите параметры камеры [пример: 4 модуля, fullHD 60 к/с, видео 4K]: "); var camera = Console.ReadLine(); Console.WriteLine("Введите параметры памяти [пример: 64 ГБ, слот для карты microSD]: "); var memory = Console.ReadLine(); Console.WriteLine("Введите параметры hardware [пример: 8 ядер(а), 2 ГГц, оперативка 6 ГБ]: "); var hardware = Console.ReadLine(); Console.WriteLine("Введите параметры аккумулятора [пример: 4500 мАч]: "); var battery = Console.ReadLine(); var characteristiscks = new Characteristic(screen, camera, memory, hardware, battery); var characteristick_ctrl = new CharactersController(model.Name); characteristick_ctrl.Add(characteristiscks); Console.WriteLine("Новый смартфон добавлен. Нажмите Enter кнопку чтобы продолжить."); Console.ReadLine(); }
public PhonesControllerTests() { controller = new PhonesController(moq.Object); }