Ejemplo n.º 1
0
        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) { }
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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"));
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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());
        }
Ejemplo n.º 7
0
        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());
        }
Ejemplo n.º 8
0
        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) { }
        }
Ejemplo n.º 9
0
        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) { }
        }
Ejemplo n.º 10
0
        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) { }
        }
Ejemplo n.º 11
0
 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;
     }
 }
Ejemplo n.º 12
0
        //---------Вольеры
        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);
        }
Ejemplo n.º 13
0
        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();
        }