public void TestEvictAnimal() { var aviary = new Yard(YardType.Rock); //Успешная попытка выселить существующее животное var animal1 = new Mammal(MammalDetachment.Carnivora, "семейство1", "род1", "вид1"); aviary.SettleAnimal(animal1); aviary.EvictAnimal(animal1); Assert.AreEqual(0, aviary.GetListOfInhabitants().Count); //Неуспешная попытка выселить несуществующее животное try { aviary.EvictAnimal(null); Assert.Fail(); } catch (ArgumentException) { } //Неуспешная попытка выселить отсутствующее в вольере животное try { aviary.EvictAnimal(animal1); Assert.Fail(); } catch (ArgumentException) { } }
public void TestIsCorrectForSettlement() { var aviary = new Yard(YardType.Plain); //Успешная проверка на допустимость заселения животного в подходящий пустой вольер var animal1 = new Mammal(MammalDetachment.Artiodactyla, "семейство1", "род1", "вид1"); var animal2 = new Mammal(MammalDetachment.Carnivora, "семейство2", "род2", "вид2"); var animal3 = new Mammal(MammalDetachment.Perissodactyla, "семейство3", "род3", "вид3"); var animal4 = new Mammal(MammalDetachment.Proboscidea, "семейство4", "род4", "вид4"); var animal5 = new Bird(BirdDetachment.Struthioniformes, "семейство5", "род5", "вид5"); Assert.AreEqual(true, aviary.IsCorrectForSettlement(animal1)); Assert.AreEqual(true, aviary.IsCorrectForSettlement(animal2)); Assert.AreEqual(true, aviary.IsCorrectForSettlement(animal3)); Assert.AreEqual(true, aviary.IsCorrectForSettlement(animal4)); Assert.AreEqual(true, aviary.IsCorrectForSettlement(animal5)); //Успешная проверка на допустимость заселения животного в подходящий непустой вольер aviary.SettleAnimal(animal1); var animal6 = new Mammal(MammalDetachment.Artiodactyla, "семейство1", "род1", "вид2"); Assert.AreEqual(true, aviary.IsCorrectForSettlement(animal6)); //Неуспешная проверка на допустимость заселения животного в неподходящий пустой вольер aviary.EvictAnimal(animal1); var animal7 = new Mammal(MammalDetachment.Chiroptera, "семейство7", "род7", "вид7"); Assert.AreEqual(false, aviary.IsCorrectForSettlement(animal7)); //Неуспешная проверка на допустимость заселения животного в подходящий по типу вольер, но занятый несовместимым животным aviary.SettleAnimal(animal1); Assert.AreEqual(false, aviary.IsCorrectForSettlement(animal4)); //Неуспешная проверка на допустимость заселения несуществующего животного try { aviary.IsCorrectForSettlement(null); Assert.Fail(); } catch (ArgumentException) { } }
public void TestFindAnimal() { var aviary = new Yard(YardType.Plain); //Успешный поиск существующего животного var animal1 = new Bird(BirdDetachment.Struthioniformes, "семейство1", "род1", "вид1"); aviary.SettleAnimal(animal1); Assert.AreEqual(animal1, aviary.FindAnimal(animal1.Id)); //Неуспешный поиск несуществующего животного Assert.AreEqual(null, aviary.FindAnimal("any id")); }
public void TestGetListOfInhabitants() { var aviary = new Yard(YardType.Plain); //Количество обитателей непустого вольера var animal1 = new Bird(BirdDetachment.Struthioniformes, "семейство1", "род1", "вид1"); aviary.SettleAnimal(animal1); Assert.AreEqual(1, aviary.GetListOfInhabitants().Count); //Количество обитателей пустого вольера aviary.EvictAnimal(animal1); Assert.AreEqual(0, aviary.GetListOfInhabitants().Count); }
public void TestToString() { //Корректное формирование информационной строки var aviary = new Yard(YardType.Plain, 500, 10); var animal = new Bird(BirdDetachment.Struthioniformes, "семейство1", "род1", "вид1"); aviary.SettleAnimal(animal); var str = "Номер:" + aviary.Number + " Тип:Yard Статус:Opened" + "\nВместимость:10 особей, свободно:9 мест" + "\nПлощадь:500 кв.м." + "\nРазновидность:Plain"; Assert.AreEqual(str, aviary.ToString()); }
public void TestCloseAviary() { var aviary = new Yard(YardType.Rock); //Успешное закрытие вольера Assert.AreEqual(true, aviary.Close()); Assert.AreEqual(AviaryStatus.Closed, aviary.Status); //Попытка закрыть уже закрытый вольер Assert.AreEqual(false, aviary.Close()); //Попытка закрыть непустой вольер aviary.Open(); aviary.SettleAnimal(new Mammal(MammalDetachment.Perissodactyla, "семейство1", "род1", "вид1")); Assert.AreEqual(false, aviary.Close()); }
public void TestSettleAnimal() { var aviary = new Yard(YardType.Forest, 100, 2); //Успешная попытка заселить животное в подходящий пустой вольер var animal1 = new Mammal(MammalDetachment.Artiodactyla, "семейство1", "род1", "вид1"); Assert.AreEqual(true, aviary.SettleAnimal(animal1)); //Успешная попытка заселить животное в подходящий непустой вольер var animal2 = new Mammal(MammalDetachment.Artiodactyla, "семейство1", "род1", "вид2"); Assert.AreEqual(true, aviary.SettleAnimal(animal2)); //Неуспешная попытка заселить животное в неподходящий непустой вольер var animal3 = new Bird(BirdDetachment.Struthioniformes, "семейство3", "род3", "вид3"); Assert.AreEqual(false, aviary.SettleAnimal(animal3)); //Неуспешная попытка заселить животное в подходящий полностью заполненный вольер var animal4 = new Mammal(MammalDetachment.Artiodactyla, "семейство1", "род1", "вид2"); Assert.AreEqual(false, aviary.SettleAnimal(animal4)); //Неуспешная попытка заселить животное в подходящий закрытый вольер var ids = new List <string>(); foreach (var animal in aviary.GetListOfInhabitants()) { ids.Add(animal.Id); } foreach (var id in ids) { aviary.EvictAnimal(aviary.FindAnimal(id)); } aviary.Close(); Assert.AreEqual(false, aviary.SettleAnimal(animal4)); //Неуспешная попытка заселить несуществующее животное в пустой вольер aviary.Open(); try { aviary.SettleAnimal(null); Assert.Fail(); } catch (ArgumentException) { } }
public Aviary ToAviary(AviaryDTO aviaryDTO) { try { if (aviaryDTO == null || !(aviaryDTO is YardDTO)) { throw new ArgumentException("Пустой DTO объект (вольер) или не подходящего типа!!!"); } var aviary = new Yard((aviaryDTO as YardDTO).Kind, (aviaryDTO as YardDTO).Square, aviaryDTO.Capacity); var converter = new AnimalConverter(); foreach (var inhabitant in aviaryDTO.Inhabitants) { aviary.SettleAnimal(converter.ToAnimal(inhabitant)); } return(aviary); } catch (ArgumentException) { throw; } }
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(); }