Skip to content

Update pipeline: use ubuntu instead of windows, fix code bugs that happen in ubuntu #270

Update pipeline: use ubuntu instead of windows, fix code bugs that happen in ubuntu

Update pipeline: use ubuntu instead of windows, fix code bugs that happen in ubuntu #270

GitHub Actions / Tests Report succeeded May 28, 2024 in 0s

51 passed, 0 failed and 1 skipped

Tests passed successfully

✅ TestResults/test-results.trx

52 tests were completed in 13s with 51 passed, 0 failed and 1 skipped.

Test suite Passed Failed Skipped Time
IsolatedTests.ComponentTestings.CarHappyTests 1✅ 62ms
IsolatedTests.ComponentTestings.GetMovieHappyTests 7✅ 1⚪ 169ms
IsolatedTests.ComponentTestings.GetMovieUnhappyTests 12✅ 7s
IsolatedTests.ComponentTestings.GetUserHappyTests 1✅ 14ms
IsolatedTests.ComponentTestings.MathHappyTests 1✅ 197ms
IsolatedTests.ComponentTestings.PostHappyTests 1✅ 79ms
IsolatedTests.UnitTests.CacheWrapperTests 2✅ 78ms
MovieProject.IsolatedTests.ComponentTesting.SearchUserHappyTests 1✅ 466ms
MovieProject.IsolatedTests.UnitTests.StringExtensionsTests 25✅ 66ms

✅ IsolatedTests.ComponentTestings.CarHappyTests

✅ When_Listing_Adding_ListingAgain_Success

✅ IsolatedTests.ComponentTestings.GetMovieHappyTests

✅ When_UserAddsMovieToResearchQueue_Then_Success
✅ When_UserAsksForMovie_30times_WithSameStub_Works
✅ When_UserAsksForMovieThatDoesntExist_Then_Return400Status
✅ When_UserAsksForMovieWithMostFields_Then_ReturnMovieProperly
⚪ When_UserAsksForMovieWithMostFields_Then_ReturnMovieProperly_Incomplete
✅ When_UserAsksForMovieWithMostFields_With_ResponseBodyOnly_Then_ReturnMovieProperly
✅ When_UserAsksForMovieWithSomeInvalidValues_Then_ReturnMovieProperly
✅ When_UserAsksForMoviFewFields_Then_ReturnMovieProperly

✅ IsolatedTests.ComponentTestings.GetMovieUnhappyTests

✅ When_CallThrowsException_Then_LogError_And_Return_Downstream_Error
✅ When_DownstreamSystemReturnsError_Then_LogError_And_ReturnDefaultErrorMessage(httpStatus: InternalServerError, fileName: "Fake_Responses/Unhappy/500_InternalServerError.txt", logContent: "<title>Internal Server Error</title>")
✅ When_DownstreamSystemReturnsError_Then_LogError_And_ReturnDefaultErrorMessage(httpStatus: OK, fileName: "Real_Responses/Unhappy/200_SomethingWentWrong_When"..., logContent: "Something went wrong")
✅ When_DownstreamSystemReturnsError_Then_LogError_And_ReturnDefaultErrorMessage(httpStatus: RequestTimeout, fileName: "Fake_Responses/Unhappy/408_Timeout.txt", logContent: " ")
✅ When_DownstreamSystemReturnsError_Then_LogError_And_ReturnDefaultErrorMessage(httpStatus: ServiceUnavailable, fileName: "Fake_Responses/Unhappy/503_ServiceUnailable.txt", logContent: "The service is temporarily unavailable")
✅ When_DownstreamSystemReturnsError_Then_LogError_And_ReturnDefaultErrorMessage(httpStatus: TooManyRequests, fileName: "Fake_Responses/Unhappy/429_TooManyRequests_Properl"..., logContent: "Too many requests with your api key")
✅ When_DownstreamSystemReturnsError_Then_LogError_And_ReturnDefaultErrorMessage(httpStatus: TooManyRequests, fileName: "Fake_Responses/Unhappy/429_TooManyRequests_RawForm"..., logContent: "Too many requests with your api key")
✅ When_DownstreamSystemReturnsError_Then_LogError_And_ReturnDefaultErrorMessage(httpStatus: Unauthorized, fileName: "Real_Responses/Unhappy/401_InvalidKey.txt", logContent: "Invalid API key!")
✅ When_DownstreamSystemReturnsError_Then_LogError_And_ReturnDefaultErrorMessage(httpStatus: Unauthorized, fileName: "Real_Responses/Unhappy/401_LimitReached.txt", logContent: "Request limit reached")
✅ When_DownstreamSystemReturnsInvalidJson_Then_LogError_And_ReturnDefaultErrorMessage
✅ When_UserDoesntSendNecessaryInput_Then_LogWarning_And_ReturnBadRequestMessage(route: "movie/    a", correctMessage: "name has too few characters", culprit: "a")
✅ When_UserDoesntSendNecessaryInput_Then_LogWarning_And_ReturnBadRequestMessage(route: "movie/1    ", correctMessage: "name has too few characters", culprit: "1")

✅ IsolatedTests.ComponentTestings.GetUserHappyTests

✅ When_UserAsksForUserList_Then_ReturnListProperly

✅ IsolatedTests.ComponentTestings.MathHappyTests

✅ When_CallingManyWcfMethods_Then_CanPerformMath_Successfully

✅ IsolatedTests.ComponentTestings.PostHappyTests

✅ When_Creating_Post_Success

✅ IsolatedTests.UnitTests.CacheWrapperTests

✅ GetOrSetFromCache_Caches_Properly
✅ GetOrSetFromCache_Doesnt_Cache_When_Required

✅ MovieProject.IsolatedTests.ComponentTesting.SearchUserHappyTests

✅ When_UserSearchesWithValidParameters_Then_ReturnListProperly

✅ MovieProject.IsolatedTests.UnitTests.StringExtensionsTests

✅ CanCleanNA(originalString: "    ", expectedResult: "")
✅ CanCleanNA(originalString: "   some title  ", expectedResult: "some title")
✅ CanCleanNA(originalString: "", expectedResult: "")
✅ CanCleanNA(originalString: "N/A", expectedResult: "")
✅ CanCleanYear(yearString: "    ", expectedResult: "Unknown")
✅ CanCleanYear(yearString: "   2019   ", expectedResult: "2019")
✅ CanCleanYear(yearString: "", expectedResult: "Unknown")
✅ CanCleanYear(yearString: "0", expectedResult: "Unknown")
✅ CanCleanYear(yearString: "1887", expectedResult: "Unknown")
✅ CanCleanYear(yearString: "1888", expectedResult: "1888")
✅ CanCleanYear(yearString: "2019", expectedResult: "2019")
✅ CanCleanYear(yearString: "3019", expectedResult: "Unknown")
✅ CanCleanYear(yearString: "gibberish", expectedResult: "Unknown")
✅ CanCleanYear(yearString: null, expectedResult: "Unknown")
✅ CanFormatDuration(durationInMinutes: "    ", durationFormatted: "Unknown")
✅ CanFormatDuration(durationInMinutes: " ", durationFormatted: "Unknown")
✅ CanFormatDuration(durationInMinutes: "-1 min", durationFormatted: "Unknown")
✅ CanFormatDuration(durationInMinutes: "0 min", durationFormatted: "Unknown")
✅ CanFormatDuration(durationInMinutes: "1 min", durationFormatted: "1 min")
✅ CanFormatDuration(durationInMinutes: "136 min", durationFormatted: "2.3h")
✅ CanFormatDuration(durationInMinutes: "43,200 min", durationFormatted: "720h")
✅ CanFormatDuration(durationInMinutes: "59 min", durationFormatted: "59 min")
✅ CanFormatDuration(durationInMinutes: "60 gibberish", durationFormatted: "Unknown")
✅ CanFormatDuration(durationInMinutes: "60 min", durationFormatted: "1h")
✅ CanFormatDuration(durationInMinutes: null, durationFormatted: "Unknown")