public void TestEvictAnimal() { var aviary = new GlassAviary(GlassAviaryType.WithWater); //Успешная попытка выселить существующее животное var animal1 = new Amphibian(AmphibianDetachment.Urodela, "семейство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 TestOpenAviary() { var aviary = new GlassAviary(GlassAviaryType.WithoutWater); //Успешное открытие закрытого вольера aviary.Close(); Assert.AreEqual(true, aviary.Open()); Assert.AreEqual(AviaryStatus.Opened, aviary.Status); //Попытка открыть уже открытый вольер Assert.AreEqual(false, aviary.Open()); }
public void TestSimpleConstructor() { //Проверка параметров корректно созданного вольера var aviary = new GlassAviary(GlassAviaryType.WithWater); Assert.AreNotEqual("", aviary.Number); Assert.AreEqual(AviaryStatus.Opened, aviary.Status); Assert.AreEqual(5, aviary.Capacity); Assert.AreEqual(5, aviary.FreePlaces); Assert.AreEqual(GlassAviaryType.WithWater, aviary.Kind); Assert.AreEqual(12, aviary.Volume); }
public void TestFindAnimal() { var aviary = new GlassAviary(GlassAviaryType.WithWater); //Успешный поиск существующего животного var animal1 = new Reptile(ReptileDetachment.Crocodilia, "семейство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 GlassAviary(GlassAviaryType.WithoutWater); //Количество обитателей непустого вольера var animal1 = new Mammal(MammalDetachment.Chiroptera, "семейство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 GlassAviary(GlassAviaryType.WithoutWater, 10, 5); var animal = new Mammal(MammalDetachment.Chiroptera, "семейство1", "род1", "вид1"); aviary.SettleAnimal(animal); var str = "Номер:" + aviary.Number + " Тип:GlassAviary Статус:Opened" + "\nВместимость:5 особей, свободно:4 мест" + "\nОбъем:10 куб.м." + "\nРазновидность:WithoutWater"; Assert.AreEqual(str, aviary.ToString()); }
public void TestCloseAviary() { var aviary = new GlassAviary(GlassAviaryType.WithWater); //Успешное закрытие вольера Assert.AreEqual(true, aviary.Close()); Assert.AreEqual(AviaryStatus.Closed, aviary.Status); //Попытка закрыть уже закрытый вольер Assert.AreEqual(false, aviary.Close()); //Попытка закрыть непустой вольер aviary.Open(); aviary.SettleAnimal(new Reptile(ReptileDetachment.Squamata, "семейство1", "род1", "вид1")); Assert.AreEqual(false, aviary.Close()); }
public void TestSettleAnimal() { var aviary = new GlassAviary(GlassAviaryType.WithWater, 10, 2); //Успешная попытка заселить животное в подходящий пустой вольер var animal1 = new Mammal(MammalDetachment.Rodentia, "семейство1", "род1", "вид1"); Assert.AreEqual(true, aviary.SettleAnimal(animal1)); //Успешная попытка заселить животное в подходящий непустой вольер var animal2 = new Mammal(MammalDetachment.Rodentia, "семейство1", "род1", "вид2"); Assert.AreEqual(true, aviary.SettleAnimal(animal2)); //Неуспешная попытка заселить животное в неподходящий непустой вольер var animal3 = new Bird(BirdDetachment.Struthioniformes, "Страусовые", "Страусы", "Страус"); Assert.AreEqual(false, aviary.SettleAnimal(animal3)); //Неуспешная попытка заселить животное в подходящий полностью заполненный вольер var animal4 = new Mammal(MammalDetachment.Rodentia, "семейство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 void TestFullVersionConstructor() { //Проверка параметров корректно созданного вольера var aviary = new GlassAviary(GlassAviaryType.WithoutWater, 10, 3); Assert.AreNotEqual("", aviary.Number); Assert.AreEqual(AviaryStatus.Opened, aviary.Status); Assert.AreEqual(3, aviary.Capacity); Assert.AreEqual(3, aviary.FreePlaces); Assert.AreEqual(GlassAviaryType.WithoutWater, aviary.Kind); Assert.AreEqual(10, aviary.Volume); //Попытка создать вольер с недопустимыми значениями параметров try { var aviary2 = new GlassAviary(GlassAviaryType.WithoutWater, -1, 0); Assert.Fail(); } catch (ArgumentException) { } }
public void TestIsCorrectForSettlement() { var aviary = new GlassAviary(GlassAviaryType.WithoutWater); //Успешная проверка на допустимость заселения животного в подходящий пустой вольер var animal1 = new Mammal(MammalDetachment.Rodentia, "семейство1", "род1", "вид1"); var animal2 = new Mammal(MammalDetachment.Chiroptera, "семейство2", "род2", "вид2"); var animal3 = new Amphibian(AmphibianDetachment.Anura, "семейство3", "род3", "вид3"); var animal4 = new Reptile(ReptileDetachment.Testudinata, "семейство4", "род4", "вид4"); Assert.AreEqual(true, aviary.IsCorrectForSettlement(animal1)); Assert.AreEqual(true, aviary.IsCorrectForSettlement(animal2)); Assert.AreEqual(true, aviary.IsCorrectForSettlement(animal3)); Assert.AreEqual(true, aviary.IsCorrectForSettlement(animal4)); //Успешная проверка на допустимость заселения животного в подходящий непустой вольер aviary.SettleAnimal(animal1); var animal5 = new Mammal(MammalDetachment.Rodentia, "семейство1", "род1", "вид2"); Assert.AreEqual(true, aviary.IsCorrectForSettlement(animal5)); //Неуспешная проверка на допустимость заселения животного в неподходящий пустой вольер aviary.EvictAnimal(animal1); var animal6 = new Fish(FishDetachment.Rajiformes, "семейство8", "род8", "вид8"); Assert.AreEqual(false, aviary.IsCorrectForSettlement(animal6)); //Неуспешная проверка на допустимость заселения животного в подходящий по типу вольер, но занятый несовместимым животным aviary.SettleAnimal(animal1); Assert.AreEqual(false, aviary.IsCorrectForSettlement(animal4)); //Неуспешная проверка на допустимость заселения несуществующего животного try { aviary.IsCorrectForSettlement(null); Assert.Fail(); } catch (ArgumentException) { } }
public Aviary ToAviary(AviaryDTO aviaryDTO) { try { if (aviaryDTO == null || !(aviaryDTO is GlassAviaryDTO)) { throw new ArgumentException("Пустой DTO объект (вольер) или не подходящего типа!!!"); } var aviary = new GlassAviary((aviaryDTO as GlassAviaryDTO).Kind, (aviaryDTO as GlassAviaryDTO).Volume, aviaryDTO.Capacity); var converter = new AnimalConverter(); foreach (var inhabitant in aviaryDTO.Inhabitants) { aviary.SettleAnimal(converter.ToAnimal(inhabitant)); } return(aviary); } catch (ArgumentException) { throw; } }
//---------Вольеры public void AddAviary(object zoo, object type, object kind, double size, byte capacity) { Aviary aviary = null; switch ((type as AviaryTypeListElement).Type) { case AviaryType.Cage: if (size > 0 && capacity > 0) { aviary = new Cage((CageType)kind, size, capacity); } else { aviary = new Cage((CageType)kind); } break; case AviaryType.Yard: if (size > 0 && capacity > 0) { aviary = new Yard((YardType)kind, size, capacity); } else { aviary = new Yard((YardType)kind); } break; case AviaryType.Pool: if (size > 0 && capacity > 0) { aviary = new Pool((PoolType)kind, size, capacity); } else { aviary = new Pool((PoolType)kind); } break; case AviaryType.GlassAviary: if (size > 0 && capacity > 0) { aviary = new GlassAviary((GlassAviaryType)kind, size, capacity); } else { aviary = new GlassAviary((GlassAviaryType)kind); } break; case AviaryType.Aquarium: if (size > 0 && capacity > 0) { aviary = new Aquarium((AquariumType)kind, size, capacity); } else { aviary = new Aquarium((AquariumType)kind); } break; } (zoo as ZooListElement).Zoo.AddAviary(aviary); }
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(); }