Skip to content

.NET 8 Support

.NET 8 Support #47

GitHub Actions / .NET Tests succeeded Nov 20, 2023 in 0s

.NET Tests ✅

Tests passed successfully

Report Passed Failed Skipped Time
src/TestResults/Aydsko.iRacingData.IntegrationTests.trx 9s
src/TestResults/net48/Aydsko.iRacingData.UnitTests.trx 123✅ 23s
src/TestResults/net6.0/Aydsko.iRacingData.UnitTests.trx 123✅ 19s
src/TestResults/net8.0/Aydsko.iRacingData.UnitTests.trx 123✅ 10s

✅ src/TestResults/Aydsko.iRacingData.IntegrationTests.trx

No tests found

✅ src/TestResults/net48/Aydsko.iRacingData.UnitTests.trx

123 tests were completed in 23s with 123 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Aydsko.iRacingData.UnitTests.CapturedResponseValidationTests 68✅ 5s
Aydsko.iRacingData.UnitTests.Converters.ServiceStatusHistoryItemArrayConverterConverterTests 2✅ 14ms
Aydsko.iRacingData.UnitTests.Converters.StatusTimeStampConverterTests 4✅ 1ms
Aydsko.iRacingData.UnitTests.Converters.StringFromStringOrNumberConverterTests 8✅ 9ms
Aydsko.iRacingData.UnitTests.Converters.TenThousandthSecondDurationConverterTests 8✅ 1ms
Aydsko.iRacingData.UnitTests.CookiePersistenceTests 3✅ 52ms
Aydsko.iRacingData.UnitTests.DataClientTrackAssetScreenshotUrisTests 4✅ 155ms
Aydsko.iRacingData.UnitTests.DictionaryExtensionTests 6✅ 10ms
Aydsko.iRacingData.UnitTests.PasswordEncodingTests 10✅ 31ms
Aydsko.iRacingData.UnitTests.ServicesTests 2✅ 391ms
Aydsko.iRacingData.UnitTests.TrackScreenshotServiceTests 2✅ 81ms
Aydsko.iRacingData.UnitTests.UrlExtensionsTests 6✅ 8ms

✅ Aydsko.iRacingData.UnitTests.CapturedResponseValidationTests

✅ GetBestLapStatisticsSuccessfulAsync
✅ GetCarAssetDetailsSuccessfulAsync
✅ GetCarClassesSuccessfulAsync
✅ GetCarsSuccessfulAsync
✅ GetCategoriesSuccessfulAsync
✅ GetClubHistoryLookupsSuccessfulAsync
✅ GetCountriesSuccessfulAsync
✅ GetCustomerLeagueSessionsAsync
✅ GetDivisionsSuccessfulAsync
✅ GetDriverAwardsSuccessfulAsync
✅ GetDriverInfoWithLicensesSuccessfulAsync
✅ GetDriverInfoWithoutLicensesSuccessfulAsync
✅ GetEventTypesSuccessfulAsync
✅ GetHostedSessionsCombinedSuccessfulAsync
✅ GetHostedSessionsSuccessfulAsync
✅ GetLeaguePointsSystemsSuccessfulAsync
✅ GetLeagueWithLicensesSucceedsAsync
✅ GetLeagueWithoutLicensesSucceedsAsync
✅ GetLicenseLookupsSuccessfulAsync
✅ GetLookupsSuccessfulAsync
✅ GetMemberChartDataSuccessfulAsync
✅ GetMemberDivisionSuccessfulAsync
✅ GetMemberInfoDuringMaintenanceThrowsAsync
✅ GetMemberInfoSucceedsAsync
✅ GetMemberParticipationCreditsSucceedsAsync
✅ GetMemberProfileSuccessfulAsync
✅ GetMemberRecapSuccessfulAsync
✅ GetMemberRecentRacesSucceedsAsync
✅ GetMemberSummarySuccessfulAsync
✅ GetMemberYearlyStatisticsSuccessfulAsync
✅ GetPastSeasonsForSeriesSuccessfulAsync
✅ GetRaceGuideSuccessfulAsync
✅ GetSeasonDriverStandingsSuccessfulAsync
✅ GetSeasonQualifyResultsSuccesfulAsync
✅ GetSeasonResultsHandlesBadRequestAsync
✅ GetSeasonsWithoutSeriesSuccessfulAsync
✅ GetSeasonsWithSeriesSuccessfulAsync
✅ GetSeasonTeamStandingsSuccessfulAsync
✅ GetSeasonTimeTrialResultsSuccessfulAsync
✅ GetSeasonTimeTrialStandingsSuccessfulAsync
✅ GetSeriesAssetsSuccessfulAsync
✅ GetSeriesSuccessfulAsync
✅ GetServiceStatusSuccessfulAsync
✅ GetSingleDriverSubsessionLapsForbiddenThrowsErrorsAsync
✅ GetSingleDriverSubsessionLapsSuccessfulAsync
✅ GetSpectatorSubsessionIdentifiersAsync
✅ GetStatisticsSeriesSuccesfulAsync
✅ GetSubsessionEventLogForbiddenThrowsErrorsAsync
✅ GetSubsessionEventLogSuccessfulAsync
✅ GetSubSessionLapChartSuccessfulAsync
✅ GetSubSessionResultForbiddenThrowsErrorsAsync
✅ GetSubSessionResultForLeagueSuccessfulAsync
✅ GetSubSessionResultForTeamSuccessfulAsync
✅ GetSubSessionResultSuccessfulAsync
✅ GetSubSessionResultUnauthorizedThrowsErrorsAsync
✅ GetTeamSubsessionLapsForbiddenThrowsErrorsAsync
✅ GetTeamSubsessionLapsSuccessfulAsync
✅ GetTeamSuccessfulAsync
✅ GetTimeAttackMemberSeasonResultsSuccessfulAsync
✅ GetTimeAttackSeriesSuccessfulAsync
✅ GetTrackAssetsSuccessfulAsync
✅ GetTracksSuccessfulAsync
✅ GetWorldRecordStatisticsSuccessfulAsync
✅ ListSeasonsSuccessfulAsync
✅ SearchDriversSuccessfulAsync
✅ SearchHostedResultsSuccessfulAsync
✅ SearchLeagueDirectorySuccessfulAsync
✅ SearchOfficialResultsSuccessfulAsync

✅ Aydsko.iRacingData.UnitTests.Converters.ServiceStatusHistoryItemArrayConverterConverterTests

✅ Read Value: 11:29:57 to 11:30:57 27 Jan 2023
✅ Write Value: 11:29:57 to 11:30:57 27 Jan 2023

✅ Aydsko.iRacingData.UnitTests.Converters.StatusTimeStampConverterTests

✅ Read Value: 11:19:12 27-Jan-2023
✅ Read Value: 22:29:57 27 Jan 2023
✅ Write Value: 11:19:12 27-Jan-2023
✅ Write Value: 22:29:57 27 Jan 2023

✅ Aydsko.iRacingData.UnitTests.Converters.StringFromStringOrNumberConverterTests

✅ Read Value: JSON Null value
✅ Read Value: JSON Number value of 1
✅ Read Value: JSON Number value of zero
✅ Read Value: JSON String value of 'ABC123'
✅ Write Value: JSON Null value
✅ Write Value: JSON Number value of 1
✅ Write Value: JSON Number value of zero
✅ Write Value: JSON String value of 'ABC123'

✅ Aydsko.iRacingData.UnitTests.Converters.TenThousandthSecondDurationConverterTests

✅ Read Value: 0 / 0:00.000
✅ Read Value: 600000 / 1:00.000
✅ Read Value: 834560 / 1:23.456
✅ Read Value: null / null
✅ Write Value: 0 / 0:00.000
✅ Write Value: 600000 / 1:00.000
✅ Write Value: 834560 / 1:23.456
✅ Write Value: null / null

✅ Aydsko.iRacingData.UnitTests.CookiePersistenceTests

✅ GivenOptionsWithARestoreFuncTheFuncIsCalledToGetTheCookies
✅ GivenOptionsWithASaveActionTheSaveActionIsCalledWithTheCookies
✅ GivenOptionsWithNullDelegateValuesWhenAMethodIsCalledThenItWillSucceedAsync

✅ Aydsko.iRacingData.UnitTests.DataClientTrackAssetScreenshotUrisTests

✅ GivenHungaroringTrack_ThenGetTrackAssetScreenshotUrisReturnsCorrectResults
✅ GivenHungaroringTrackId_ThenGetTrackAssetScreenshotUrisAsyncReturnsCorrectResults
✅ GivenSuzukaTrack_ThenGetTrackAssetScreenshotUrisReturnsCorrectResults
✅ GivenSuzukaTrackId_ThenGetScreenshotsByTrackIdReturnsCorrectResults

✅ Aydsko.iRacingData.UnitTests.DictionaryExtensionTests

✅ CheckAddParameterIfNotNull<Boolean>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.Boolean])
✅ CheckAddParameterIfNotNull<DateTime>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.DateTime])
✅ CheckAddParameterIfNotNull<EventType>(Aydsko.iRacingData.UnitTests.ExampleData`1[Aydsko.iRacingData.Common.EventType])
✅ CheckAddParameterIfNotNull<IEnumerable`1>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.Collections.Generic.IEnumerable`1[System.String]])
✅ CheckAddParameterIfNotNull<Int32[]>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.Int32[]])
✅ CheckAddParameterIfNotNull<String>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.String])

✅ Aydsko.iRacingData.UnitTests.PasswordEncodingTests

✅ ValidateLoginRequestViaMethod("[email protected]","MyPassWord","xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaMethod("[email protected]","SuperSecretPassword","nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")
✅ ValidateLoginRequestViaMethodWithPasswordIsEncodedParam("[email protected]","MyPassWord",False,"xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaMethodWithPasswordIsEncodedParam("[email protected]","xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=",True,"xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaMethodWithPasswordIsEncodedParam("[email protected]","nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=",True,"nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")
✅ ValidateLoginRequestViaMethodWithPasswordIsEncodedParam("[email protected]","SuperSecretPassword",False,"nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")
✅ ValidateLoginRequestViaOptions("[email protected]","MyPassWord",False,"xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaOptions("[email protected]","xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=",True,"xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaOptions("[email protected]","nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=",True,"nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")
✅ ValidateLoginRequestViaOptions("[email protected]","SuperSecretPassword",False,"nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")

✅ Aydsko.iRacingData.UnitTests.ServicesTests

✅ LoginAndUserAgentDefaultWorksWhenResolvedFromServicesAsync
✅ LoginAndUserAgentWorksWhenResolvedFromServicesAsync

✅ Aydsko.iRacingData.UnitTests.TrackScreenshotServiceTests

✅ GivenHungaroringTrackId_ThenGetScreenshotsByTrackIdReturnsCorrectResults
✅ GivenSuzukaTrackId_ThenGetScreenshotsByTrackIdReturnsCorrectResults

✅ Aydsko.iRacingData.UnitTests.UrlExtensionsTests

✅ ValidateToUrlWithQueryMethod("https://example.com?a=b",[[foo, bar], [baz, bat]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[[=&?, =?&=?&]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[[foo, bar], [baz, bat]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[[foo, bar]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[[foo, System.String[]]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[])

✅ src/TestResults/net6.0/Aydsko.iRacingData.UnitTests.trx

123 tests were completed in 19s with 123 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Aydsko.iRacingData.UnitTests.CapturedResponseValidationTests 68✅ 3s
Aydsko.iRacingData.UnitTests.Converters.ServiceStatusHistoryItemArrayConverterConverterTests 2✅ 3ms
Aydsko.iRacingData.UnitTests.Converters.StatusTimeStampConverterTests 4✅ 0ms
Aydsko.iRacingData.UnitTests.Converters.StringFromStringOrNumberConverterTests 8✅ 0ms
Aydsko.iRacingData.UnitTests.Converters.TenThousandthSecondDurationConverterTests 8✅ 21ms
Aydsko.iRacingData.UnitTests.CookiePersistenceTests 3✅ 6ms
Aydsko.iRacingData.UnitTests.DataClientTrackAssetScreenshotUrisTests 4✅ 131ms
Aydsko.iRacingData.UnitTests.DictionaryExtensionTests 6✅ 5ms
Aydsko.iRacingData.UnitTests.PasswordEncodingTests 10✅ 13ms
Aydsko.iRacingData.UnitTests.ServicesTests 2✅ 587ms
Aydsko.iRacingData.UnitTests.TrackScreenshotServiceTests 2✅ 65ms
Aydsko.iRacingData.UnitTests.UrlExtensionsTests 6✅ 0ms

✅ Aydsko.iRacingData.UnitTests.CapturedResponseValidationTests

✅ GetBestLapStatisticsSuccessfulAsync
✅ GetCarAssetDetailsSuccessfulAsync
✅ GetCarClassesSuccessfulAsync
✅ GetCarsSuccessfulAsync
✅ GetCategoriesSuccessfulAsync
✅ GetClubHistoryLookupsSuccessfulAsync
✅ GetCountriesSuccessfulAsync
✅ GetCustomerLeagueSessionsAsync
✅ GetDivisionsSuccessfulAsync
✅ GetDriverAwardsSuccessfulAsync
✅ GetDriverInfoWithLicensesSuccessfulAsync
✅ GetDriverInfoWithoutLicensesSuccessfulAsync
✅ GetEventTypesSuccessfulAsync
✅ GetHostedSessionsCombinedSuccessfulAsync
✅ GetHostedSessionsSuccessfulAsync
✅ GetLeaguePointsSystemsSuccessfulAsync
✅ GetLeagueWithLicensesSucceedsAsync
✅ GetLeagueWithoutLicensesSucceedsAsync
✅ GetLicenseLookupsSuccessfulAsync
✅ GetLookupsSuccessfulAsync
✅ GetMemberChartDataSuccessfulAsync
✅ GetMemberDivisionSuccessfulAsync
✅ GetMemberInfoDuringMaintenanceThrowsAsync
✅ GetMemberInfoSucceedsAsync
✅ GetMemberParticipationCreditsSucceedsAsync
✅ GetMemberProfileSuccessfulAsync
✅ GetMemberRecapSuccessfulAsync
✅ GetMemberRecentRacesSucceedsAsync
✅ GetMemberSummarySuccessfulAsync
✅ GetMemberYearlyStatisticsSuccessfulAsync
✅ GetPastSeasonsForSeriesSuccessfulAsync
✅ GetRaceGuideSuccessfulAsync
✅ GetSeasonDriverStandingsSuccessfulAsync
✅ GetSeasonQualifyResultsSuccesfulAsync
✅ GetSeasonResultsHandlesBadRequestAsync
✅ GetSeasonsWithoutSeriesSuccessfulAsync
✅ GetSeasonsWithSeriesSuccessfulAsync
✅ GetSeasonTeamStandingsSuccessfulAsync
✅ GetSeasonTimeTrialResultsSuccessfulAsync
✅ GetSeasonTimeTrialStandingsSuccessfulAsync
✅ GetSeriesAssetsSuccessfulAsync
✅ GetSeriesSuccessfulAsync
✅ GetServiceStatusSuccessfulAsync
✅ GetSingleDriverSubsessionLapsForbiddenThrowsErrorsAsync
✅ GetSingleDriverSubsessionLapsSuccessfulAsync
✅ GetSpectatorSubsessionIdentifiersAsync
✅ GetStatisticsSeriesSuccesfulAsync
✅ GetSubsessionEventLogForbiddenThrowsErrorsAsync
✅ GetSubsessionEventLogSuccessfulAsync
✅ GetSubSessionLapChartSuccessfulAsync
✅ GetSubSessionResultForbiddenThrowsErrorsAsync
✅ GetSubSessionResultForLeagueSuccessfulAsync
✅ GetSubSessionResultForTeamSuccessfulAsync
✅ GetSubSessionResultSuccessfulAsync
✅ GetSubSessionResultUnauthorizedThrowsErrorsAsync
✅ GetTeamSubsessionLapsForbiddenThrowsErrorsAsync
✅ GetTeamSubsessionLapsSuccessfulAsync
✅ GetTeamSuccessfulAsync
✅ GetTimeAttackMemberSeasonResultsSuccessfulAsync
✅ GetTimeAttackSeriesSuccessfulAsync
✅ GetTrackAssetsSuccessfulAsync
✅ GetTracksSuccessfulAsync
✅ GetWorldRecordStatisticsSuccessfulAsync
✅ ListSeasonsSuccessfulAsync
✅ SearchDriversSuccessfulAsync
✅ SearchHostedResultsSuccessfulAsync
✅ SearchLeagueDirectorySuccessfulAsync
✅ SearchOfficialResultsSuccessfulAsync

✅ Aydsko.iRacingData.UnitTests.Converters.ServiceStatusHistoryItemArrayConverterConverterTests

✅ Read Value: 11:29:57 to 11:30:57 27 Jan 2023
✅ Write Value: 11:29:57 to 11:30:57 27 Jan 2023

✅ Aydsko.iRacingData.UnitTests.Converters.StatusTimeStampConverterTests

✅ Read Value: 11:19:12 27-Jan-2023
✅ Read Value: 22:29:57 27 Jan 2023
✅ Write Value: 11:19:12 27-Jan-2023
✅ Write Value: 22:29:57 27 Jan 2023

✅ Aydsko.iRacingData.UnitTests.Converters.StringFromStringOrNumberConverterTests

✅ Read Value: JSON Null value
✅ Read Value: JSON Number value of 1
✅ Read Value: JSON Number value of zero
✅ Read Value: JSON String value of 'ABC123'
✅ Write Value: JSON Null value
✅ Write Value: JSON Number value of 1
✅ Write Value: JSON Number value of zero
✅ Write Value: JSON String value of 'ABC123'

✅ Aydsko.iRacingData.UnitTests.Converters.TenThousandthSecondDurationConverterTests

✅ Read Value: 0 / 0:00.000
✅ Read Value: 600000 / 1:00.000
✅ Read Value: 834560 / 1:23.456
✅ Read Value: null / null
✅ Write Value: 0 / 0:00.000
✅ Write Value: 600000 / 1:00.000
✅ Write Value: 834560 / 1:23.456
✅ Write Value: null / null

✅ Aydsko.iRacingData.UnitTests.CookiePersistenceTests

✅ GivenOptionsWithARestoreFuncTheFuncIsCalledToGetTheCookies
✅ GivenOptionsWithASaveActionTheSaveActionIsCalledWithTheCookies
✅ GivenOptionsWithNullDelegateValuesWhenAMethodIsCalledThenItWillSucceedAsync

✅ Aydsko.iRacingData.UnitTests.DataClientTrackAssetScreenshotUrisTests

✅ GivenHungaroringTrack_ThenGetTrackAssetScreenshotUrisReturnsCorrectResults
✅ GivenHungaroringTrackId_ThenGetTrackAssetScreenshotUrisAsyncReturnsCorrectResults
✅ GivenSuzukaTrack_ThenGetTrackAssetScreenshotUrisReturnsCorrectResults
✅ GivenSuzukaTrackId_ThenGetScreenshotsByTrackIdReturnsCorrectResults

✅ Aydsko.iRacingData.UnitTests.DictionaryExtensionTests

✅ CheckAddParameterIfNotNull<Boolean>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.Boolean])
✅ CheckAddParameterIfNotNull<DateTime>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.DateTime])
✅ CheckAddParameterIfNotNull<EventType>(Aydsko.iRacingData.UnitTests.ExampleData`1[Aydsko.iRacingData.Common.EventType])
✅ CheckAddParameterIfNotNull<IEnumerable`1>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.Collections.Generic.IEnumerable`1[System.String]])
✅ CheckAddParameterIfNotNull<Int32[]>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.Int32[]])
✅ CheckAddParameterIfNotNull<String>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.String])

✅ Aydsko.iRacingData.UnitTests.PasswordEncodingTests

✅ ValidateLoginRequestViaMethod("[email protected]","MyPassWord","xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaMethod("[email protected]","SuperSecretPassword","nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")
✅ ValidateLoginRequestViaMethodWithPasswordIsEncodedParam("[email protected]","MyPassWord",False,"xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaMethodWithPasswordIsEncodedParam("[email protected]","xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=",True,"xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaMethodWithPasswordIsEncodedParam("[email protected]","nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=",True,"nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")
✅ ValidateLoginRequestViaMethodWithPasswordIsEncodedParam("[email protected]","SuperSecretPassword",False,"nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")
✅ ValidateLoginRequestViaOptions("[email protected]","MyPassWord",False,"xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaOptions("[email protected]","xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=",True,"xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaOptions("[email protected]","nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=",True,"nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")
✅ ValidateLoginRequestViaOptions("[email protected]","SuperSecretPassword",False,"nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")

✅ Aydsko.iRacingData.UnitTests.ServicesTests

✅ LoginAndUserAgentDefaultWorksWhenResolvedFromServicesAsync
✅ LoginAndUserAgentWorksWhenResolvedFromServicesAsync

✅ Aydsko.iRacingData.UnitTests.TrackScreenshotServiceTests

✅ GivenHungaroringTrackId_ThenGetScreenshotsByTrackIdReturnsCorrectResults
✅ GivenSuzukaTrackId_ThenGetScreenshotsByTrackIdReturnsCorrectResults

✅ Aydsko.iRacingData.UnitTests.UrlExtensionsTests

✅ ValidateToUrlWithQueryMethod("https://example.com?a=b",[[foo, bar], [baz, bat]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[[=&?, =?&=?&]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[[foo, bar], [baz, bat]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[[foo, bar]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[[foo, System.String[]]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[])

✅ src/TestResults/net8.0/Aydsko.iRacingData.UnitTests.trx

123 tests were completed in 10s with 123 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Aydsko.iRacingData.UnitTests.CapturedResponseValidationTests 68✅ 3s
Aydsko.iRacingData.UnitTests.Converters.ServiceStatusHistoryItemArrayConverterConverterTests 2✅ 3ms
Aydsko.iRacingData.UnitTests.Converters.StatusTimeStampConverterTests 4✅ 1ms
Aydsko.iRacingData.UnitTests.Converters.StringFromStringOrNumberConverterTests 8✅ 1ms
Aydsko.iRacingData.UnitTests.Converters.TenThousandthSecondDurationConverterTests 8✅ 20ms
Aydsko.iRacingData.UnitTests.CookiePersistenceTests 3✅ 8ms
Aydsko.iRacingData.UnitTests.DataClientTrackAssetScreenshotUrisTests 4✅ 145ms
Aydsko.iRacingData.UnitTests.DictionaryExtensionTests 6✅ 6ms
Aydsko.iRacingData.UnitTests.PasswordEncodingTests 10✅ 17ms
Aydsko.iRacingData.UnitTests.ServicesTests 2✅ 59ms
Aydsko.iRacingData.UnitTests.TrackScreenshotServiceTests 2✅ 69ms
Aydsko.iRacingData.UnitTests.UrlExtensionsTests 6✅ 1ms

✅ Aydsko.iRacingData.UnitTests.CapturedResponseValidationTests

✅ GetBestLapStatisticsSuccessfulAsync
✅ GetCarAssetDetailsSuccessfulAsync
✅ GetCarClassesSuccessfulAsync
✅ GetCarsSuccessfulAsync
✅ GetCategoriesSuccessfulAsync
✅ GetClubHistoryLookupsSuccessfulAsync
✅ GetCountriesSuccessfulAsync
✅ GetCustomerLeagueSessionsAsync
✅ GetDivisionsSuccessfulAsync
✅ GetDriverAwardsSuccessfulAsync
✅ GetDriverInfoWithLicensesSuccessfulAsync
✅ GetDriverInfoWithoutLicensesSuccessfulAsync
✅ GetEventTypesSuccessfulAsync
✅ GetHostedSessionsCombinedSuccessfulAsync
✅ GetHostedSessionsSuccessfulAsync
✅ GetLeaguePointsSystemsSuccessfulAsync
✅ GetLeagueWithLicensesSucceedsAsync
✅ GetLeagueWithoutLicensesSucceedsAsync
✅ GetLicenseLookupsSuccessfulAsync
✅ GetLookupsSuccessfulAsync
✅ GetMemberChartDataSuccessfulAsync
✅ GetMemberDivisionSuccessfulAsync
✅ GetMemberInfoDuringMaintenanceThrowsAsync
✅ GetMemberInfoSucceedsAsync
✅ GetMemberParticipationCreditsSucceedsAsync
✅ GetMemberProfileSuccessfulAsync
✅ GetMemberRecapSuccessfulAsync
✅ GetMemberRecentRacesSucceedsAsync
✅ GetMemberSummarySuccessfulAsync
✅ GetMemberYearlyStatisticsSuccessfulAsync
✅ GetPastSeasonsForSeriesSuccessfulAsync
✅ GetRaceGuideSuccessfulAsync
✅ GetSeasonDriverStandingsSuccessfulAsync
✅ GetSeasonQualifyResultsSuccesfulAsync
✅ GetSeasonResultsHandlesBadRequestAsync
✅ GetSeasonsWithoutSeriesSuccessfulAsync
✅ GetSeasonsWithSeriesSuccessfulAsync
✅ GetSeasonTeamStandingsSuccessfulAsync
✅ GetSeasonTimeTrialResultsSuccessfulAsync
✅ GetSeasonTimeTrialStandingsSuccessfulAsync
✅ GetSeriesAssetsSuccessfulAsync
✅ GetSeriesSuccessfulAsync
✅ GetServiceStatusSuccessfulAsync
✅ GetSingleDriverSubsessionLapsForbiddenThrowsErrorsAsync
✅ GetSingleDriverSubsessionLapsSuccessfulAsync
✅ GetSpectatorSubsessionIdentifiersAsync
✅ GetStatisticsSeriesSuccesfulAsync
✅ GetSubsessionEventLogForbiddenThrowsErrorsAsync
✅ GetSubsessionEventLogSuccessfulAsync
✅ GetSubSessionLapChartSuccessfulAsync
✅ GetSubSessionResultForbiddenThrowsErrorsAsync
✅ GetSubSessionResultForLeagueSuccessfulAsync
✅ GetSubSessionResultForTeamSuccessfulAsync
✅ GetSubSessionResultSuccessfulAsync
✅ GetSubSessionResultUnauthorizedThrowsErrorsAsync
✅ GetTeamSubsessionLapsForbiddenThrowsErrorsAsync
✅ GetTeamSubsessionLapsSuccessfulAsync
✅ GetTeamSuccessfulAsync
✅ GetTimeAttackMemberSeasonResultsSuccessfulAsync
✅ GetTimeAttackSeriesSuccessfulAsync
✅ GetTrackAssetsSuccessfulAsync
✅ GetTracksSuccessfulAsync
✅ GetWorldRecordStatisticsSuccessfulAsync
✅ ListSeasonsSuccessfulAsync
✅ SearchDriversSuccessfulAsync
✅ SearchHostedResultsSuccessfulAsync
✅ SearchLeagueDirectorySuccessfulAsync
✅ SearchOfficialResultsSuccessfulAsync

✅ Aydsko.iRacingData.UnitTests.Converters.ServiceStatusHistoryItemArrayConverterConverterTests

✅ Read Value: 11:29:57 to 11:30:57 27 Jan 2023
✅ Write Value: 11:29:57 to 11:30:57 27 Jan 2023

✅ Aydsko.iRacingData.UnitTests.Converters.StatusTimeStampConverterTests

✅ Read Value: 11:19:12 27-Jan-2023
✅ Read Value: 22:29:57 27 Jan 2023
✅ Write Value: 11:19:12 27-Jan-2023
✅ Write Value: 22:29:57 27 Jan 2023

✅ Aydsko.iRacingData.UnitTests.Converters.StringFromStringOrNumberConverterTests

✅ Read Value: JSON Null value
✅ Read Value: JSON Number value of 1
✅ Read Value: JSON Number value of zero
✅ Read Value: JSON String value of 'ABC123'
✅ Write Value: JSON Null value
✅ Write Value: JSON Number value of 1
✅ Write Value: JSON Number value of zero
✅ Write Value: JSON String value of 'ABC123'

✅ Aydsko.iRacingData.UnitTests.Converters.TenThousandthSecondDurationConverterTests

✅ Read Value: 0 / 0:00.000
✅ Read Value: 600000 / 1:00.000
✅ Read Value: 834560 / 1:23.456
✅ Read Value: null / null
✅ Write Value: 0 / 0:00.000
✅ Write Value: 600000 / 1:00.000
✅ Write Value: 834560 / 1:23.456
✅ Write Value: null / null

✅ Aydsko.iRacingData.UnitTests.CookiePersistenceTests

✅ GivenOptionsWithARestoreFuncTheFuncIsCalledToGetTheCookies
✅ GivenOptionsWithASaveActionTheSaveActionIsCalledWithTheCookies
✅ GivenOptionsWithNullDelegateValuesWhenAMethodIsCalledThenItWillSucceedAsync

✅ Aydsko.iRacingData.UnitTests.DataClientTrackAssetScreenshotUrisTests

✅ GivenHungaroringTrack_ThenGetTrackAssetScreenshotUrisReturnsCorrectResults
✅ GivenHungaroringTrackId_ThenGetTrackAssetScreenshotUrisAsyncReturnsCorrectResults
✅ GivenSuzukaTrack_ThenGetTrackAssetScreenshotUrisReturnsCorrectResults
✅ GivenSuzukaTrackId_ThenGetScreenshotsByTrackIdReturnsCorrectResults

✅ Aydsko.iRacingData.UnitTests.DictionaryExtensionTests

✅ CheckAddParameterIfNotNull<Boolean>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.Boolean])
✅ CheckAddParameterIfNotNull<DateTime>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.DateTime])
✅ CheckAddParameterIfNotNull<EventType>(Aydsko.iRacingData.UnitTests.ExampleData`1[Aydsko.iRacingData.Common.EventType])
✅ CheckAddParameterIfNotNull<IEnumerable`1>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.Collections.Generic.IEnumerable`1[System.String]])
✅ CheckAddParameterIfNotNull<Int32[]>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.Int32[]])
✅ CheckAddParameterIfNotNull<String>(Aydsko.iRacingData.UnitTests.ExampleData`1[System.String])

✅ Aydsko.iRacingData.UnitTests.PasswordEncodingTests

✅ ValidateLoginRequestViaMethod("[email protected]","MyPassWord","xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaMethod("[email protected]","SuperSecretPassword","nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")
✅ ValidateLoginRequestViaMethodWithPasswordIsEncodedParam("[email protected]","MyPassWord",False,"xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaMethodWithPasswordIsEncodedParam("[email protected]","xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=",True,"xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaMethodWithPasswordIsEncodedParam("[email protected]","nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=",True,"nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")
✅ ValidateLoginRequestViaMethodWithPasswordIsEncodedParam("[email protected]","SuperSecretPassword",False,"nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")
✅ ValidateLoginRequestViaOptions("[email protected]","MyPassWord",False,"xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaOptions("[email protected]","xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=",True,"xGKecAR27ALXNuMLsGaG0v5Q9pSs2tZTZRKNgmHMg+Q=")
✅ ValidateLoginRequestViaOptions("[email protected]","nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=",True,"nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")
✅ ValidateLoginRequestViaOptions("[email protected]","SuperSecretPassword",False,"nXmEFCdpHheD1R3XBVkm6VQavR7ZLbW7SRmzo/MfFso=")

✅ Aydsko.iRacingData.UnitTests.ServicesTests

✅ LoginAndUserAgentDefaultWorksWhenResolvedFromServicesAsync
✅ LoginAndUserAgentWorksWhenResolvedFromServicesAsync

✅ Aydsko.iRacingData.UnitTests.TrackScreenshotServiceTests

✅ GivenHungaroringTrackId_ThenGetScreenshotsByTrackIdReturnsCorrectResults
✅ GivenSuzukaTrackId_ThenGetScreenshotsByTrackIdReturnsCorrectResults

✅ Aydsko.iRacingData.UnitTests.UrlExtensionsTests

✅ ValidateToUrlWithQueryMethod("https://example.com?a=b",[[foo, bar], [baz, bat]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[[=&?, =?&=?&]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[[foo, bar], [baz, bat]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[[foo, bar]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[[foo, System.String[]]])
✅ ValidateToUrlWithQueryMethod("https://example.com",[])