public void BaseStationMessageTranslator_Translate_Translates_Messages_Correctly() { ExcelWorksheetData worksheet = new ExcelWorksheetData(TestContext); BaseStationMessage translated = _Implementation.Translate(worksheet.String("Text"), 123); Assert.AreEqual(Enum.Parse(typeof(BaseStationMessageType), worksheet.String("MessageType")), translated.MessageType); Assert.AreEqual(Enum.Parse(typeof(BaseStationTransmissionType), worksheet.String("TransmissionType")), translated.TransmissionType); Assert.AreEqual(Enum.Parse(typeof(BaseStationStatusCode), worksheet.String("StatusCode")), translated.StatusCode); Assert.AreEqual(worksheet.Int("SessionId"), translated.SessionId); Assert.AreEqual(worksheet.Int("AircraftId"), translated.AircraftId); Assert.AreEqual(worksheet.String("Icao24"), translated.Icao24); Assert.AreEqual(worksheet.Int("FlightId"), translated.FlightId); Assert.AreEqual(worksheet.DateTime("MessageGenerated"), translated.MessageGenerated); Assert.AreEqual(worksheet.DateTime("MessageLogged"), translated.MessageLogged); Assert.AreEqual(worksheet.String("Callsign"), translated.Callsign); Assert.AreEqual(worksheet.NFloat("Altitude"), translated.Altitude); Assert.AreEqual(worksheet.NFloat("GroundSpeed"), translated.GroundSpeed); Assert.AreEqual(worksheet.NFloat("Track"), translated.Track); Assert.AreEqual(worksheet.NDouble("Latitude"), translated.Latitude); Assert.AreEqual(worksheet.NDouble("Longitude"), translated.Longitude); Assert.AreEqual(worksheet.NFloat("VerticalRate"), translated.VerticalRate); Assert.AreEqual(worksheet.NInt("Squawk"), translated.Squawk); Assert.AreEqual(worksheet.NBool("SquawkHasChanged"), translated.SquawkHasChanged); Assert.AreEqual(worksheet.NBool("Emergency"), translated.Emergency); Assert.AreEqual(worksheet.NBool("IdentActive"), translated.IdentActive); Assert.AreEqual(worksheet.NBool("OnGround"), translated.OnGround); Assert.AreEqual(worksheet.Bool("IsMlat"), translated.IsMlat); }
public void ConnectionSessionLogPresenter_Clicking_ShowSessions_Triggers_Validation() { var worksheet = new ExcelWorksheetData(TestContext); _Presenter.Initialise(_View.Object); _View.Object.StartDate = worksheet.DateTime("StartDate"); _View.Object.EndDate = worksheet.DateTime("EndDate"); ValidationResults validationResults = null; _View.Setup(v => v.ShowValidationResults(It.IsAny <ValidationResults>())).Callback((ValidationResults results) => { validationResults = results; }); _View.Raise(v => v.ShowSessionsClicked += null, EventArgs.Empty); Assert.IsNotNull(validationResults); Assert.AreEqual(worksheet.Int("CountErrors"), validationResults.Results.Count()); if (validationResults.Results.Count() > 0) { Assert.IsTrue(validationResults.Results.Where(r => r.Field == worksheet.ParseEnum <ValidationField>("Field") && r.Message == worksheet.String("Message") && r.IsWarning == worksheet.Bool("IsWarning")).Any()); } }
private void Do_BaseStationMessage_ToBaseStationString_Builds_Valid_BaseStation_Messages_From_A_BaseStationMessage_Object() { var worksheet = new ExcelWorksheetData(TestContext); _Implementation.MessageType = worksheet.ParseEnum <BaseStationMessageType>("MessageType"); _Implementation.TransmissionType = worksheet.ParseEnum <BaseStationTransmissionType>("TransmissionType"); _Implementation.StatusCode = worksheet.ParseEnum <BaseStationStatusCode>("StatusCode"); _Implementation.SessionId = worksheet.Int("SessionId"); _Implementation.AircraftId = worksheet.Int("AircraftId"); _Implementation.Icao24 = worksheet.String("Icao24"); _Implementation.FlightId = worksheet.Int("FlightId"); _Implementation.MessageGenerated = worksheet.DateTime("MessageGenerated"); _Implementation.MessageLogged = worksheet.DateTime("MessageLogged"); _Implementation.Callsign = worksheet.String("Callsign"); _Implementation.Altitude = worksheet.NInt("Altitude"); _Implementation.GroundSpeed = worksheet.NFloat("GroundSpeed"); _Implementation.Track = worksheet.NFloat("Track"); _Implementation.Latitude = worksheet.NDouble("Latitude"); _Implementation.Longitude = worksheet.NDouble("Longitude"); _Implementation.VerticalRate = worksheet.NInt("VerticalRate"); _Implementation.Squawk = worksheet.NInt("Squawk"); _Implementation.SquawkHasChanged = worksheet.NBool("SquawkHasChanged"); _Implementation.Emergency = worksheet.NBool("Emergency"); _Implementation.IdentActive = worksheet.NBool("IdentActive"); _Implementation.OnGround = worksheet.NBool("OnGround"); Assert.AreEqual(worksheet.String("Text"), _Implementation.ToBaseStationString()); }
public void JsonSerialiser_WriteObject_Writes_ValueTypes_Correctly_For_Non_UK_Cultures() { var worksheet = new ExcelWorksheetData(TestContext); foreach (var culture in new string[] { "en-US", "de-DE", "fr-FR", "ru-RU" }) { using (var cultureSwitcher = new CultureSwitcher(culture)) { TestCleanup(); TestInitialise(); var obj = new ValueTypes() { BoolValue = worksheet.Bool("BoolValue"), UnusedBool = worksheet.Bool("UnusedBool"), NullableBool = worksheet.NBool("NullableBool"), Int = worksheet.Int("Int"), NullableInt = worksheet.NInt("NullableInt"), Long = worksheet.Long("Long"), NullableLong = worksheet.NLong("NullableLong"), Float = worksheet.Float("Float"), NullableFloat = worksheet.NFloat("NullableFloat"), Double = worksheet.Double("Double"), NullableDouble = worksheet.NDouble("NullableDouble"), DateTime = worksheet.DateTime("DateTime"), NullableDateTime = worksheet.NDateTime("NullableDateTime"), }; _JsonSerialiser.Initialise(typeof(ValueTypes)); _JsonSerialiser.WriteObject(_Stream, obj); var message = String.Format("when culture is {0}", culture); Assert.AreEqual(worksheet.EString("Json"), GetJson(), message); } } }
public void JsonSerialiser_WriteObject_Writes_ValueTypes_Correctly() { var worksheet = new ExcelWorksheetData(TestContext); var obj = new ValueTypes() { BoolValue = worksheet.Bool("BoolValue"), UnusedBool = worksheet.Bool("UnusedBool"), NullableBool = worksheet.NBool("NullableBool"), Int = worksheet.Int("Int"), NullableInt = worksheet.NInt("NullableInt"), Long = worksheet.Long("Long"), NullableLong = worksheet.NLong("NullableLong"), Float = worksheet.Float("Float"), NullableFloat = worksheet.NFloat("NullableFloat"), Double = worksheet.Double("Double"), NullableDouble = worksheet.NDouble("NullableDouble"), DateTime = worksheet.DateTime("DateTime"), NullableDateTime = worksheet.NDateTime("NullableDateTime"), }; _JsonSerialiser.Initialise(typeof(ValueTypes)); _JsonSerialiser.WriteObject(_Stream, obj); Assert.AreEqual(worksheet.EString("Json"), GetJson()); }
private void SpreadsheetTests(Action <ExcelWorksheetData> afterSetFolder) { var worksheet = new ExcelWorksheetData(TestContext); bool checkCacheChanged = worksheet.ColumnExists("CacheChanged"); for (int i = 1; i <= 2; ++i) { string nameColumn = String.Format("File{0}", i); string lastModifiedColumn = String.Format("Time{0}", i); if (!worksheet.ColumnExists(nameColumn)) { continue; } var name = worksheet.String(nameColumn); var time = worksheet.ColumnExists(lastModifiedColumn) ? worksheet.DateTime(lastModifiedColumn) : new DateTime(2999, 12, 31); if (name != null) { _Files.Add(new TestFileInfo(name, time)); } } _Provider.Setup(p => p.GetFilesInFolder(It.IsAny <string>())).Returns(_Files); var folder = worksheet.String("Folder"); if (folder != null) { _DirectoryCache.Folder = folder; } if (worksheet.ColumnExists("LastModified")) { var fileInfo = worksheet.String("LastModified") == null ? null : new TestFileInfo(worksheet.String("FileName"), worksheet.DateTime("LastModified")); _Provider.Setup(p => p.GetFileInfo(worksheet.EString("FileName"))).Returns(fileInfo); } if (checkCacheChanged) { _DirectoryCache.CacheChanged += _CacheChangedEvent.Handler; } if (afterSetFolder != null) { afterSetFolder(worksheet); } Assert.AreEqual(folder, _DirectoryCache.Folder); Assert.AreEqual(worksheet.Bool("Exists"), _DirectoryCache.FileExists(worksheet.EString("SearchFor"))); if (checkCacheChanged) { Assert.AreEqual(worksheet.Bool("CacheChanged") ? 1 : 0, _CacheChangedEvent.CallCount); } }
public void JsonSerialiser_WriteObject_Honours_Important_DataMember_Attributes() { var worksheet = new ExcelWorksheetData(TestContext); var obj = new Attributes() { OriginalName = worksheet.Int("OriginalName"), NoEmitDefaultString = worksheet.EString("NoEmitDefaultString"), NoEmitDefaultInt = worksheet.Int("NoEmitDefaultInt"), NoEmitDefaultBool = worksheet.Bool("NoEmitDefaultBool"), NoEmitDefaultLong = worksheet.Long("NoEmitDefaultLong"), NoEmitDefaultDateTime = worksheet.DateTime("NoEmitDefaultDateTime"), NoEmitDefaultNullable = worksheet.NBool("NoEmitDefaultNullable"), }; _JsonSerialiser.Initialise(typeof(Attributes)); _JsonSerialiser.WriteObject(_Stream, obj); Assert.AreEqual(worksheet.EString("Json"), GetJson()); }
public void JsonSerialiser_WriteObject_Writes_ValueTypes_Correctly() { var worksheet = new ExcelWorksheetData(TestContext); var obj = new ValueTypes() { BoolValue = worksheet.Bool("BoolValue"), UnusedBool = worksheet.Bool("UnusedBool"), NullableBool = worksheet.NBool("NullableBool"), Int = worksheet.Int("Int"), NullableInt = worksheet.NInt("NullableInt"), Long = worksheet.Long("Long"), NullableLong = worksheet.NLong("NullableLong"), Float = worksheet.Float("Float"), NullableFloat = worksheet.NFloat("NullableFloat"), Double = worksheet.Double("Double"), NullableDouble = worksheet.NDouble("NullableDouble"), DateTime = worksheet.DateTime("DateTime"), NullableDateTime = worksheet.NDateTime("NullableDateTime"), }; _JsonSerialiser.Initialise(typeof(ValueTypes)); _JsonSerialiser.WriteObject(_Stream, obj); Assert.AreEqual(worksheet.EString("Json"), GetJson()); }
/// <summary> /// Returns a mock flight record with values filled from a spreadsheet row, starting from the column number passed across. /// </summary> /// <param name="expected"></param> /// <param name="firstOrdinal"></param> /// <returns></returns> /// <remarks> /// The columns are read in the following order: /// AircraftID, Callsign, EndTime, FirstAltitude, FirstGroundSpeed, FirstIsOnGround, FirstLat, FirstLon, FirstSquawk, FirstTrack, FirstVerticalRate, HadAlert, /// HadEmergency, HadSpi, LastAltitude, LastGroundSpeed, LastIsOnGround, LastLat, LastLon, LastSquawk, LastTrack, LastVerticalRate, NumADSBMsgRec, NumModeSMsgRec, /// NumIDMsgRec, NumSurPosMsgRec, NumAirPosMsgRec, NumAirVelMsgRec, NumSurAltMsgRec, NumSurIDMsgRec, NumAirToAirMsgRec, NumAirCallRepMsgRec, NumPosMsgRec /// and StartTime /// </remarks> private BaseStationFlight LoadFlightFromSpreadsheet(ExcelWorksheetData worksheet, int firstOrdinal = 0, BaseStationFlight copyIntoFlight = null) { int ordinal = firstOrdinal; var aircraft = CreateAircraft(); aircraft.AircraftID = worksheet.Int(ordinal++); var result = copyIntoFlight == null ? CreateFlight(aircraft) : copyIntoFlight; result.AircraftID = aircraft.AircraftID; result.Callsign = worksheet.EString(ordinal++); result.EndTime = worksheet.DateTime(ordinal++); result.FirstAltitude = worksheet.Int(ordinal++); result.FirstGroundSpeed = worksheet.Float(ordinal++); result.FirstIsOnGround = worksheet.Bool(ordinal++); result.FirstLat = worksheet.Float(ordinal++); result.FirstLon = worksheet.Float(ordinal++); result.FirstSquawk = worksheet.Int(ordinal++); result.FirstTrack = worksheet.Float(ordinal++); result.FirstVerticalRate = worksheet.Int(ordinal++); result.HadAlert = worksheet.Bool(ordinal++); result.HadEmergency = worksheet.Bool(ordinal++); result.HadSpi = worksheet.Bool(ordinal++); result.LastAltitude = worksheet.Int(ordinal++); result.LastGroundSpeed = worksheet.Float(ordinal++); result.LastIsOnGround = worksheet.Bool(ordinal++); result.LastLat = worksheet.Float(ordinal++); result.LastLon = worksheet.Float(ordinal++); result.LastSquawk = worksheet.Int(ordinal++); result.LastTrack = worksheet.Float(ordinal++); result.LastVerticalRate = worksheet.Int(ordinal++); result.NumADSBMsgRec = worksheet.Int(ordinal++); result.NumModeSMsgRec = worksheet.Int(ordinal++); result.NumIDMsgRec = worksheet.Int(ordinal++); result.NumSurPosMsgRec = worksheet.Int(ordinal++); result.NumAirPosMsgRec = worksheet.Int(ordinal++); result.NumAirVelMsgRec = worksheet.Int(ordinal++); result.NumSurAltMsgRec = worksheet.Int(ordinal++); result.NumSurIDMsgRec = worksheet.Int(ordinal++); result.NumAirToAirMsgRec = worksheet.Int(ordinal++); result.NumAirCallRepMsgRec = worksheet.Int(ordinal++); result.NumPosMsgRec = worksheet.Int(ordinal++); result.StartTime = worksheet.DateTime(ordinal++); return result; }
/// <summary> /// Reads actual details from a spreadsheet, assuming that the fields are in alphabetical order from the first ordinal passed across. /// </summary> /// <param name="expected"></param> /// <param name="firstOrdinal"></param> /// <param name="copyIntoAircraft"></param> /// <returns></returns> /// <remarks> /// The fields, in ascending order of ordinal, are: /// AircraftClass, Country, DeRegDate, Engines, FirstCreated, GenericName, ICAOTypeCode, LastModified, Manufacturer, ModeS, ModeSCountry, /// OperatorFlagCode, OwnershipStatus, PopularName, PreviousID, RegisteredOwners, Registration, SerialNo, Status, Type, CofACategory, CofAExpiry /// CurrentRegDate, FirstRegDate, InfoUrl, Interested, MTOW, PictureUrl1, PictureUrl2, PictureUrl3, TotalHours, UserNotes, UserTag and YearBuilt. /// </remarks> private BaseStationAircraft LoadAircraftFromSpreadsheet(ExcelWorksheetData worksheet, int firstOrdinal = 0, BaseStationAircraft copyIntoAircraft = null) { var result = copyIntoAircraft == null ? new BaseStationAircraft() : copyIntoAircraft; int ordinal = firstOrdinal; result.AircraftClass = worksheet.EString(ordinal++); result.Country = worksheet.EString(ordinal++); result.DeRegDate = worksheet.EString(ordinal++); result.Engines = worksheet.EString(ordinal++); result.FirstCreated = worksheet.DateTime(ordinal++); result.GenericName = worksheet.EString(ordinal++); result.ICAOTypeCode = worksheet.EString(ordinal++); result.LastModified = worksheet.DateTime(ordinal++); result.Manufacturer = worksheet.EString(ordinal++); result.ModeS = worksheet.EString(ordinal++); result.ModeSCountry = worksheet.EString(ordinal++); result.OperatorFlagCode = worksheet.EString(ordinal++); result.OwnershipStatus = worksheet.EString(ordinal++); result.PopularName = worksheet.EString(ordinal++); result.PreviousID = worksheet.EString(ordinal++); result.RegisteredOwners = worksheet.EString(ordinal++); result.Registration = worksheet.EString(ordinal++); result.SerialNo = worksheet.EString(ordinal++); result.Status = worksheet.EString(ordinal++); result.Type = worksheet.EString(ordinal++); result.CofACategory = worksheet.EString(ordinal++); result.CofAExpiry = worksheet.EString(ordinal++); result.CurrentRegDate = worksheet.EString(ordinal++); result.FirstRegDate = worksheet.EString(ordinal++); result.InfoUrl = worksheet.EString(ordinal++); result.Interested = worksheet.Bool(ordinal++); result.MTOW = worksheet.EString(ordinal++); result.PictureUrl1 = worksheet.EString(ordinal++); result.PictureUrl2 = worksheet.EString(ordinal++); result.PictureUrl3 = worksheet.EString(ordinal++); result.TotalHours = worksheet.EString(ordinal++); result.UserNotes = worksheet.EString(ordinal++); result.UserTag = worksheet.EString(ordinal++); result.YearBuilt = worksheet.EString(ordinal++); return result; }
public void JavascriptHelper_ToJavascriptTicks_Returns_Correct_Value_When_Passed_Date() { var worksheet = new ExcelWorksheetData(TestContext); Assert.AreEqual(worksheet.Long("JavascriptTicks"), JavascriptHelper.ToJavascriptTicks(worksheet.DateTime("Date"))); }
public void JavascriptHelper_ToJavascriptTicks_Returns_Correct_Value_When_Passed_Date() { var worksheet = new ExcelWorksheetData(TestContext); Assert.AreEqual(worksheet.Long("JavascriptTicks"), JavascriptHelper.ToJavascriptTicks(worksheet.DateTime("Date"))); }
public void ConnectionSessionLogPresenter_Clicking_ShowSessions_Triggers_Validation() { var worksheet = new ExcelWorksheetData(TestContext); _Presenter.Initialise(_View.Object); _View.Object.StartDate = worksheet.DateTime("StartDate"); _View.Object.EndDate = worksheet.DateTime("EndDate"); IEnumerable<ValidationResult> validationResults = null; _View.Setup(v => v.ShowValidationResults(It.IsAny<IEnumerable<ValidationResult>>())).Callback((IEnumerable<ValidationResult> results) => { validationResults = results; }); _View.Raise(v => v.ShowSessionsClicked += null, EventArgs.Empty); Assert.IsNotNull(validationResults); Assert.AreEqual(worksheet.Int("CountErrors"), validationResults.Count()); if(validationResults.Count() > 0) { Assert.IsTrue(validationResults.Where(r => r.Field == worksheet.ParseEnum<ValidationField>("Field") && r.Message == worksheet.String("Message") && r.IsWarning == worksheet.Bool("IsWarning")).Any()); } }
public void JsonSerialiser_WriteObject_Honours_Important_DataMember_Attributes() { var worksheet = new ExcelWorksheetData(TestContext); var obj = new Attributes() { OriginalName = worksheet.Int("OriginalName"), NoEmitDefaultString = worksheet.EString("NoEmitDefaultString"), NoEmitDefaultInt = worksheet.Int("NoEmitDefaultInt"), NoEmitDefaultBool = worksheet.Bool("NoEmitDefaultBool"), NoEmitDefaultLong = worksheet.Long("NoEmitDefaultLong"), NoEmitDefaultDateTime = worksheet.DateTime("NoEmitDefaultDateTime"), NoEmitDefaultNullable = worksheet.NBool("NoEmitDefaultNullable"), }; _JsonSerialiser.Initialise(typeof(Attributes)); _JsonSerialiser.WriteObject(_Stream, obj); Assert.AreEqual(worksheet.EString("Json"), GetJson()); }
private void Do_BaseStationMessage_ToBaseStationString_Builds_Valid_BaseStation_Messages_From_A_BaseStationMessage_Object() { var worksheet = new ExcelWorksheetData(TestContext); _Implementation.MessageType = worksheet.ParseEnum<BaseStationMessageType>("MessageType"); _Implementation.TransmissionType = worksheet.ParseEnum<BaseStationTransmissionType>("TransmissionType"); _Implementation.StatusCode = worksheet.ParseEnum<BaseStationStatusCode>("StatusCode"); _Implementation.SessionId = worksheet.Int("SessionId"); _Implementation.AircraftId = worksheet.Int("AircraftId"); _Implementation.Icao24 = worksheet.String("Icao24"); _Implementation.FlightId = worksheet.Int("FlightId"); _Implementation.MessageGenerated = worksheet.DateTime("MessageGenerated"); _Implementation.MessageLogged = worksheet.DateTime("MessageLogged"); _Implementation.Callsign = worksheet.String("Callsign"); _Implementation.Altitude = worksheet.NInt("Altitude"); _Implementation.GroundSpeed = worksheet.NFloat("GroundSpeed"); _Implementation.Track = worksheet.NFloat("Track"); _Implementation.Latitude = worksheet.NDouble("Latitude"); _Implementation.Longitude = worksheet.NDouble("Longitude"); _Implementation.VerticalRate = worksheet.NInt("VerticalRate"); _Implementation.Squawk = worksheet.NInt("Squawk"); _Implementation.SquawkHasChanged = worksheet.NBool("SquawkHasChanged"); _Implementation.Emergency = worksheet.NBool("Emergency"); _Implementation.IdentActive = worksheet.NBool("IdentActive"); _Implementation.OnGround = worksheet.NBool("OnGround"); Assert.AreEqual(worksheet.String("Text"), _Implementation.ToBaseStationString()); }
public void BaseStationMessageCompressor_Compress_And_Decompress_Work_As_Expected() { ExcelWorksheetData worksheet = new ExcelWorksheetData(TestContext); var messageIn = new BaseStationMessage(); messageIn.MessageType = worksheet.ParseEnum <BaseStationMessageType>("MessageType"); messageIn.TransmissionType = worksheet.ParseEnum <BaseStationTransmissionType>("TransmissionType"); messageIn.StatusCode = worksheet.ParseEnum <BaseStationStatusCode>("StatusCode"); messageIn.Icao24 = worksheet.EString("Icao24"); messageIn.SessionId = worksheet.Int("SessionId"); messageIn.AircraftId = worksheet.Int("AircraftId"); messageIn.FlightId = worksheet.Int("FlightId"); messageIn.MessageGenerated = worksheet.DateTime("MessageGenerated"); messageIn.MessageLogged = worksheet.DateTime("MessageLogged"); messageIn.Callsign = worksheet.String("Callsign"); messageIn.Altitude = worksheet.NInt("Altitude"); messageIn.GroundSpeed = worksheet.NInt("GroundSpeed"); messageIn.Track = worksheet.NFloat("Track"); messageIn.Latitude = worksheet.NDouble("Latitude"); messageIn.Longitude = worksheet.NDouble("Longitude"); messageIn.VerticalRate = worksheet.NInt("VerticalRate"); messageIn.Squawk = worksheet.NInt("Squawk"); messageIn.SquawkHasChanged = worksheet.NBool("SquawkHasChanged"); messageIn.Emergency = worksheet.NBool("Emergency"); messageIn.IdentActive = worksheet.NBool("IdentActive"); messageIn.OnGround = worksheet.NBool("OnGround"); int expectedLength = worksheet.Int("Length"); byte[] bytes = _Compressor.Compress(messageIn); Assert.AreEqual(expectedLength, bytes.Length); DateTime earliestDate = DateTime.Now; BaseStationMessage messageOut = _Compressor.Decompress(bytes); DateTime latestDate = DateTime.Now; if (bytes.Length == 0) { Assert.IsNull(messageOut); } else { Assert.AreEqual(messageIn.MessageType, messageOut.MessageType); Assert.AreEqual(messageIn.TransmissionType, messageOut.TransmissionType); Assert.AreEqual(BaseStationStatusCode.None, messageOut.StatusCode); Assert.AreEqual(messageIn.Icao24, messageOut.Icao24); Assert.AreEqual(0, messageOut.SessionId); Assert.AreEqual(0, messageOut.AircraftId); Assert.AreEqual(0, messageOut.FlightId); Assert.AreEqual((double)earliestDate.Ticks, (double)messageOut.MessageGenerated.Ticks, (double)latestDate.Ticks - (double)earliestDate.Ticks); Assert.AreEqual((double)earliestDate.Ticks, (double)messageOut.MessageLogged.Ticks, (double)latestDate.Ticks - (double)earliestDate.Ticks); Assert.AreEqual(messageIn.Callsign, messageOut.Callsign); Assert.AreEqual(messageIn.Altitude, messageOut.Altitude); Assert.AreEqual(messageIn.GroundSpeed, messageOut.GroundSpeed); Assert.AreEqual(messageIn.Track, messageOut.Track); if (messageIn.Latitude == null) { Assert.IsNull(messageOut.Latitude); } else { Assert.AreEqual(messageIn.Latitude.Value, messageOut.Latitude.Value, 0.000001); } if (messageIn.Longitude == null) { Assert.IsNull(messageOut.Longitude); } else { Assert.AreEqual(messageIn.Longitude.Value, messageOut.Longitude.Value, 0.000001); } Assert.AreEqual(messageIn.VerticalRate, messageOut.VerticalRate); Assert.AreEqual(messageIn.Squawk, messageOut.Squawk); Assert.AreEqual(messageIn.SquawkHasChanged, messageOut.SquawkHasChanged); Assert.AreEqual(messageIn.Emergency, messageOut.Emergency); Assert.AreEqual(messageIn.IdentActive, messageOut.IdentActive); Assert.AreEqual(messageIn.OnGround, messageOut.OnGround); } }
public void BaseStationMessageTranslator_Translate_Translates_Messages_Correctly() { ExcelWorksheetData worksheet = new ExcelWorksheetData(TestContext); BaseStationMessage translated = _Implementation.Translate(worksheet.String("Text")); Assert.AreEqual(Enum.Parse(typeof(BaseStationMessageType), worksheet.String("MessageType")), translated.MessageType); Assert.AreEqual(Enum.Parse(typeof(BaseStationTransmissionType), worksheet.String("TransmissionType")), translated.TransmissionType); Assert.AreEqual(Enum.Parse(typeof(BaseStationStatusCode), worksheet.String("StatusCode")), translated.StatusCode); Assert.AreEqual(worksheet.Int("SessionId"), translated.SessionId); Assert.AreEqual(worksheet.Int("AircraftId"), translated.AircraftId); Assert.AreEqual(worksheet.String("Icao24"), translated.Icao24); Assert.AreEqual(worksheet.Int("FlightId"), translated.FlightId); Assert.AreEqual(worksheet.DateTime("MessageGenerated"), translated.MessageGenerated); Assert.AreEqual(worksheet.DateTime("MessageLogged"), translated.MessageLogged); Assert.AreEqual(worksheet.String("Callsign"), translated.Callsign); Assert.AreEqual(worksheet.NFloat("Altitude"), translated.Altitude); Assert.AreEqual(worksheet.NFloat("GroundSpeed"), translated.GroundSpeed); Assert.AreEqual(worksheet.NFloat("Track"), translated.Track); Assert.AreEqual(worksheet.NDouble("Latitude"), translated.Latitude); Assert.AreEqual(worksheet.NDouble("Longitude"), translated.Longitude); Assert.AreEqual(worksheet.NFloat("VerticalRate"), translated.VerticalRate); Assert.AreEqual(worksheet.NInt("Squawk"), translated.Squawk); Assert.AreEqual(worksheet.NBool("SquawkHasChanged"), translated.SquawkHasChanged); Assert.AreEqual(worksheet.NBool("Emergency"), translated.Emergency); Assert.AreEqual(worksheet.NBool("IdentActive"), translated.IdentActive); Assert.AreEqual(worksheet.NBool("OnGround"), translated.OnGround); }
public void FlightSimulatorXPresenter_RidingAircraft_Sends_Real_World_Aircraft_Information_To_FSX_On_View_Timer_Tick() { var worksheet = new ExcelWorksheetData(TestContext); _Presenter.Initialise(_View.Object); _Provider.Setup(p => p.UtcNow).Returns(worksheet.DateTime("UtcNow")); _SelectedAircraft.UniqueId = 92; var aircraft = new Mock<IAircraft>() { DefaultValue = DefaultValue.Mock }.SetupAllProperties(); _RealAircraftList.Add(aircraft.Object); aircraft.Object.UniqueId = 92; aircraft.Object.Latitude = worksheet.NFloat("Latitude"); aircraft.Object.Longitude = worksheet.NFloat("Longitude"); aircraft.Object.PositionTime = worksheet.NDateTime("PositionTime"); aircraft.Object.GroundSpeed = worksheet.NFloat("GroundSpeed"); aircraft.Object.Track = worksheet.NFloat("Track"); aircraft.Object.Type = worksheet.String("Type"); aircraft.Object.Model = worksheet.String("Model"); aircraft.Object.Operator = worksheet.String("Operator"); aircraft.Object.Registration = worksheet.String("Registration"); aircraft.Object.Squawk = worksheet.NInt("Squawk"); aircraft.Object.Altitude = worksheet.NInt("Altitude"); aircraft.Object.VerticalRate = worksheet.NInt("VerticalRate"); WriteAircraftInformation aircraftInformation = new WriteAircraftInformation(); _FlightSimulatorX.Setup(f => f.MoveAircraft(It.IsAny<WriteAircraftInformation>())).Callback((WriteAircraftInformation writeAircraftInformation) => { aircraftInformation = writeAircraftInformation; }); _FlightSimulatorX.Setup(f => f.Connected).Returns(true); _FlightSimulatorX.Raise(f => f.ConnectionStatusChanged += null, EventArgs.Empty); _View.Raise(v => v.RideAircraftClicked += null, EventArgs.Empty); _View.Raise(v => v.RefreshFlightSimulatorXInformation += null, EventArgs.Empty); _FlightSimulatorX.Verify(f => f.MoveAircraft(It.IsAny<WriteAircraftInformation>()), Times.Once()); Assert.AreEqual(worksheet.Double("FSXAirspeedIndicated"), aircraftInformation.AirspeedIndicated); Assert.AreEqual(worksheet.Double("FSXAltitude"), aircraftInformation.Altitude); Assert.AreEqual(worksheet.Double("FSXLatitude"), aircraftInformation.Latitude, 0.001); Assert.AreEqual(worksheet.Double("FSXLongitude"), aircraftInformation.Longitude, 0.001); Assert.AreEqual(worksheet.String("FSXOperator"), aircraftInformation.Operator); Assert.AreEqual(worksheet.String("FSXRegistration"), aircraftInformation.Registration); Assert.AreEqual(worksheet.Double("FSXTrueHeading"), aircraftInformation.TrueHeading, 0.001); Assert.AreEqual(worksheet.Double("FSXVerticalSpeed"), aircraftInformation.VerticalSpeed); }
public void FlightSimulatorXPresenter_Requested_Aircraft_Information_Is_Copied_Into_FlightSimulatorAircraftList() { var worksheet = new ExcelWorksheetData(TestContext); _Presenter.Initialise(_View.Object); var utcNow = worksheet.DateTime("UtcNow"); _Provider.Setup(p => p.UtcNow).Returns(utcNow); var aircraftInformation = new ReadAircraftInformation() { AirspeedIndicated = worksheet.Double("FSXAirspeedIndicated"), Altitude = worksheet.Double("FSXAltitude"), Latitude = worksheet.Double("FSXLatitude"), Longitude = worksheet.Double("FSXLongitude"), MaxAirspeedIndicated = worksheet.Double("FSXMaxAirspeedIndicated"), Model = worksheet.String("FSXModel"), OnGround = worksheet.Bool("FSXOnGround"), Operator = worksheet.String("FSXOperator"), Registration = worksheet.String("FSXRegistration"), Squawk = worksheet.Int("FSXSquawk"), TrueHeading = worksheet.Double("FSXTrueHeading"), Type = worksheet.String("FSXType"), VerticalSpeed = worksheet.Double("FSXVerticalSpeed"), }; _FlightSimulatorX.Raise(f => f.AircraftInformationReceived += null, new EventArgs<ReadAircraftInformation>(aircraftInformation)); Assert.AreEqual(1, _FSXAircraftList.Count); var aircraft = _FSXAircraftList[0]; Assert.AreEqual(worksheet.String("Icao24"), aircraft.Icao24); Assert.AreEqual(worksheet.Int("UniqueId"), aircraft.UniqueId); Assert.AreEqual(worksheet.NFloat("Latitude"), aircraft.Latitude); Assert.AreEqual(worksheet.NFloat("Longitude"), aircraft.Longitude); Assert.AreEqual(utcNow.Ticks, aircraft.DataVersion); Assert.AreEqual(worksheet.NFloat("GroundSpeed"), aircraft.GroundSpeed); Assert.AreEqual(worksheet.NFloat("Track"), aircraft.Track); Assert.AreEqual(worksheet.String("Type"), aircraft.Type); Assert.AreEqual(worksheet.String("Model"), aircraft.Model); Assert.AreEqual(worksheet.String("Operator"), aircraft.Operator); Assert.AreEqual(worksheet.String("Registration"), aircraft.Registration); Assert.AreEqual(worksheet.NInt("Squawk"), aircraft.Squawk); Assert.AreEqual(worksheet.NInt("Altitude"), aircraft.Altitude); Assert.AreEqual(worksheet.NInt("VerticalRate"), aircraft.VerticalRate); }
private void SpreadsheetTests(Action <ExcelWorksheetData> afterSetFolder) { var worksheet = new ExcelWorksheetData(TestContext); bool checkCacheChanged = worksheet.ColumnExists("CacheChanged"); for (int i = 1; i <= 2; ++i) { string nameColumn = String.Format("File{0}", i); string lastModifiedColumn = String.Format("Time{0}", i); if (!worksheet.ColumnExists(nameColumn)) { continue; } var name = worksheet.String(nameColumn); var time = worksheet.ColumnExists(lastModifiedColumn) ? worksheet.DateTime(lastModifiedColumn) : new DateTime(2999, 12, 31); if (name != null) { AddToFiles(name, time); } } var folder = worksheet.String("Folder"); if (folder != null) { AddToFolders(folder); _DirectoryCache.Folder = folder; } if (worksheet.ColumnExists("CacheSubFolders")) { _DirectoryCache.CacheSubFolders = worksheet.Bool("CacheSubFolders"); } if (worksheet.ColumnExists("LastModified")) { if (worksheet.String("LastModified") != null) { AddToFiles(worksheet.String("FileName"), worksheet.DateTime("LastModified")); } } if (checkCacheChanged) { _DirectoryCache.CacheChanged += _CacheChangedEvent.Handler; } if (afterSetFolder != null) { afterSetFolder(worksheet); } Assert.AreEqual(folder, _DirectoryCache.Folder); var result = _DirectoryCache.GetFullPath(worksheet.EString("SearchFor")); Assert.AreEqual(worksheet.EString("Result"), result, true); if (checkCacheChanged) { Assert.AreEqual(worksheet.Bool("CacheChanged") ? 1 : 0, _CacheChangedEvent.CallCount); } }
public void BaseStationMessageCompressor_Compress_And_Decompress_Work_As_Expected() { ExcelWorksheetData worksheet = new ExcelWorksheetData(TestContext); var messageIn = new BaseStationMessage(); messageIn.MessageType = worksheet.ParseEnum<BaseStationMessageType>("MessageType"); messageIn.TransmissionType = worksheet.ParseEnum<BaseStationTransmissionType>("TransmissionType"); messageIn.StatusCode = worksheet.ParseEnum<BaseStationStatusCode>("StatusCode"); messageIn.Icao24 = worksheet.EString("Icao24"); messageIn.SessionId = worksheet.Int("SessionId"); messageIn.AircraftId = worksheet.Int("AircraftId"); messageIn.FlightId = worksheet.Int("FlightId"); messageIn.MessageGenerated = worksheet.DateTime("MessageGenerated"); messageIn.MessageLogged = worksheet.DateTime("MessageLogged"); messageIn.Callsign = worksheet.String("Callsign"); messageIn.Altitude = worksheet.NInt("Altitude"); messageIn.GroundSpeed = worksheet.NInt("GroundSpeed"); messageIn.Track = worksheet.NFloat("Track"); messageIn.Latitude = worksheet.NDouble("Latitude"); messageIn.Longitude = worksheet.NDouble("Longitude"); messageIn.VerticalRate = worksheet.NInt("VerticalRate"); messageIn.Squawk = worksheet.NInt("Squawk"); messageIn.SquawkHasChanged = worksheet.NBool("SquawkHasChanged"); messageIn.Emergency = worksheet.NBool("Emergency"); messageIn.IdentActive = worksheet.NBool("IdentActive"); messageIn.OnGround = worksheet.NBool("OnGround"); int expectedLength = worksheet.Int("Length"); byte[] bytes = _Compressor.Compress(messageIn); Assert.AreEqual(expectedLength, bytes.Length); DateTime earliestDate = DateTime.Now; BaseStationMessage messageOut = _Compressor.Decompress(bytes); DateTime latestDate = DateTime.Now; if(bytes.Length == 0) Assert.IsNull(messageOut); else { Assert.AreEqual(messageIn.MessageType, messageOut.MessageType); Assert.AreEqual(messageIn.TransmissionType, messageOut.TransmissionType); Assert.AreEqual(BaseStationStatusCode.None, messageOut.StatusCode); Assert.AreEqual(messageIn.Icao24, messageOut.Icao24); Assert.AreEqual(0, messageOut.SessionId); Assert.AreEqual(0, messageOut.AircraftId); Assert.AreEqual(0, messageOut.FlightId); Assert.AreEqual((double)earliestDate.Ticks, (double)messageOut.MessageGenerated.Ticks, (double)latestDate.Ticks - (double)earliestDate.Ticks); Assert.AreEqual((double)earliestDate.Ticks, (double)messageOut.MessageLogged.Ticks, (double)latestDate.Ticks - (double)earliestDate.Ticks); Assert.AreEqual(messageIn.Callsign, messageOut.Callsign); Assert.AreEqual(messageIn.Altitude, messageOut.Altitude); Assert.AreEqual(messageIn.GroundSpeed, messageOut.GroundSpeed); Assert.AreEqual(messageIn.Track, messageOut.Track); if(messageIn.Latitude == null) Assert.IsNull(messageOut.Latitude); else Assert.AreEqual(messageIn.Latitude.Value, messageOut.Latitude.Value, 0.000001); if(messageIn.Longitude == null) Assert.IsNull(messageOut.Longitude); else Assert.AreEqual(messageIn.Longitude.Value, messageOut.Longitude.Value, 0.000001); Assert.AreEqual(messageIn.VerticalRate, messageOut.VerticalRate); Assert.AreEqual(messageIn.Squawk, messageOut.Squawk); Assert.AreEqual(messageIn.SquawkHasChanged, messageOut.SquawkHasChanged); Assert.AreEqual(messageIn.Emergency, messageOut.Emergency); Assert.AreEqual(messageIn.IdentActive, messageOut.IdentActive); Assert.AreEqual(messageIn.OnGround, messageOut.OnGround); } }
private void SpreadsheetTests(Action<ExcelWorksheetData> afterSetFolder) { var worksheet = new ExcelWorksheetData(TestContext); bool checkCacheChanged = worksheet.ColumnExists("CacheChanged"); for(int i = 1;i <= 2;++i) { string nameColumn = String.Format("File{0}", i); string lastModifiedColumn = String.Format("Time{0}", i); if(!worksheet.ColumnExists(nameColumn)) continue; var name = worksheet.String(nameColumn); var time = worksheet.ColumnExists(lastModifiedColumn) ? worksheet.DateTime(lastModifiedColumn) : new DateTime(2999, 12, 31); if(name != null) _Files.Add(new TestFileInfo(name, time)); } _Provider.Setup(p => p.GetFilesInFolder(It.IsAny<string>())).Returns(_Files); var folder = worksheet.String("Folder"); if(folder != null) _DirectoryCache.Folder = folder; if(worksheet.ColumnExists("LastModified")) { var fileInfo = worksheet.String("LastModified") == null ? null : new TestFileInfo(worksheet.String("FileName"), worksheet.DateTime("LastModified")); _Provider.Setup(p => p.GetFileInfo(worksheet.EString("FileName"))).Returns(fileInfo); } if(checkCacheChanged) _DirectoryCache.CacheChanged += _CacheChangedEvent.Handler; if(afterSetFolder != null) afterSetFolder(worksheet); Assert.AreEqual(folder, _DirectoryCache.Folder); Assert.AreEqual(worksheet.Bool("Exists"), _DirectoryCache.FileExists(worksheet.EString("SearchFor"))); if(checkCacheChanged) Assert.AreEqual(worksheet.Bool("CacheChanged") ? 1 : 0, _CacheChangedEvent.CallCount); }
public void FlightSimulatorXPresenter_RidingAircraft_Approximates_Bank_Angle_From_Track() { var worksheet = new ExcelWorksheetData(TestContext); _Presenter.Initialise(_View.Object); WriteAircraftInformation aircraftInformation = new WriteAircraftInformation(); _FlightSimulatorX.Setup(f => f.MoveAircraft(It.IsAny<WriteAircraftInformation>())).Callback((WriteAircraftInformation writeAircraftInformation) => { aircraftInformation = writeAircraftInformation; }); _FlightSimulatorX.Setup(f => f.Connected).Returns(true); _FlightSimulatorX.Raise(f => f.ConnectionStatusChanged += null, EventArgs.Empty); _SelectedAircraft.UniqueId = 1; _View.Raise(v => v.RideAircraftClicked += null, EventArgs.Empty); for(var i = 1;i <= 3;++i) { string uniqueIdColumn = String.Format("UniqueId{0}", i); string updateTimeColumn = String.Format("UpdateTime{0}", i); string trackColumn = String.Format("Track{0}", i); string bankColumn = String.Format("Bank{0}", i); if(worksheet.String(uniqueIdColumn) == null) break; var aircraft = new Mock<IAircraft>() { DefaultValue = DefaultValue.Mock }.SetupAllProperties().Object; if(_RealAircraftList.Count == 0) _RealAircraftList.Add(aircraft); else _RealAircraftList[0] = aircraft; _SelectedAircraft.UniqueId = aircraft.UniqueId = worksheet.Int(uniqueIdColumn); aircraft.LastUpdate = worksheet.DateTime(updateTimeColumn); aircraft.Track = worksheet.NFloat(trackColumn); _View.Raise(v => v.RefreshFlightSimulatorXInformation += null, EventArgs.Empty); Assert.AreEqual(worksheet.Double(bankColumn), aircraftInformation.Bank, i.ToString()); } }
public void JsonSerialiser_WriteObject_Writes_ValueTypes_Correctly_For_Non_UK_Cultures() { var worksheet = new ExcelWorksheetData(TestContext); foreach(var culture in new string[] { "en-US", "de-DE", "fr-FR", "ru-RU" }) { using(var cultureSwitcher = new CultureSwitcher(culture)) { TestCleanup(); TestInitialise(); var obj = new ValueTypes() { BoolValue = worksheet.Bool("BoolValue"), UnusedBool = worksheet.Bool("UnusedBool"), NullableBool = worksheet.NBool("NullableBool"), Int = worksheet.Int("Int"), NullableInt = worksheet.NInt("NullableInt"), Long = worksheet.Long("Long"), NullableLong = worksheet.NLong("NullableLong"), Float = worksheet.Float("Float"), NullableFloat = worksheet.NFloat("NullableFloat"), Double = worksheet.Double("Double"), NullableDouble = worksheet.NDouble("NullableDouble"), DateTime = worksheet.DateTime("DateTime"), NullableDateTime = worksheet.NDateTime("NullableDateTime"), }; _JsonSerialiser.Initialise(typeof(ValueTypes)); _JsonSerialiser.WriteObject(_Stream, obj); var message = String.Format("when culture is {0}", culture); Assert.AreEqual(worksheet.EString("Json"), GetJson(), message); } } }