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); } }
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); } }
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]); }
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)); }
/// <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); }
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()); } }