public void TestDeleteAviary() { var zoo = new Zoo("name", "address"); //Корректное удаление существующего пустого закрытого вольера var aviary = new Cage(CageType.WithRocks); zoo.AddAviary(aviary); zoo.CloseAviary(aviary.Number); Assert.AreEqual(true, zoo.DeleteAviary(aviary.Number)); Assert.AreEqual(null, zoo.FindAviary(aviary.Number)); //Попытка удалить незакрытый вольер System.Threading.Thread.Sleep(10); var aviary2 = new Cage(CageType.WithTrees); zoo.AddAviary(aviary2); Assert.AreEqual(false, zoo.DeleteAviary(aviary2.Number)); //Попытка удалить не существующий вольер try { zoo.DeleteAviary("any number"); Assert.Fail(); } catch (ArgumentException) { } //Попытка удалить уже удаленный вольер try { zoo.DeleteAviary(aviary.Number); Assert.Fail(); } catch (ArgumentException) { } }
public void TestSerializeZoo() { var serialaizer = new ZooSerializer(); //Успешная попытка сериализации пустого зоопарка var zoo = new Zoo("name", "address"); serialaizer.SerializeZoo(zoo); Assert.AreEqual(true, File.Exists(serialaizer.FileName)); var zoo2 = serialaizer.DeserializeZoo(); Assert.AreEqual(zoo.Name, zoo2.Name); Assert.AreEqual(zoo.Address, zoo2.Address); Assert.AreEqual(0, zoo2.GetListOfAviaries().Count); Assert.AreEqual(0, zoo2.GetListOfAnimals().Count); //Успешная попытка сериализации непустого зоопарка zoo.AddAviary(new Cage(CageType.WithRocks)); zoo.AddAviary(new Pool(PoolType.IndoorsPool)); zoo.AddAviary(new Yard(YardType.Plain)); zoo.SettleAnimal(new Mammal(MammalDetachment.Carnivora, "family1", "genus1", "species1"), zoo.GetListOfAviaries(AviaryType.Cage).First()); zoo.SettleAnimal(new Bird(BirdDetachment.Anseriformes, "family2", "genus2", "species2"), zoo.GetListOfAviaries(AviaryType.Pool).First()); zoo.SettleAnimal(new Mammal(MammalDetachment.Artiodactyla, "family3", "genus3", "species3"), zoo.GetListOfAviaries(AviaryType.Yard).First()); serialaizer.SerializeZoo(zoo); zoo2 = serialaizer.DeserializeZoo(); Assert.AreEqual(3, zoo2.GetListOfAviaries().Count); Assert.AreEqual(3, zoo2.GetListOfAnimals().Count); Assert.AreEqual(true, zoo2.GetListOfAviaries(AviaryType.Cage).All(aviary => (aviary as Cage).Kind == CageType.WithRocks)); Assert.AreEqual(true, zoo2.GetListOfAviaries(AviaryType.Pool).All(aviary => (aviary as Pool).Kind == PoolType.IndoorsPool)); Assert.AreEqual(true, zoo2.GetListOfAviaries(AviaryType.Yard).All(aviary => (aviary as Yard).Kind == YardType.Plain)); Assert.AreEqual(true, zoo2.GetListOfAnimals(AnimalClass.Mammal).Any(animal => (animal as Mammal).Detachment == MammalDetachment.Carnivora)); Assert.AreEqual(true, zoo2.GetListOfAnimals(AnimalClass.Bird).Any(animal => (animal as Bird).Detachment == BirdDetachment.Anseriformes)); Assert.AreEqual(true, zoo2.GetListOfAnimals(AnimalClass.Mammal).Any(animal => (animal as Mammal).Detachment == MammalDetachment.Artiodactyla)); //Неуспешная попытка сериализации несуществующего зоопарка try { serialaizer.SerializeZoo(null); Assert.Fail(); } catch (ArgumentException) { } //Неуспешная попытка сериализации зоопарка в файл с некорректным путем try { serialaizer.FileName = @"??"; serialaizer.SerializeZoo(zoo); Assert.Fail(); } catch (ArgumentException) { } }
public void TestEvictAnimal() { var zoo = new Zoo("name", "address"); var aviary1 = new Cage(CageType.WithRocks); var animal1 = new Mammal(MammalDetachment.Artiodactyla, "family1", "genus1", "species1"); zoo.AddAviary(aviary1); zoo.SettleAnimal(animal1, aviary1); //Результат успешного выселения животного zoo.EvictAnimal(animal1); Assert.AreEqual(0, zoo.GetListOfAnimals().Count); //Попытка выселить несуществующее (пустое) животное try { zoo.EvictAnimal(null); Assert.Fail(); } catch (ArgumentException) { } //Попытка выселить отсутствующее в зоопарке животное try { zoo.EvictAnimal(animal1); Assert.Fail(); } catch (ArgumentException) { } }
public void TestAddAviary() { var zoo = new Zoo("name", "address"); //Корректное добавление var aviary = new Cage(CageType.WithRocks); zoo.AddAviary(aviary); Assert.AreEqual(1, zoo.GetListOfAviaries().Count); //Попытка добавить несуществующий вольер try { zoo.AddAviary(null); Assert.Fail(); } catch (ArgumentException) { } }
public void TestFindAviary() { var zoo = new Zoo("name", "address"); //Поиск существующего вольера var aviary = new Cage(CageType.WithRocks); zoo.AddAviary(aviary); Assert.AreEqual(aviary, zoo.FindAviary(aviary.Number)); //Поиск несуществующего вольера Assert.AreEqual(null, zoo.FindAviary("any number")); }
public void TestGetListOfAviariesByType() { var zoo = new Zoo("name", "address"); //Количество вольеров имеющегося в зоопарке типа вольеров var aviary1 = new Cage(CageType.WithRocks); zoo.AddAviary(aviary1); Assert.AreEqual(1, zoo.GetListOfAviaries(AviaryType.Cage).Count); //Количество вольеров отсутствующего в зоопарке типа вольеров Assert.AreEqual(0, zoo.GetListOfAviaries(AviaryType.Aquarium).Count); }
public void TestSettleAnimal() { var zoo = new Zoo("name", "address"); //Корректное заселение существующего животного в существующий подходящий пустой вольер var aviary = new Cage(CageType.WithRocks, 10, 2); zoo.AddAviary(aviary); var animal = new Mammal(MammalDetachment.Artiodactyla, "family1", "genus1", "species1"); Assert.AreEqual(true, zoo.SettleAnimal(animal, zoo.FindAviary(aviary.Number))); //Корректное заселение существующего животного в существующий подходящий не до конца заполненный вольер var animal2 = new Mammal(MammalDetachment.Artiodactyla, "family1", "genus1", "species2"); Assert.AreEqual(true, zoo.SettleAnimal(animal2, zoo.FindAviary(aviary.Number))); //Попытка заселения существующего животного в существующий не подходящий вольер var animal3 = new Mammal(MammalDetachment.Carnivora, "family3", "genus3", "species3"); Assert.AreEqual(false, zoo.SettleAnimal(animal3, zoo.FindAviary(aviary.Number))); //Попытка заселения существующего животного в существующий подходящий, но полностью заполненный вольер var animal4 = new Mammal(MammalDetachment.Artiodactyla, "family1", "genus1", "species2"); Assert.AreEqual(false, zoo.SettleAnimal(animal4, zoo.FindAviary(aviary.Number))); //Попытка заселения не существующего животного в существующий вольер try { zoo.SettleAnimal(null, zoo.FindAviary(aviary.Number)); Assert.Fail(); } catch (ArgumentException) { } //Попытка заселения существующего животного в несуществующий вольер try { zoo.SettleAnimal(animal, null); Assert.Fail(); } catch (ArgumentException) { } //Попытка поселить существующее животное в существующий, но отсутствующий в данном зоопарке вольер try { zoo.SettleAnimal(animal, new Cage(CageType.WithRocks, 10, 2)); Assert.Fail(); } catch (ArgumentException) { } }
public void TestToString() { //Корректное формирование информационной строки var zoo = new Zoo("name", "address"); var aviary1 = new Cage(CageType.WithRocks); var animal1 = new Mammal(MammalDetachment.Artiodactyla, "family1", "genus1", "species1"); zoo.AddAviary(aviary1); zoo.SettleAnimal(animal1, aviary1); var str = "Название: name\nАдрес: address" + "\nКоличество вольеров: 1 Общая популяция: 1"; Assert.AreEqual(str, zoo.ToString()); }
public void TestGetListOfAnimalsByClass() { var zoo = new Zoo("name", "address"); //Количество животных имеющегося в зоопарке класса var aviary1 = new Cage(CageType.WithRocks); var animal1 = new Mammal(MammalDetachment.Artiodactyla, "family1", "genus1", "species1"); zoo.AddAviary(aviary1); zoo.SettleAnimal(animal1, aviary1); Assert.AreEqual(1, zoo.GetListOfAnimals(AnimalClass.Mammal).Count); //Количество животных отсутствующего в зоопарке класса Assert.AreEqual(0, zoo.GetListOfAnimals(AnimalClass.Bird).Count); }
public void TestGetFullListOfAviaries() { var zoo = new Zoo("name", "address"); //Количество вольеров в непустом зоопарке var aviary1 = new Cage(CageType.WithRocks); zoo.AddAviary(aviary1); Assert.AreEqual(1, zoo.GetListOfAviaries().Count); //Количество вольеров в пустом зоопарке zoo.CloseAviary(aviary1.Number); zoo.DeleteAviary(aviary1.Number); Assert.AreEqual(0, zoo.GetListOfAviaries().Count); }
public void TestFindAnimal() { var zoo = new Zoo("name", "address"); //Успешный поиск имеющегося в зоопарке животного var aviary = new Cage(CageType.WithRocks); var animal = new Mammal(MammalDetachment.Artiodactyla, "family1", "genus1", "species1"); zoo.AddAviary(aviary); zoo.SettleAnimal(animal, zoo.FindAviary(aviary.Number)); Assert.AreEqual(animal, zoo.FindAnimal(animal.Id)); //Неуспешный поиск отсутствующего в зоопарке животного Assert.AreEqual(null, zoo.FindAnimal("any id")); }
public void TestGetFullListOfAnimals() { var zoo = new Zoo("name", "address"); //Количество животных в непустом зоопарке var aviary1 = new Cage(CageType.WithRocks); var animal1 = new Mammal(MammalDetachment.Artiodactyla, "family1", "genus1", "species1"); zoo.AddAviary(aviary1); zoo.SettleAnimal(animal1, aviary1); Assert.AreEqual(1, zoo.GetListOfAnimals().Count); //Количество животных в пустом зоопарке zoo.EvictAnimal(animal1); Assert.AreEqual(0, zoo.GetListOfAnimals().Count); }
private void AddAviary() { Console.Clear(); Console.WriteLine("Выберите тип вольера"); Console.WriteLine("------------------------------------------------"); Console.WriteLine("1. {0} (Клетка) - (по умолчанию)", AviaryType.Cage.ToString()); Console.WriteLine("2. {0} (Загон)", AviaryType.Yard.ToString()); Console.WriteLine("3. {0} (Водоем)", AviaryType.Pool.ToString()); Console.WriteLine("4. {0} (Аквариум)", AviaryType.Aquarium.ToString()); Console.WriteLine("5. {0} (Стеклянный вольер)", AviaryType.GlassAviary.ToString()); Console.WriteLine("------------------------------------------------"); Console.Write("Ваш выбор:"); Aviary aviary; switch (Console.ReadLine()) { case "1": default: aviary = CreateCage(); break; case "2": aviary = CreateYard(); break; case "3": aviary = CreatePool(); break; case "4": aviary = CreateAquarium(); break; case "5": aviary = CreateGlassAviary(); break; } _zoo.AddAviary(aviary); Console.WriteLine("------------------------------------------------"); Console.WriteLine("Добавлен новый вольер"); Console.WriteLine("------------------------------------------------"); Console.WriteLine(aviary.ToString()); Console.WriteLine("------------------------------------------------"); Console.WriteLine("Нажмите любую клавишу для возврата в меню..."); Console.ReadKey(); }
public Zoo ToZoo(ZooDTO zooDTO) { try { if (zooDTO == null) { throw new ArgumentException("Пустой DTO объект (зоопарк)!!!"); } var zoo = new Zoo(zooDTO.Name, zooDTO.Address); var converter = new AviaryConverter(); foreach (var aviary in zooDTO.Aviaries) { zoo.AddAviary(converter.ToAviary(aviary)); } return(zoo); } catch (ArgumentException) { throw; } }
public void TestCloseAviary() { var zoo = new Zoo("name", "address"); //Корректное закрытие открытого вольера var aviary = new Cage(CageType.WithRocks); zoo.AddAviary(aviary); Assert.AreEqual(true, zoo.CloseAviary(aviary.Number)); Assert.AreEqual(AviaryStatus.Closed, zoo.FindAviary(aviary.Number).Status); //Попытка закрыть уже закрытый вольер Assert.AreEqual(false, zoo.CloseAviary(aviary.Number)); //Попытка закрыть несуществующий вольер try { zoo.CloseAviary("any number"); Assert.Fail(); } catch (ArgumentException) { } }
private void GenerateZoo() { _zoo = new Zoo("АО \"Наш новый зоопарк\"", "Россия, г.Н-ск, ул.Новая, 50"); var aviary1 = new Yard(YardType.Plain); System.Threading.Thread.Sleep(20); var aviary2 = new Cage(CageType.WithTrees); System.Threading.Thread.Sleep(20); var aviary3 = new Cage(CageType.WithRocks, 300.00, 3); System.Threading.Thread.Sleep(20); var aviary4 = new Pool(PoolType.Pond, 400, 10); System.Threading.Thread.Sleep(20); var aviary5 = new Aquarium(AquariumType.SeaWater, 5, 10); System.Threading.Thread.Sleep(20); var aviary6 = new GlassAviary(GlassAviaryType.WithWater); System.Threading.Thread.Sleep(20); aviary1.SettleAnimal(new Mammal(MammalDetachment.Artiodactyla, "Оленьи", "Олени", "Благородный олень")); System.Threading.Thread.Sleep(20); aviary1.SettleAnimal(new Mammal(MammalDetachment.Artiodactyla, "Оленьи", "Олени", "Пятнистый олень")); System.Threading.Thread.Sleep(20); aviary1.SettleAnimal(new Mammal(MammalDetachment.Artiodactyla, "Оленьи", "Олени", "Пятнистый олень")); System.Threading.Thread.Sleep(20); aviary2.SettleAnimal(new Mammal(MammalDetachment.Primates, "Гоминиды", "Орангутаны", "Суматранский орангутан")); System.Threading.Thread.Sleep(20); aviary3.SettleAnimal(new Mammal(MammalDetachment.Carnivora, "Кошачьи", "Пантеры", "Западноафриканский лев")); System.Threading.Thread.Sleep(20); aviary3.SettleAnimal(new Mammal(MammalDetachment.Carnivora, "Кошачьи", "Пантеры", "Западноафриканский лев")); System.Threading.Thread.Sleep(20); aviary4.SettleAnimal(new Bird(BirdDetachment.Anseriformes, "Утиные", "Лебеди", "Черный лебедь")); System.Threading.Thread.Sleep(20); aviary4.SettleAnimal(new Bird(BirdDetachment.Anseriformes, "Утиные", "Лебеди", "Лебедь-шипун")); System.Threading.Thread.Sleep(20); aviary4.SettleAnimal(new Bird(BirdDetachment.Anseriformes, "Утиные", "Лебеди", "Лебедь-трубач")); System.Threading.Thread.Sleep(20); aviary5.SettleAnimal(new Fish(FishDetachment.Salmoniformes, "Лососёвые", "Лососи", "Лосось атлантический")); System.Threading.Thread.Sleep(20); aviary5.SettleAnimal(new Fish(FishDetachment.Salmoniformes, "Лососёвые", "Лососи", "Лосось атлантический")); System.Threading.Thread.Sleep(20); aviary5.SettleAnimal(new Fish(FishDetachment.Salmoniformes, "Лососёвые", "Лососи", "Лосось атлантический")); System.Threading.Thread.Sleep(20); aviary5.SettleAnimal(new Fish(FishDetachment.Salmoniformes, "Лососёвые", "Лососи", "Кумжа")); System.Threading.Thread.Sleep(20); aviary5.SettleAnimal(new Amphibian(AmphibianDetachment.Urodela, "Саламандровые", "Малые тритоны", "Обыкновенный тритон")); System.Threading.Thread.Sleep(20); aviary5.SettleAnimal(new Amphibian(AmphibianDetachment.Urodela, "Саламандровые", "Малые тритоны", "Обыкновенный тритон")); _zoo.AddAviary(aviary1); _zoo.AddAviary(aviary2); _zoo.AddAviary(aviary3); _zoo.AddAviary(aviary4); _zoo.AddAviary(aviary5); _zoo.AddAviary(aviary6); Console.Clear(); Console.WriteLine("------------------------------------------------"); Console.WriteLine("Сгенерирован зоопарк"); Console.WriteLine("С названием:{0} и \nадресом:{1}", _zoo.Name, _zoo.Address); Console.WriteLine("------------------------------------------------"); Console.WriteLine("Нажмите любую клавишу для возврата в меню..."); Console.ReadKey(); }
public void TestTransferAnimal() { var zoo = new Zoo("name", "address"); //Успешная попытка переместить животное в существующий подходящий вольер var aviary1 = new Cage(CageType.WithRocks); var animal1 = new Mammal(MammalDetachment.Artiodactyla, "family1", "genus1", "species1"); zoo.AddAviary(aviary1); zoo.SettleAnimal(animal1, aviary1); var aviary2 = new Cage(CageType.WithTrees, 5, 1); zoo.AddAviary(aviary2); Assert.AreEqual(true, zoo.TransferAnimal(zoo.FindAnimal(animal1.Id), zoo.FindAviary(aviary2.Number))); //Неуспешная попытка переместить животное в существующий не подходящий вольер var aviary3 = new Pool(PoolType.IndoorsPool); zoo.AddAviary(aviary3); Assert.AreEqual(false, zoo.TransferAnimal(zoo.FindAnimal(animal1.Id), zoo.FindAviary(aviary3.Number))); //Попытка переместить отсутствующее в зоопарке животное(несуществующее) в имеющийся вольер var animal2 = new Mammal(MammalDetachment.Artiodactyla, "family1", "genus1", "species1"); try { zoo.TransferAnimal(zoo.FindAnimal(animal2.Id), zoo.FindAviary(aviary1.Number)); Assert.Fail(); } catch (ArgumentException) { } //Попытка переместить отсутствующее в зоопарке животное в имеющийся вольер try { zoo.TransferAnimal(animal2, zoo.FindAviary(aviary1.Number)); Assert.Fail(); } catch (ArgumentException) { } //Попытка переместить имеющееся в зоопарке животное в отсутствующий (несуществующий) вольер zoo.SettleAnimal(animal2, aviary1); var aviary4 = new Pool(PoolType.IndoorsPool); try { zoo.TransferAnimal(zoo.FindAnimal(animal2.Id), zoo.FindAviary(aviary4.Number)); Assert.Fail(); } catch (ArgumentException) { } //Попытка переместить имеющееся в зоопарке животное в отсутствующий вольер try { zoo.TransferAnimal(zoo.FindAnimal(animal2.Id), aviary4); Assert.Fail(); } catch (ArgumentException) { } //Попытка переместить имеющееся животное в имеющийся подходящий, но полностью заполненный вольер Assert.AreEqual(false, zoo.TransferAnimal(zoo.FindAnimal(animal2.Id), zoo.FindAviary(aviary2.Number))); //Попытка переместить имеющееся животное в имеющийся подходящий пустой, но закрытый вольер zoo.EvictAnimal(animal1); zoo.CloseAviary(aviary2.Number); Assert.AreEqual(false, zoo.TransferAnimal(zoo.FindAnimal(animal2.Id), zoo.FindAviary(aviary2.Number))); }