Example #1
0
        public void WorkTests()
        {
            var binSer  = new BinarySerializer <Plane <ReactiveEngine> >();
            var xmlSer  = new XmlCustomSerializer <Plane <ReactiveEngine> >();
            var jsonSer = new JsonSerializer <Plane <ReactiveEngine> >();

            var aer = new Aeroport <Plane <ReactiveEngine> >("Кольцово");

            for (int i = 0; i < 10; ++i)
            {
                aer.Add(new Plane <ReactiveEngine>(100, 20000, "SuperJet", new ReactiveEngine("DoublePower")));
            }
            var aerCopy = aer;

            binSer.Serialize(aer, "aerBinary.dat");
            aer = binSer.Deserialize("aerBinary.dat");

            xmlSer.Serialize(aer, "aerXML.xml");
            aer = xmlSer.Deserialize("aerXML.xml");


            jsonSer.Serialize(aer, "aerjson.json");
            aer = jsonSer.Deserialize("aerjson.json");
            for (int i = 0; i < aer.Count; ++i)
            {
                Assert.AreEqual(aer.Aviation[i].Model, aerCopy.Aviation[i].Model);
                Assert.AreEqual(aer.Aviation[i].Capacity, aerCopy.Aviation[i].Capacity);
            }
        }
Example #2
0
        public void ExceptionsTest()
        {
            var av = new Plane <ReactiveEngine>(10, 20000, "qwe", new ReactiveEngine("dfs"));

            try
            {
                Assert.Throws <PassPlaceException>(() => { av.PlacePassenger(-5); });
            }
            catch (UserException usEx)
            {
                ExceptionLogger.LogUserException(usEx);
            }
            IAeroport <IPassengerAviation <IEngine> > aer = new Aeroport <IPassengerAviation <IEngine> >("Кольцово");

            aer.Add(av);
            try
            {
                Assert.Throws <Exception>(() =>
                {
                    av.SendMessage(aer[30], "Не сработает, нет такого элемента, системное исключение");
                });
            }
            catch (Exception ex)
            {
                ExceptionLogger.LogSystemException(ex);
            }
            try
            {
                Assert.Throws <NoTargetExeption>(() => { av.SendMessage(null, "Не сработает, нет  цели, пользовательское исключение"); });
            }
            catch (UserException usEx)
            {
                ExceptionLogger.LogUserException(usEx);
            }
        }
Example #3
0
        public void AddItemTest()
        {
            string name = "TestName";
            var    aer  = new Aeroport <IPassengerAviation <IEngine> >(name, aviation);
            var    tmp  = new Plane <ReactiveEngine>(40, 3, "NotInAer", new ReactiveEngine("Eng"));

            aer.Add(tmp);
            Assert.AreEqual(tmp, aer[aer.Count - 1]);
        }
Example #4
0
        public void RemoveItemTest()
        {
            string name = "TestName";
            var    aer  = new Aeroport <IPassengerAviation <IEngine> >(name, aviation);
            var    tmp  = new Plane <ReactiveEngine>(40, 3, "NotInAer", new ReactiveEngine("Eng"));

            aer.Add(tmp);
            aer.Remove(tmp);
            Assert.AreEqual(false, aer.Contains(tmp));
        }
Example #5
0
        /// <summary>
        /// Возвращает все пустые воздушные судна из коллекции
        /// </summary>
        /// <typeparam name="T">тип обобщенной коллекции</typeparam>
        /// <param name="aer">Коллекция пустых самолетов</param>
        /// <returns></returns>
        public static Aeroport <T> FindAllEmpty <T>(this Aeroport <T> aer) where T : IPassengerAviation <IEngine>
        {
            ExtensionLogger.Log("Вызван метод поиска всех пустых суден");
            var res = new Aeroport <T>("temp");

            foreach (var aero in aer)
            {
                if (aero.Engaged == 0)
                {
                    res.Add(aero);
                }
            }
            return(res);
        }
Example #6
0
        private static void FillAer(Aeroport <IPassengerAviation <IEngine> > aer, int planesCount, int heliCount)
        {
            IAviationFactory aaf = new AmericanAviationFactory();
            IAviationFactory raf = new RussianAviationFactory();

            Random r = new Random();
            int    americanPlanes     = r.Next(planesCount);
            int    russianHelicopters = r.Next(heliCount);

            for (int i = 0; i < planesCount - americanPlanes; ++i)
            {
                int reactive = r.Next(2);
                if (reactive == 1)
                {
                    aer.Add(raf.CreateReactivePlane());
                }
                else
                {
                    aer.Add(raf.CreateTurbopropPlane());
                }
            }

            for (int i = 0; i < americanPlanes; ++i)
            {
                int reactive = r.Next(2);
                if (reactive == 1)
                {
                    aer.Add(aaf.CreateReactivePlane());
                }
                else
                {
                    aer.Add(aaf.CreateTurbopropPlane());
                }
            }

            for (int i = 0; i < russianHelicopters; ++i)
            {
                aer.Add(raf.CreateHelicopter());
            }

            for (int i = 0; i < heliCount - russianHelicopters; ++i)
            {
                aer.Add(aaf.CreateHelicopter());
            }
        }