public void ItShouldReturnExpectedValue(RotorCraft rotorCraft)
            {
                engineaddition.Setup(dec => dec.AddTurboshaftEngines(It.IsAny<RotorCraft>())).Returns(() => rotorCraft);
                var somecraft = heavierThanAirAircraftFactory.TryMakeRotorCraft(rotorCraft.SerialNumber, rotorCraft.RotorBlades.ToList(), "singular", 2, 56, "linx", 12000);

                Assert.AreEqual(rotorCraft.ToString(), somecraft.ToString());
            }
            public void ItShouldCallAddTurboshaftEngines(RotorCraft rotorCraft)
            {
                engineaddition.Setup(dec => dec.AddTurboshaftEngines(It.IsAny<RotorCraft>())).Returns((RotorCraft rotorCraftarg) => rotorCraftarg);

                var somecraft = heavierThanAirAircraftFactory.TryMakeRotorCraft(rotorCraft.SerialNumber, rotorCraft.RotorBlades.ToList(), "singular", 2, 56, "linx", 12000);

                engineaddition.Verify(dec => dec.AddTurboshaftEngines(somecraft), Times.Once);
            }
        public RotorCraft TryMakeRotorCraft(string serialnumber, List<RotorBlade> rotorblades, string rotortype = "standart rotor",
                                            int numberofrotors = 1, int fuelcapacity = 0, string manufacturer = "generic aircraft maker",
                                            int maxTOweight = 1000)
        {
            RotorCraft rotorCraft = new RotorCraft();

            try
            {
                rotorCraft = MakeRotorCraft(serialnumber, rotorblades, rotortype, numberofrotors, fuelcapacity,
                    manufacturer, maxTOweight);

            }
            catch (ArgumentNullException argumentNullException)
            {
                Console.WriteLine(argumentNullException.Message);
                switch (argumentNullException.ParamName)
                {
                    case nameof(rotorblades):
                        rotorblades = new List<RotorBlade>();
                        rotorCraft = MakeRotorCraft(serialnumber, rotorblades, rotortype, numberofrotors,
                            fuelcapacity, manufacturer, maxTOweight);
                        break;
                    case nameof(serialnumber):
                        serialnumber = "No serial number specified";
                        rotorCraft = MakeRotorCraft(serialnumber, rotorblades, rotortype, numberofrotors,
                            fuelcapacity, manufacturer, maxTOweight);
                        break;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            rotorCraft = AddTurboshaftEngines(rotorCraft);
            Logger.GetLogger().AddToLog(new LogEventArgs(String.Format("new rotorcraft created (SN:{0})", rotorCraft.SerialNumber)));

            //rotorCraft.Subscribe(NTSB.GetInstance());
            AviationAdministration.GetInstance().RegisterAircraft(rotorCraft, rotorCraft.IsOperational);

            return rotorCraft;
        }
 private RotorCraft AddTurboshaftEngines(RotorCraft rotorCraft)
 {
     rotorCraft = turbineEngineInstaller.AddTurboshaftEngines(rotorCraft) as RotorCraft;
     return rotorCraft;
 }