Fix for #564 - make sure parallel corpora exist before updating #1382
351 passed, 2 failed and 0 skipped
✅ src/DataAccess/test/SIL.DataAccess.Tests/TestResults/test-results.trx
25 tests were completed in 2s with 25 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
SIL.DataAccess.MemoryRepositoryTests | 25✅ | 245ms |
✅ SIL.DataAccess.MemoryRepositoryTests
✅ DeleteAsync_DoesNotExist
✅ DeleteAsync_Exists
✅ GetAsync_DoesNotExist
✅ GetAsync_Exists
✅ InsertAsync_DoesNotExist
✅ InsertAsync_Exists
✅ InsertAsync_ReadOnlyCollectionExpression
✅ UpdateAsync_Add_Array
✅ UpdateAsync_Add_List
✅ UpdateAsync_Add_ReadOnlyCollection
✅ UpdateAsync_Add_ReadOnlyList
✅ UpdateAsync_DoesNotExist
✅ UpdateAsync_Remove_Array
✅ UpdateAsync_Remove_List
✅ UpdateAsync_Remove_ReadOnlyCollection
✅ UpdateAsync_Remove_ReadOnlyList
✅ UpdateAsync_RemoveAll_Array
✅ UpdateAsync_RemoveAll_List
✅ UpdateAsync_RemoveAll_ReadOnlyCollection
✅ UpdateAsync_RemoveAll_ReadOnlyList
✅ UpdateAsync_Set
✅ UpdateAsync_SetAll
✅ UpdateAsync_SetOnInsert
✅ UpdateAsync_Unset
✅ UpdateAsync_Upsert
✅ src/Machine/test/Serval.Machine.Shared.Tests/TestResults/test-results.trx
102 tests were completed in 20s with 102 passed, 0 failed and 0 skipped.
✅ Serval.Machine.Shared.Services.ClearMLServiceTests
✅ CreateTaskAsync
✅ Serval.Machine.Shared.Services.DistributedReaderWriterLockFactoryTests
✅ InitAsync_ReleaseReaderLocks
✅ InitAsync_ReleaseWriterLocks
✅ InitAsync_RemoveWaiters
✅ Serval.Machine.Shared.Services.DistributedReaderWriterLockTests
✅ ReaderLockAsync_Cancelled
✅ ReaderLockAsync_NoLockAcquired
✅ ReaderLockAsync_ReaderLockAcquired
✅ ReaderLockAsync_WriterLockAcquiredAndExpired
✅ ReaderLockAsync_WriterLockAcquiredAndNotReleased
✅ ReaderLockAsync_WriterLockAcquiredAndReleased
✅ WriterLockAsync_Cancelled
✅ WriterLockAsync_FirstWriterLockHasPriority
✅ WriterLockAsync_NoLockAcquired
✅ WriterLockAsync_ReaderLockAcquiredAndNotReleased
✅ WriterLockAsync_ReaderLockAcquiredAndReleased
✅ WriterLockAsync_WriterLockAcquiredAndExpired
✅ WriterLockAsync_WriterLockAcquiredAndNeverReleased
✅ WriterLockAsync_WriterLockAcquiredAndReleased
✅ WriterLockAsync_WriterLockTakesPriorityOverReaderLock
✅ Serval.Machine.Shared.Services.InMemoryStorageTests
✅ DeleteAsync
✅ ExistsAsync
✅ ListFilesAsync_DoNotRecurse
✅ ListFilesAsync_Recurse
✅ OpenReadAsync
✅ Serval.Machine.Shared.Services.LanguageTagServiceTests
✅ ConvertToFlores200CodeTest("arb","arb_Arab")
✅ ConvertToFlores200CodeTest("cmn-Hant","zho_Hant")
✅ ConvertToFlores200CodeTest("cmn","zho_Hans")
✅ ConvertToFlores200CodeTest("eng-Latn","eng_Latn")
✅ ConvertToFlores200CodeTest("eng","eng_Latn")
✅ ConvertToFlores200CodeTest("es","spa_Latn")
✅ ConvertToFlores200CodeTest("hne","hne_Deva")
✅ ConvertToFlores200CodeTest("kor_Kore","kor_Hang")
✅ ConvertToFlores200CodeTest("kor","kor_Hang")
✅ ConvertToFlores200CodeTest("ks-Arab","kas_Arab")
✅ ConvertToFlores200CodeTest("ms","zsm_Latn")
✅ ConvertToFlores200CodeTest("srp_Cyrl","srp_Cyrl")
✅ ConvertToFlores200CodeTest("zh-Hant","zho_Hant")
✅ ConvertToFlores200CodeTest("zh-TW","zho_Hant")
✅ ConvertToFlores200CodeTest("zh","zho_Hans")
✅ GetLanguageInfoAsync("cmn","zho_Hans",True)
✅ GetLanguageInfoAsync("en","eng_Latn",True)
✅ GetLanguageInfoAsync("ms","zsm_Latn",True)
✅ GetLanguageInfoAsync("xyz","xyz",False)
✅ Serval.Machine.Shared.Services.LocalStorageTests
✅ DeleteFileAsync
✅ ExistsAsync
✅ ListFilesAsync_DoNotRecurse
✅ ListFilesAsync_Recurse
✅ OpenReadAsync
✅ Serval.Machine.Shared.Services.MessageOutboxDeliveryServiceTests
✅ ProcessMessagesAsync
✅ ProcessMessagesAsync_File
✅ ProcessMessagesAsync_Timeout
✅ ProcessMessagesAsync_UnavailableFailure
✅ Serval.Machine.Shared.Services.MessageOutboxServiceTests
✅ EnqueueMessageAsync_ContentTooLarge
✅ EnqueueMessageAsync_ExistingOutbox
✅ EnqueueMessageAsync_HasContentStream
✅ EnqueueMessageAsync_NoContentStream
✅ Serval.Machine.Shared.Services.ModelCleanupServiceTests
✅ CheckModelsAsync_ValidFiles
✅ Serval.Machine.Shared.Services.NmtClearMLBuildJobFactoryTests
✅ CreateJobScriptAsync_BuildOptions
✅ CreateJobScriptAsync_NoBuildOptions
✅ Serval.Machine.Shared.Services.NmtEngineServiceTests
✅ CancelBuildAsync_Building
✅ CancelBuildAsync_NotBuilding
✅ DeleteAsync_WhileBuilding
✅ StartBuildAsync
✅ Serval.Machine.Shared.Services.PreprocessBuildJobTests
✅ ParallelCorpusAsync
✅ ParallelCorpusAsync_UseKeyTerms
✅ ParallelCorpusAsync_UseKeyTerms_TextIds
✅ RunAsync_DisableKeyTerms
✅ RunAsync_EnableKeyTerms
✅ RunAsync_FilterOutEverything
✅ RunAsync_MixedSource_Paratext
✅ RunAsync_MixedSource_Text
✅ RunAsync_OnlyParseSelectedBooks_NoBadBooks
✅ RunAsync_OnlyParseSelectedBooks_PretranslateOnBadBook
✅ RunAsync_OnlyParseSelectedBooks_TrainOnBadBook
✅ RunAsync_PretranslateAll
✅ RunAsync_PretranslateChapters
✅ RunAsync_PretranslateTextIds
✅ RunAsync_PretranslateTextIdsOverlapWithTrainOnTextIds
✅ RunAsync_RemoveFreestandingEllipses
✅ RunAsync_TrainAndPretranslateAll
✅ RunAsync_TrainOnAll
✅ RunAsync_TrainOnChapters
✅ RunAsync_TrainOnTextIds
✅ RunAsync_UnknownLanguageTagsNoData
✅ RunAsync_UnknownLanguageTagsNoDataSmtTransfer
✅ Serval.Machine.Shared.Services.ServalPlatformOutboxMessageHandlerTests
✅ HandleMessageAsync_BuildStarted
✅ HandleMessageAsync_InsertPretranslations
✅ Serval.Machine.Shared.Services.SmtTransferEngineServiceTests
✅ CancelBuildAsync_Building(ClearML)
✅ CancelBuildAsync_Building(Hangfire)
✅ CancelBuildAsync_NotBuilding
✅ CommitAsync_LoadedActive
✅ CommitAsync_LoadedInactive
✅ CreateAsync
✅ DeleteAsync_WhileBuilding(ClearML)
✅ DeleteAsync_WhileBuilding(Hangfire)
✅ GetWordGraphAsync
✅ StartBuildAsync_RestartUnfinishedBuild
✅ StartBuildAsync(ClearML)
✅ StartBuildAsync(Hangfire)
✅ TrainSegmentPairAsync(ClearML)
✅ TrainSegmentPairAsync(Hangfire)
✅ TranslateAsync
❌ src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
157 tests were completed in 475s with 155 passed, 2 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
Serval.ApiServer.DataFilesTests | 22✅ | 1❌ | 63s | |
Serval.ApiServer.StatusTests | 4✅ | 9s | ||
Serval.ApiServer.TranslationEngineTests | 118✅ | 1❌ | 372s | |
Serval.ApiServer.WebhooksTests | 11✅ | 25s |
❌ Serval.ApiServer.DataFilesTests
✅ CreateAsync(["create:files", "read:files"],201)
✅ CreateAsync(["create:files", "read:files"],400)
✅ CreateAsync(["read:files"],403)
✅ DeleteAsync(["delete:files", "read:files"],200,"000000000000000000000001")
✅ DeleteAsync(["delete:files", "read:files"],403,"000000000000000000000003")
✅ DeleteAsync(["delete:files", "read:files"],404,"000000000000000000000004")
✅ DeleteAsync(["read:files"],403,"000000000000000000000001")
✅ DownloadAsync(["create:files", "read:files"],200,"")
✅ DownloadAsync(["create:files", "read:files"],403,"000000000000000000000003")
✅ DownloadAsync(["create:files", "read:files"],404,"000000000000000000000004")
✅ DownloadAsync(["create:files", "update:files"],403,"")
✅ GetAllAsync(["create:translation_engines"],403)
✅ GetAllAsync(["read:files"],200)
✅ GetByIDAsync(["create:translation_engines"],403,"000000000000000000000001")
✅ GetByIDAsync(["read:files"],200,"000000000000000000000001")
✅ GetByIDAsync(["read:files"],403,"000000000000000000000003")
✅ GetByIDAsync(["read:files"],404,"000000000000000000000004")
✅ GetByIDAsync(["read:files"],404,"phony_id")
✅ UpdateAsync(["read:files"],403,"000000000000000000000001")
❌ UpdateAsync(["update:files", "read:files"],200,"000000000000000000000001")
Assert.That(code, new ThrowsNothingConstraint())
Expected: No Exception to be thrown
But was: <System.ArgumentNullException: Value cannot be null. (Parameter 'expression')
at MongoDB.Driver.Core.Misc.Ensure.IsNotNull[T](T value, String paramName)
at MongoDB.Driver.ExpressionFieldDefinition`1..ctor(LambdaExpression expression)
at MongoDB.Driver.FilterDefinitionBuilder`1.Exists(Expression`1 field, Boolean exists)
at SIL.DataAccess.MongoUpdateBuilder`1.SetAll[TItem,TField](Expression`1 collectionField, Expression`1 itemField, TField value, Expression`1 predicate, Expression`1 setIfFieldExists) in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoUpdateBuilder.cs:line 80
at Serval.Translation.Services.EngineService.<>c__DisplayClass28_0.<UpdateDataFileFilenameFilesAsync>b__1(IUpdateBuilder`1 u) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Services/EngineService.cs:line 603
at SIL.DataAccess.MongoRepository`1.UpdateAllAsync(Expression`1 filter, Action`1 update, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoRepository.cs:line 167
at Serval.Translation.Consumers.DataFileUpdatedConsumer.Consume(ConsumeContext`1 context) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Consumers/DataFileUpdatedConsumer.cs:line 9
at MassTransit.DependencyInjection.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/DependencyInjection/DependencyInjection/ScopeConsumerFactory.cs:line 22
at MassTransit.DependencyInjection.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/DependencyInjection/DependencyInjection/ScopeConsumerFactory.cs:line 22
at MassTransit.Middleware.ConsumerMessageFilter`2.MassTransit.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/ConsumerMessageFilter.cs:line 48
at MassTransit.Middleware.ConsumerMessageFilter`2.MassTransit.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/ConsumerMessageFilter.cs:line 73
at MassTransit.Middleware.TeeFilter`1.<>c__DisplayClass5_0.<<Send>g__SendAsync|1>d.MoveNext() in /_/src/MassTransit/Middleware/TeeFilter.cs:line 40
--- End of stack trace from previous location ---
at MassTransit.Middleware.ConsumeContextOutputMessageTypeFilter`1.SendToOutput(IPipe`1 next, ConsumeContext`1 pipeContext) in /_/src/MassTransit/Middleware/ConsumeContextOutputMessageTypeFilter.cs:line 76
at MassTransit.Middleware.ConsumeContextOutputMessageTypeFilter`1.SendToOutput(IPipe`1 next, ConsumeContext`1 pipeContext) in /_/src/MassTransit/Middleware/ConsumeContextOutputMessageTypeFilter.cs:line 108
at MassTransit.Middleware.ConsumeContextMessageTypeFilter.<>c__DisplayClass8_0.<<Send>g__SendAsync|0>d.MoveNext() in /_/src/MassTransit/Middleware/MessageTypeFilter.cs:line 76
--- End of stack trace from previous location ---
at MassTransit.Middleware.DeserializeFilter.Send(ReceiveContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/DeserializeFilter.cs:line 40
at MassTransit.Middleware.RescueFilter`2.MassTransit.IFilter<TContext>.Send(TContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RescueFilter.cs:line 43
at MassTransit.Internals.ExceptionExtensions.Rethrow(Exception exception) in /_/src/MassTransit.Abstractions/Internals/Extensions/ExceptionExtensions.cs:line 15
at MassTransit.Middleware.RethrowErrorTransportFilter.Send(ExceptionReceiveContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RethrowErrorTransportFilter.cs:line 14
at MassTransit.Middleware.RescueFilter`2.MassTransit.IFilter<TContext>.Send(TContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RescueFilter.cs:line 61
at MassTransit.Middleware.DeadLetterFilter.MassTransit.IFilter<MassTransit.ReceiveContext>.Send(ReceiveContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/DeadLetterFilter.cs:line 32
at MassTransit.Transports.ReceivePipeDispatcher.Dispatch(ReceiveContext context, ReceiveLockContext receiveLock) in /_/src/MassTransit/Transports/ReceivePipeDispatcher.cs:line 65
at MassTransit.Transports.ReceivePipeDispatcher.Dispatch(ReceiveContext context, ReceiveLockContext receiveLock) in /_/src/MassTransit/Transports/ReceivePipeDispatcher.cs:line 108
at MassTransit.Transports.ReceivePipeDispatcher.Dispatch(ReceiveContext context, ReceiveLockContext receiveLock) in /_/src/MassTransit/Transports/ReceivePipeDispatcher.cs:line 115
at MassTransit.Mediator.Contexts.MediatorSendEndpoint.SendMessage[T](T message, IPipe`1 pipe, CancellationToken cancellationToken) in /_/src/MassTransit/Mediator/Contexts/MediatorSendEndpoint.cs:line 222
at MassTransit.Mediator.Contexts.MediatorSendEndpoint.SendMessage[T](T message, IPipe`1 pipe, CancellationToken cancellationToken) in /_/src/MassTransit/Mediator/Contexts/MediatorSendEndpoint.cs:line 232
at Serval.DataFiles.Services.DataFileService.<>c__DisplayClass9_0.<<UpdateAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/src/Serval.DataFiles/Services/DataFileService.cs:line 92
--- End of stack trace from previous location ---
at SIL.DataAccess.MongoDataAccessContext.<>c__DisplayClass9_0.<<WithTransactionAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoDataAccessContext.cs:line 33
--- End of stack trace from previous location ---
at SIL.DataAccess.MongoDataAccessContext.<>c__DisplayClass8_0`1.<<WithTransactionAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoDataAccessContext.cs:line 19
--- End of stack trace from previous location ---
at MongoDB.Driver.TransactionExecutor.ExecuteCallbackAsync[TResult](IClientSessionHandle clientSession, Func`3 callbackAsync, DateTime startTime, IClock clock, CancellationToken cancellationToken)
at MongoDB.Driver.TransactionExecutor.ExecuteCallbackAsync[TResult](IClientSessionHandle clientSession, Func`3 callbackAsync, DateTime startTime, IClock clock, CancellationToken cancellationToken)
at MongoDB.Driver.TransactionExecutor.ExecuteWithRetriesAsync[TResult](IClientSessionHandle clientSession, Func`3 callbackAsync, TransactionOptions transactionOptions, IClock clock, CancellationToken cancellationToken)
at SIL.DataAccess.MongoDataAccessContext.WithTransactionAsync[TResult](Func`2 callbackAsync, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoDataAccessContext.cs:line 17
at Serval.DataFiles.Services.DataFileService.UpdateAsync(String id, Stream stream, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.DataFiles/Services/DataFileService.cs:line 72
at Serval.DataFiles.Controllers.DataFilesController.UpdateAsync(String id, IFormFile file, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.DataFiles/Controllers/DataFilesController.cs:line 187
at lambda_method511(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutsMiddleware.<>c__DisplayClass5_0.<<Invoke>g__SetTimeoutAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at SIL.ServiceToolkit.Services.BugsnagMiddleware.Invoke(HttpContext context, IClient client) in /home/runner/work/serval/serval/src/ServiceToolkit/src/SIL.ServiceToolkit/Services/BugsnagMiddleware.cs:line 35
at Microsoft.AspNetCore.TestHost.HttpContextBuilder.<>c__DisplayClass23_0.<<SendAsync>g__RunRequestAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.TestHost.ClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Serval.Client.DataFilesClient.UpdateAsync(String id, FileParameter file, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 1733
at Serval.ApiServer.DataFilesTests.<>c__DisplayClass13_0.<<UpdateAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/DataFilesTests.cs:line 248
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.BlockUntilCompleted()
at NUnit.Framework.Internal.MessagePumpStrategy.NoMessagePumpStrategy.WaitForCompletion(AwaitAdapter awaiter)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
at NUnit.Framework.Internal.ExceptionHelper.RecordException(Delegate parameterlessDelegate, String parameterName)>
✅ UpdateAsync(["update:files", "read:files"],400,"000000000000000000000001")
✅ UpdateAsync(["update:files", "read:files"],403,"000000000000000000000003")
✅ UpdateAsync(["update:files", "read:files"],404,"000000000000000000000004")
✅ Serval.ApiServer.StatusTests
✅ GetDeploymentAsync(["create:translation_engines"],403)
✅ GetDeploymentAsync(["read:status"],200)
✅ GetHealthAsync(["create:translation_engines"],403)
✅ GetHealthAsync(["read:status"],200)
❌ Serval.ApiServer.TranslationEngineTests
✅ AddCorpusToEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ AddCorpusToEngineByIdAsync(["update:translation_engines"],201,"e00000000000000000000001")
✅ AddCorpusToEngineByIdAsync(["update:translation_engines"],404,"e00000000000000000000004")
✅ AddParallelCorpusToEngineById_NotAuthorized
✅ AddParallelCorpusToEngineByIdAsync
✅ CancelCurrentBuildForEngineByIdAsync(["read:files"],403,"e00000000000000000000001",False)
✅ CancelCurrentBuildForEngineByIdAsync(["update:translation_engines"],200,"e00000000000000000000001")
✅ CancelCurrentBuildForEngineByIdAsync(["update:translation_engines"],204,"e00000000000000000000001",False)
✅ CancelCurrentBuildForEngineByIdAsync(["update:translation_engines"],404,"e00000000000000000000004",False)
✅ CreateEngineAsync(["create:translation_engines", "read:translation_engines"],201,"Echo")
✅ CreateEngineAsync(["create:translation_engines"],400,"NotARealKindOfMT")
✅ CreateEngineAsync(["read:files"],403,"Echo")
❌ DataFileUpdate_Propagated
System.ArgumentNullException : Value cannot be null. (Parameter 'expression')
✅ DeleteCorpusAndFilesAsync
✅ DeleteCorpusButNotFilesAsync
✅ DeleteCorpusByIdForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ DeleteCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],200,"e00000000000000000000001")
✅ DeleteCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],404,"e00000000000000000000001")
✅ DeleteCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],404,"e00000000000000000000004")
✅ DeleteEngineByIdAsync(["delete:translation_engines", "read:translation_engines"],200,"e00000000000000000000001")
✅ DeleteEngineByIdAsync(["delete:translation_engines"],404,"e00000000000000000000004")
✅ DeleteEngineByIdAsync(["read:translation_engines"],403,"e00000000000000000000001")
✅ DeleteParallelCorpusByIdForEngineById_NoSuchCorpus
✅ DeleteParallelCorpusByIdForEngineById_NoSuchEngine
✅ DeleteParallelCorpusByIdForEngineById_NotAuthorized
✅ DeleteParallelCorpusByIdForEngineByIdAsync
✅ GetAllAsync(["read:files"],403)
✅ GetAllAsync(["read:translation_engines"],200)
✅ GetAllBuildsForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetAllBuildsForEngineByIdAsync(["read:translation_engines"],200,"be0000000000000000000001")
✅ GetAllBuildsForEngineByIdAsync(["read:translation_engines"],404,"e00000000000000000000004",False)
✅ GetAllCorporaForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetAllCorporaForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],200,"e00000000000000000000001")
✅ GetAllCorporaForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],404,"e00000000000000000000004")
✅ GetAllParallelCorporaForEngineById_NoSuchEngine
✅ GetAllParallelCorporaForEngineById_NotAuthorized
✅ GetAllParallelCorporaForEngineByIdAsync
✅ GetAllPretranslationsAsync_CorpusDoesNotExist
✅ GetAllPretranslationsAsync_EngineDoesNotExist
✅ GetAllPretranslationsAsync_EngineNotBuilt
✅ GetAllPretranslationsAsync_Exists
✅ GetAllPretranslationsAsync_TextIdDoesNotExist
✅ GetAllPretranslationsAsync_TextIdExists
✅ GetBuildByIdForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetBuildByIdForEngineByIdAsync(["read:translation_engines"],200,"be0000000000000000000001")
✅ GetBuildByIdForEngineByIdAsync(["read:translation_engines"],404,"be0000000000000000000001",False)
✅ GetBuildByIdForEngineByIdAsync(["read:translation_engines"],404,"e00000000000000000000004",False)
✅ GetBuildByIdForEngineByIdAsync(["read:translation_engines"],408,"be0000000000000000000001",True)
✅ GetByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetByIdAsync(["read:translation_engines"],200,"e00000000000000000000001")
✅ GetByIdAsync(["read:translation_engines"],403,"e00000000000000000000003")
✅ GetByIdAsync(["read:translation_engines"],404,"e00000000000000000000004")
✅ GetByIdAsync(["read:translation_engines"],404,"phony_id")
✅ GetCorpusByIdForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],200,"e00000000000000000000001",True)
✅ GetCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],404,"e00000000000000000000001",True)
✅ GetCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],404,"e00000000000000000000001")
✅ GetCorpusByIdForEngineByIdAsync(["update:translation_engines", "read:translation_engines"],404,"e00000000000000000000004")
✅ GetCurrentBuildForEngineByIdAsync(["read:files"],403,"e00000000000000000000001",False)
✅ GetCurrentBuildForEngineByIdAsync(["read:translation_engines"],200,"e00000000000000000000001")
✅ GetCurrentBuildForEngineByIdAsync(["read:translation_engines"],204,"e00000000000000000000001",False)
✅ GetCurrentBuildForEngineByIdAsync(["read:translation_engines"],404,"e00000000000000000000004",False)
✅ GetCurrentBuildForEngineByIdAsync(["read:translation_engines"],408,"e00000000000000000000001")
✅ GetDownloadableUrl(["read:files"],403,"e00000000000000000000001")
✅ GetDownloadableUrl(["read:translation_engines"],200,"e00000000000000000000001")
✅ GetDownloadableUrl(["read:translation_engines"],404,"e00000000000000000000004")
✅ GetLanguageInfo_Error
✅ GetLanguageInfoAsync
✅ GetParallelCorpusByIdForEngineById_NoCorpora
✅ GetParallelCorpusByIdForEngineById_NoSuchCorpus
✅ GetParallelCorpusByIdForEngineById_NoSuchEngine
✅ GetParallelCorpusByIdForEngineById_NotAuthorized
✅ GetParallelCorpusByIdForEngineByIdAsync
✅ GetPretranslatedUsfmAsync_BookDoesNotExist
✅ GetPretranslatedUsfmAsync_BookExists
✅ GetPretranslationsByTextId
✅ GetPretranslationsByTextId_EngineDoesNotExist
✅ GetQueueAsync_NotAuthorized
✅ GetQueueAsync("Echo")
✅ GetQueueAsync("Nmt")
✅ GetWordGraphForSegmentByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ GetWordGraphForSegmentByIdAsync(["read:translation_engines", "update:translation_engines"],200,"e00000000000000000000001")
✅ GetWordGraphForSegmentByIdAsync(["read:translation_engines", "update:translation_engines"],404,"e00000000000000000000004")
✅ GetWordGraphForSegmentByIdAsync(["read:translation_engines", "update:translation_engines"],409,"e00000000000000000000001")
✅ StartBuild_ParallelCorpus
✅ StartBuildAsync_Corpus_NoFilter
✅ StartBuildAsync_ParallelCorpus
✅ StartBuildAsync_ParallelCorpus_NoFilter
✅ StartBuildAsync_ParallelCorpus_PretranslateFilterOnMultipleSources
✅ StartBuildAsync_ParallelCorpus_PretranslateNoCorpusSpecified
✅ StartBuildAsync_ParallelCorpus_PretranslateParallelAndNormalCorpus
✅ StartBuildAsync_ParallelCorpus_TrainOnNoCorpusSpecified
✅ StartBuildAsync_ParallelCorpus_TrainOnParallelAndNormalCorpus
✅ StartBuildForEngineAsync_UnparsableOptions()
✅ StartBuildForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ StartBuildForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],201,"e00000000000000000000001")
✅ StartBuildForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],400,"e00000000000000000000001")
✅ StartBuildForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],404,"e00000000000000000000004")
✅ TrainEngineByIdOnSegmentPairAsync(["read:files"],403,"e00000000000000000000001")
✅ TrainEngineByIdOnSegmentPairAsync(["update:translation_engines"],200,"e00000000000000000000001")
✅ TrainEngineByIdOnSegmentPairAsync(["update:translation_engines"],404,"e00000000000000000000004")
✅ TrainEngineByIdOnSegmentPairAsync(["update:translation_engines"],409,"e00000000000000000000001")
✅ TranslateNSegmentWithEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ TranslateNSegmentWithEngineByIdAsync(["read:translation_engines", "update:translation_engines"],200,"e00000000000000000000001")
✅ TranslateNSegmentWithEngineByIdAsync(["read:translation_engines", "update:translation_engines"],409,"e00000000000000000000001")
✅ TranslateNSegmentWithEngineByIdAsync(["read:translation_engines"],404,"e00000000000000000000004")
✅ TranslateSegmentWithEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ TranslateSegmentWithEngineByIdAsync(["read:translation_engines", "update:translation_engines"],200,"e00000000000000000000001")
✅ TranslateSegmentWithEngineByIdAsync(["read:translation_engines", "update:translation_engines"],404,"e00000000000000000000004")
✅ TranslateSegmentWithEngineByIdAsync(["read:translation_engines", "update:translation_engines"],409,"e00000000000000000000001")
✅ TryToQueueMultipleBuildsPerSingleUser
✅ UpdateCorpusByIdForEngineByIdAsync(["read:files"],403,"e00000000000000000000001")
✅ UpdateCorpusByIdForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],200,"e00000000000000000000001")
✅ UpdateCorpusByIdForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],404,"e00000000000000000000001")
✅ UpdateCorpusByIdForEngineByIdAsync(["update:translation_engines", "create:translation_engines", "read:translation_engines"],404,"e00000000000000000000004")
✅ UpdateParallelCorpusByIdForEngineById_NoSuchCorpus
✅ UpdateParallelCorpusByIdForEngineById_NoSuchEngine
✅ UpdateParallelCorpusByIdForEngineById_NotAuthorized
✅ UpdateParallelCorpusByIdForEngineByIdAsync
✅ Serval.ApiServer.WebhooksTests
✅ CreateWebhookAsync(["read:files"],403)
✅ CreateWebhookAsync(null,201)
✅ DeleteWebhookByIdAsync(["read:files"],403,"000000000000000000000000")
✅ DeleteWebhookByIdAsync(null,200,"000000000000000000000000")
✅ DeleteWebhookByIdAsync(null,404,"000000000000000000000001")
✅ GetAllWebhooksAsync(["read:files"],403)
✅ GetAllWebhooksAsync(null,200)
✅ GetWebhookByIdAsync(["read:files"],403,"000000000000000000000000")
✅ GetWebhookByIdAsync(null,200,"000000000000000000000000")
✅ GetWebhookByIdAsync(null,404,"000000000000000000000001")
✅ GetWebhookByIdAsync(null,404,"phony_id")
✅ src/Serval/test/Serval.DataFiles.Tests/TestResults/test-results.trx
11 tests were completed in 5s with 11 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
Serval.DataFiles.Services.CorpusServiceTests | 2✅ | 263ms | ||
Serval.DataFiles.Services.DataFileServiceTests | 8✅ | 64ms | ||
Serval.DataFiles.Services.DeletedFileCleanerTests | 1✅ | 2s |
✅ Serval.DataFiles.Services.CorpusServiceTests
✅ CreateAsync
✅ UpdateAsync
✅ Serval.DataFiles.Services.DataFileServiceTests
✅ CreateAsync_Error
✅ CreateAsync_NoError
✅ DeleteAsync_DoesNotExist
✅ DeleteAsync_Exists
✅ DownloadAsync_DoesNotExists
✅ DownloadAsync_Exists
✅ UpdateAsync_DoesNotExist
✅ UpdateAsync_Exists
✅ Serval.DataFiles.Services.DeletedFileCleanerTests
✅ Clean
✅ src/Serval/test/Serval.E2ETests/TestResults/test-results.trx
No tests found
✅ src/Serval/test/Serval.Shared.Tests/TestResults/test-results.trx
3 tests were completed in 3s with 3 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
Serval.Shared.Services.ScriptureDataFileServiceTests | 2✅ | 175ms | ||
Serval.Shared.Utils.ObjectToInferredTypesConverterTest | 1✅ | 61ms |
✅ Serval.Shared.Services.ScriptureDataFileServiceTests
✅ GetParatextProjectSettings
✅ GetZipParatextProjectTextUpdater
✅ Serval.Shared.Utils.ObjectToInferredTypesConverterTest
✅ Convert
✅ src/Serval/test/Serval.Translation.Tests/TestResults/test-results.trx
49 tests were completed in 4s with 49 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
Serval.Translation.Services.BuildCleanupServiceTests | 1✅ | 146ms | ||
Serval.Translation.Services.BuildServiceTests | 4✅ | 74ms | ||
Serval.Translation.Services.EngineCleanupServiceTests | 1✅ | 33ms | ||
Serval.Translation.Services.EngineServiceTests | 29✅ | 552ms | ||
Serval.Translation.Services.PlatformServiceTests | 3✅ | 123ms | ||
Serval.Translation.Services.PretranslationServiceTests | 11✅ | 306ms |
✅ Serval.Translation.Services.BuildCleanupServiceTests
✅ CleanupAsync
✅ Serval.Translation.Services.BuildServiceTests
✅ GetActiveNewerRevisionAsync_Insert
✅ GetNewerRevisionAsync_Delete
✅ GetNewerRevisionAsync_DoesNotExist
✅ GetNewerRevisionAsync_Update
✅ Serval.Translation.Services.EngineCleanupServiceTests
✅ CleanupAsync
✅ Serval.Translation.Services.EngineServiceTests
✅ CancelBuildAsync_EngineExistsNotBuilding
✅ CreateAsync
✅ DeleteAsync_EngineExists
✅ DeleteAsync_ProjectDoesNotExist
✅ GetWordGraphAsync_EngineDoesNotExist
✅ GetWordGraphAsync_EngineExists
✅ StartBuildAsync_MixedSourceAndTarget_ParallelCorpus
✅ StartBuildAsync_NoFilters_ParallelCorpus
✅ StartBuildAsync_NoTargetFilter_ParallelCorpus
✅ StartBuildAsync_OneOfMultipleCorpora
✅ StartBuildAsync_ParallelCorpus_OneOfMultipleCorpora
✅ StartBuildAsync_ParallelCorpus_TextFiles
✅ StartBuildAsync_ParallelCorpus_TrainOnOnePretranslateTheOther
✅ StartBuildAsync_ScriptureRange_ParallelCorpus
✅ StartBuildAsync_ScriptureRangeEmptyString
✅ StartBuildAsync_ScriptureRangeSpecified
✅ StartBuildAsync_TextFilesScriptureRangeSpecified
✅ StartBuildAsync_TextIds_ParallelCorpus
✅ StartBuildAsync_TextIdsEmpty
✅ StartBuildAsync_TextIdsNotSpecified
✅ StartBuildAsync_TextIdsPopulated
✅ StartBuildAsync_TrainOnNotSpecified
✅ StartBuildAsync_TrainOnNotSpecified_ParallelCorpus
✅ StartBuildAsync_TrainOnOnePretranslateTheOther
✅ TrainSegmentAsync_EngineDoesNotExist
✅ TrainSegmentAsync_EngineExists
✅ TranslateAsync_EngineDoesNotExist
✅ TranslateAsync_EngineExists
✅ UpdateCorpusAsync
✅ Serval.Translation.Services.PlatformServiceTests
✅ IncrementCorpusSizeAsync
✅ TestBuildStateTransitionsAsync
✅ UpdateBuildStatusAsync
✅ Serval.Translation.Services.PretranslationServiceTests
✅ GetUsfmAsync_Auto_TargetBookDoesNotExist
✅ GetUsfmAsync_Auto_TargetBookExists
✅ GetUsfmAsync_Source_OnlyExisting
✅ GetUsfmAsync_Source_OnlyPretranslated
✅ GetUsfmAsync_Source_PreferExisting
✅ GetUsfmAsync_Source_PreferPretranslated
✅ GetUsfmAsync_Target_OnlyExisting
✅ GetUsfmAsync_Target_OnlyPretranslated
✅ GetUsfmAsync_Target_PreferExisting
✅ GetUsfmAsync_Target_PreferPretranslated
✅ GetUsfmAsync_Target_TargetBookDoesNotExist
✅ src/Serval/test/Serval.Webhooks.Tests/TestResults/test-results.trx
5 tests were completed in 3s with 5 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
Serval.Webhooks.Services.WebhookJobTests | 5✅ | 188ms |
✅ Serval.Webhooks.Services.WebhookJobTests
✅ RunAsync_Exception
✅ RunAsync_MatchingHook
✅ RunAsync_NoHooks
✅ RunAsync_NoMatchingHook
✅ RunAsync_RequestTimeout
✅ src/ServiceToolkit/test/SIL.ServiceToolkit.Tests/TestResults/test-results.trx
1 tests were completed in 3s with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
SIL.ServiceToolkit.Services.ParallelCorpusPreprocessingServiceTests | 1✅ | 86ms |
✅ SIL.ServiceToolkit.Services.ParallelCorpusPreprocessingServiceTests
✅ TestParallelCorpusPreprocessor
Annotations
Check failure on line 246 in src/Serval/test/Serval.ApiServer.IntegrationTests/DataFilesTests.cs
github-actions / NUnit Tests
Serval.ApiServer.DataFilesTests ► UpdateAsync(["update:files", "read:files"],200,"000000000000000000000001")
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
Assert.That(code, new ThrowsNothingConstraint())
Expected: No Exception to be thrown
But was: <System.ArgumentNullException: Value cannot be null. (Parameter 'expression')
at MongoDB.Driver.Core.Misc.Ensure.IsNotNull[T](T value, String paramName)
at MongoDB.Driver.ExpressionFieldDefinition`1..ctor(LambdaExpression expression)
at MongoDB.Driver.FilterDefinitionBuilder`1.Exists(Expression`1 field, Boolean exists)
at SIL.DataAccess.MongoUpdateBuilder`1.SetAll[TItem,TField](Expression`1 collectionField, Expression`1 itemField, TField value, Expression`1 predicate, Expression`1 setIfFieldExists) in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoUpdateBuilder.cs:line 80
at Serval.Translation.Services.EngineService.<>c__DisplayClass28_0.<UpdateDataFileFilenameFilesAsync>b__1(IUpdateBuilder`1 u) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Services/EngineService.cs:line 603
at SIL.DataAccess.MongoRepository`1.UpdateAllAsync(Expression`1 filter, Action`1 update, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoRepository.cs:line 167
at Serval.Translation.Consumers.DataFileUpdatedConsumer.Consume(ConsumeContext`1 context) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Consumers/DataFileUpdatedConsumer.cs:line 9
at MassTransit.DependencyInjection.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/DependencyInjection/DependencyInjection/ScopeConsumerFactory.cs:line 22
at MassTransit.DependencyInjection.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/DependencyInjection/DependencyInjection/ScopeConsumerFactory.cs:line 22
at MassTransit.Middleware.ConsumerMessageFilter`2.MassTransit.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/ConsumerMessageFilter.cs:line 48
at MassTransit.Middleware.ConsumerMessageFilter`2.MassTransit.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/ConsumerMessageFilter.cs:line 73
at MassTransit.Middleware.TeeFilter`1.<>c__DisplayClass5_0.<<Send>g__SendAsync|1>d.MoveNext() in /_/src/MassTransit/Middleware/TeeFilter.cs:line 40
--- End of stack trace from previous location ---
at MassTransit.Middleware.ConsumeContextOutputMessageTypeFilter`1.SendToOutput(IPipe`1 next, ConsumeContext`1 pipeContext) in /_/src/MassTransit/Middleware/ConsumeContextOutputMessageTypeFilter.cs:line 76
at MassTransit.Middleware.ConsumeContextOutputMessageTypeFilter`1.SendToOutput(IPipe`1 next, ConsumeContext`1 pipeContext) in /_/src/MassTransit/Middleware/ConsumeContextOutputMessageTypeFilter.cs:line 108
at MassTransit.Middleware.ConsumeContextMessageTypeFilter.<>c__DisplayClass8_0.<<Send>g__SendAsync|0>d.MoveNext() in /_/src/MassTransit/Middleware/MessageTypeFilter.cs:line 76
--- End of stack trace from previous location ---
at MassTransit.Middleware.DeserializeFilter.Send(ReceiveContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/DeserializeFilter.cs:line 40
at MassTransit.Middleware.RescueFilter`2.MassTransit.IFilter<TContext>.Send(TContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RescueFilter.cs:line 43
at MassTransit.Internals.ExceptionExtensions.Rethrow(Exception exception) in /_/src/MassTransit.Abstractions/Internals/Extensions/ExceptionExtensions.cs:line 15
at MassTransit.Middleware.RethrowErrorTransportFilter.Send(ExceptionReceiveContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RethrowErrorTransportFilter.cs:line 14
at MassTransit.Middleware.RescueFilter`2.MassTransit.IFilter<TContext>.Send(TContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RescueFilter.cs:line 61
at MassTransit.Middleware.DeadLetterFilter.MassTransit.IFilter<MassTransit.ReceiveContext>.Send(ReceiveContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/DeadLetterFilter.cs:line 32
at MassTransit.Transports.ReceivePipeDispatcher.Dispatch(ReceiveContext context, ReceiveLockContext receiveLock) in /_/src/MassTransit/Transports/ReceivePipeDispatcher.cs:line 65
at MassTransit.Transports.ReceivePipeDispatcher.Dispatch(ReceiveContext context, ReceiveLockContext receiveLock) in /_/src/MassTransit/Transports/ReceivePipeDispatcher.cs:line 108
at MassTransit.Transports.ReceivePipeDispatcher.Dispatch(ReceiveContext context, ReceiveLockContext receiveLock) in /_/src/MassTransit/Transports/ReceivePipeDispatcher.cs:line 115
at MassTransit.Mediator.Contexts.MediatorSendEndpoint.SendMessage[T](T message, IPipe`1 pipe, CancellationToken cancellationToken) in /_/src/MassTransit/Mediator/Contexts/MediatorSendEndpoint.cs:line 222
at MassTransit.Mediator.Contexts.MediatorSendEndpoint.SendMessage[T](T message, IPipe`1 pipe, CancellationToken cancellationToken) in /_/src/MassTransit/Mediator/Contexts/MediatorSendEndpoint.cs:line 232
at Serval.DataFiles.Services.DataFileService.<>c__DisplayClass9_0.<<UpdateAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/src/Serval.DataFiles/Services/DataFileService.cs:line 92
--- End of stack trace from previous location ---
at SIL.DataAccess.MongoDataAccessContext.<>c__DisplayClass9_0.<<WithTransactionAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoDataAccessContext.cs:line 33
--- End of stack trace from previous location ---
at SIL.DataAccess.MongoDataAccessContext.<>c__DisplayClass8_0`1.<<WithTransactionAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoDataAccessContext.cs:line 19
--- End of stack trace from previous location ---
at MongoDB.Driver.TransactionExecutor.ExecuteCallbackAsync[TResult](IClientSessionHandle clientSession, Func`3 callbackAsync, DateTime startTime, IClock clock, CancellationToken cancellationToken)
at MongoDB.Driver.TransactionExecutor.ExecuteCallbackAsync[TResult](IClientSessionHandle clientSession, Func`3 callbackAsync, DateTime startTime, IClock clock, CancellationToken cancellationToken)
at MongoDB.Driver.TransactionExecutor.ExecuteWithRetriesAsync[TResult](IClientSessionHandle clientSession, Func`3 callbackAsync, TransactionOptions transactionOptions, IClock clock, CancellationToken cancellationToken)
at SIL.DataAccess.MongoDataAccessContext.WithTransactionAsync[TResult](Func`2 callbackAsync, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoDataAccessContext.cs:line 17
at Serval.DataFiles.Services.DataFileService.UpdateAsync(String id, Stream stream, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.DataFiles/Services/DataFileService.cs:line 72
at Serval.DataFiles.Controllers.DataFilesController.UpdateAsync(String id, IFormFile file, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.DataFiles/Controllers/DataFilesController.cs:line 187
at lambda_method511(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutsMiddleware.<>c__DisplayClass5_0.<<Invoke>g__SetTimeoutAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at SIL.ServiceToolkit.Services.BugsnagMiddleware.Invoke(HttpContext context, IClient client) in /home/runner/work/serval/serval/src/ServiceToolkit/src/SIL.ServiceToolkit/Services/BugsnagMiddleware.cs:line 35
at Microsoft.AspNetCore.TestHost.HttpContextBuilder.<>c__DisplayClass23_0.<<SendAsync>g__RunRequestAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.TestHost.ClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Serval.Client.DataFilesClient.UpdateAsync(String id, FileParameter file, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 1733
at Serval.ApiServer.DataFilesTests.<>c__DisplayClass13_0.<<UpdateAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/DataFilesTests.cs:line 248
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.BlockUntilCompleted()
at NUnit.Framework.Internal.MessagePumpStrategy.NoMessagePumpStrategy.WaitForCompletion(AwaitAdapter awaiter)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
at NUnit.Framework.Internal.ExceptionHelper.RecordException(Delegate parameterlessDelegate, String parameterName)>
Raw output
Assert.That(code, new ThrowsNothingConstraint())
Expected: No Exception to be thrown
But was: <System.ArgumentNullException: Value cannot be null. (Parameter 'expression')
at MongoDB.Driver.Core.Misc.Ensure.IsNotNull[T](T value, String paramName)
at MongoDB.Driver.ExpressionFieldDefinition`1..ctor(LambdaExpression expression)
at MongoDB.Driver.FilterDefinitionBuilder`1.Exists(Expression`1 field, Boolean exists)
at SIL.DataAccess.MongoUpdateBuilder`1.SetAll[TItem,TField](Expression`1 collectionField, Expression`1 itemField, TField value, Expression`1 predicate, Expression`1 setIfFieldExists) in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoUpdateBuilder.cs:line 80
at Serval.Translation.Services.EngineService.<>c__DisplayClass28_0.<UpdateDataFileFilenameFilesAsync>b__1(IUpdateBuilder`1 u) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Services/EngineService.cs:line 603
at SIL.DataAccess.MongoRepository`1.UpdateAllAsync(Expression`1 filter, Action`1 update, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoRepository.cs:line 167
at Serval.Translation.Consumers.DataFileUpdatedConsumer.Consume(ConsumeContext`1 context) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Consumers/DataFileUpdatedConsumer.cs:line 9
at MassTransit.DependencyInjection.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/DependencyInjection/DependencyInjection/ScopeConsumerFactory.cs:line 22
at MassTransit.DependencyInjection.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/DependencyInjection/DependencyInjection/ScopeConsumerFactory.cs:line 22
at MassTransit.Middleware.ConsumerMessageFilter`2.MassTransit.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/ConsumerMessageFilter.cs:line 48
at MassTransit.Middleware.ConsumerMessageFilter`2.MassTransit.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/ConsumerMessageFilter.cs:line 73
at MassTransit.Middleware.TeeFilter`1.<>c__DisplayClass5_0.<<Send>g__SendAsync|1>d.MoveNext() in /_/src/MassTransit/Middleware/TeeFilter.cs:line 40
--- End of stack trace from previous location ---
at MassTransit.Middleware.ConsumeContextOutputMessageTypeFilter`1.SendToOutput(IPipe`1 next, ConsumeContext`1 pipeContext) in /_/src/MassTransit/Middleware/ConsumeContextOutputMessageTypeFilter.cs:line 76
at MassTransit.Middleware.ConsumeContextOutputMessageTypeFilter`1.SendToOutput(IPipe`1 next, ConsumeContext`1 pipeContext) in /_/src/MassTransit/Middleware/ConsumeContextOutputMessageTypeFilter.cs:line 108
at MassTransit.Middleware.ConsumeContextMessageTypeFilter.<>c__DisplayClass8_0.<<Send>g__SendAsync|0>d.MoveNext() in /_/src/MassTransit/Middleware/MessageTypeFilter.cs:line 76
--- End of stack trace from previous location ---
at MassTransit.Middleware.DeserializeFilter.Send(ReceiveContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/DeserializeFilter.cs:line 40
at MassTransit.Middleware.RescueFilter`2.MassTransit.IFilter<TContext>.Send(TContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RescueFilter.cs:line 43
at MassTransit.Internals.ExceptionExtensions.Rethrow(Exception exception) in /_/src/MassTransit.Abstractions/Internals/Extensions/ExceptionExtensions.cs:line 15
at MassTransit.Middleware.RethrowErrorTransportFilter.Send(ExceptionReceiveContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RethrowErrorTransportFilter.cs:line 14
at MassTransit.Middleware.RescueFilter`2.MassTransit.IFilter<TContext>.Send(TContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RescueFilter.cs:line 61
at MassTransit.Middleware.DeadLetterFilter.MassTransit.IFilter<MassTransit.ReceiveContext>.Send(ReceiveContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/DeadLetterFilter.cs:line 32
at MassTransit.Transports.ReceivePipeDispatcher.Dispatch(ReceiveContext context, ReceiveLockContext receiveLock) in /_/src/MassTransit/Transports/ReceivePipeDispatcher.cs:line 65
at MassTransit.Transports.ReceivePipeDispatcher.Dispatch(ReceiveContext context, ReceiveLockContext receiveLock) in /_/src/MassTransit/Transports/ReceivePipeDispatcher.cs:line 108
at MassTransit.Transports.ReceivePipeDispatcher.Dispatch(ReceiveContext context, ReceiveLockContext receiveLock) in /_/src/MassTransit/Transports/ReceivePipeDispatcher.cs:line 115
at MassTransit.Mediator.Contexts.MediatorSendEndpoint.SendMessage[T](T message, IPipe`1 pipe, CancellationToken cancellationToken) in /_/src/MassTransit/Mediator/Contexts/MediatorSendEndpoint.cs:line 222
at MassTransit.Mediator.Contexts.MediatorSendEndpoint.SendMessage[T](T message, IPipe`1 pipe, CancellationToken cancellationToken) in /_/src/MassTransit/Mediator/Contexts/MediatorSendEndpoint.cs:line 232
at Serval.DataFiles.Services.DataFileService.<>c__DisplayClass9_0.<<UpdateAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/src/Serval.DataFiles/Services/DataFileService.cs:line 92
--- End of stack trace from previous location ---
at SIL.DataAccess.MongoDataAccessContext.<>c__DisplayClass9_0.<<WithTransactionAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoDataAccessContext.cs:line 33
--- End of stack trace from previous location ---
at SIL.DataAccess.MongoDataAccessContext.<>c__DisplayClass8_0`1.<<WithTransactionAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoDataAccessContext.cs:line 19
--- End of stack trace from previous location ---
at MongoDB.Driver.TransactionExecutor.ExecuteCallbackAsync[TResult](IClientSessionHandle clientSession, Func`3 callbackAsync, DateTime startTime, IClock clock, CancellationToken cancellationToken)
at MongoDB.Driver.TransactionExecutor.ExecuteCallbackAsync[TResult](IClientSessionHandle clientSession, Func`3 callbackAsync, DateTime startTime, IClock clock, CancellationToken cancellationToken)
at MongoDB.Driver.TransactionExecutor.ExecuteWithRetriesAsync[TResult](IClientSessionHandle clientSession, Func`3 callbackAsync, TransactionOptions transactionOptions, IClock clock, CancellationToken cancellationToken)
at SIL.DataAccess.MongoDataAccessContext.WithTransactionAsync[TResult](Func`2 callbackAsync, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoDataAccessContext.cs:line 17
at Serval.DataFiles.Services.DataFileService.UpdateAsync(String id, Stream stream, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.DataFiles/Services/DataFileService.cs:line 72
at Serval.DataFiles.Controllers.DataFilesController.UpdateAsync(String id, IFormFile file, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.DataFiles/Controllers/DataFilesController.cs:line 187
at lambda_method511(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutsMiddleware.<>c__DisplayClass5_0.<<Invoke>g__SetTimeoutAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at SIL.ServiceToolkit.Services.BugsnagMiddleware.Invoke(HttpContext context, IClient client) in /home/runner/work/serval/serval/src/ServiceToolkit/src/SIL.ServiceToolkit/Services/BugsnagMiddleware.cs:line 35
at Microsoft.AspNetCore.TestHost.HttpContextBuilder.<>c__DisplayClass23_0.<<SendAsync>g__RunRequestAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.TestHost.ClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Serval.Client.DataFilesClient.UpdateAsync(String id, FileParameter file, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 1733
at Serval.ApiServer.DataFilesTests.<>c__DisplayClass13_0.<<UpdateAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/DataFilesTests.cs:line 248
--- End of stack trace from previous location ---
at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.BlockUntilCompleted()
at NUnit.Framework.Internal.MessagePumpStrategy.NoMessagePumpStrategy.WaitForCompletion(AwaitAdapter awaiter)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
at NUnit.Framework.Internal.ExceptionHelper.RecordException(Delegate parameterlessDelegate, String parameterName)>
at Serval.ApiServer.DataFilesTests.UpdateAsync(IEnumerable`1 scope, Int32 expectedStatusCode, String fileId) in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/DataFilesTests.cs:line 246
at NUnit.Framework.Internal.TaskAwaitAdapter.GenericAdapter`1.BlockUntilCompleted()
at NUnit.Framework.Internal.MessagePumpStrategy.NoMessagePumpStrategy.WaitForCompletion(AwaitAdapter awaiter)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await(Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.RunTestMethod(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.BeforeAndAfterTestCommand.<>c__DisplayClass1_0.<Execute>b__0()
at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)
1) at Serval.ApiServer.DataFilesTests.UpdateAsync(IEnumerable`1 scope, Int32 expectedStatusCode, String fileId) in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/DataFilesTests.cs:line 246
Check failure on line 80 in src/DataAccess/src/SIL.DataAccess/MongoUpdateBuilder.cs
github-actions / NUnit Tests
Serval.ApiServer.TranslationEngineTests ► DataFileUpdate_Propagated
Failed test found in:
src/Serval/test/Serval.ApiServer.IntegrationTests/TestResults/test-results.trx
Error:
System.ArgumentNullException : Value cannot be null. (Parameter 'expression')
Raw output
System.ArgumentNullException : Value cannot be null. (Parameter 'expression')
at MongoDB.Driver.Core.Misc.Ensure.IsNotNull[T](T value, String paramName)
at MongoDB.Driver.ExpressionFieldDefinition`1..ctor(LambdaExpression expression)
at MongoDB.Driver.FilterDefinitionBuilder`1.Exists(Expression`1 field, Boolean exists)
at SIL.DataAccess.MongoUpdateBuilder`1.SetAll[TItem,TField](Expression`1 collectionField, Expression`1 itemField, TField value, Expression`1 predicate, Expression`1 setIfFieldExists) in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoUpdateBuilder.cs:line 80
at Serval.Translation.Services.EngineService.<>c__DisplayClass28_0.<UpdateDataFileFilenameFilesAsync>b__1(IUpdateBuilder`1 u) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Services/EngineService.cs:line 603
at SIL.DataAccess.MongoRepository`1.UpdateAllAsync(Expression`1 filter, Action`1 update, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoRepository.cs:line 167
at Serval.Translation.Consumers.DataFileUpdatedConsumer.Consume(ConsumeContext`1 context) in /home/runner/work/serval/serval/src/Serval/src/Serval.Translation/Consumers/DataFileUpdatedConsumer.cs:line 9
at MassTransit.DependencyInjection.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/DependencyInjection/DependencyInjection/ScopeConsumerFactory.cs:line 22
at MassTransit.DependencyInjection.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/DependencyInjection/DependencyInjection/ScopeConsumerFactory.cs:line 22
at MassTransit.Middleware.ConsumerMessageFilter`2.MassTransit.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/ConsumerMessageFilter.cs:line 48
at MassTransit.Middleware.ConsumerMessageFilter`2.MassTransit.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next) in /_/src/MassTransit/Middleware/ConsumerMessageFilter.cs:line 73
at MassTransit.Middleware.TeeFilter`1.<>c__DisplayClass5_0.<<Send>g__SendAsync|1>d.MoveNext() in /_/src/MassTransit/Middleware/TeeFilter.cs:line 40
--- End of stack trace from previous location ---
at MassTransit.Middleware.ConsumeContextOutputMessageTypeFilter`1.SendToOutput(IPipe`1 next, ConsumeContext`1 pipeContext) in /_/src/MassTransit/Middleware/ConsumeContextOutputMessageTypeFilter.cs:line 76
at MassTransit.Middleware.ConsumeContextOutputMessageTypeFilter`1.SendToOutput(IPipe`1 next, ConsumeContext`1 pipeContext) in /_/src/MassTransit/Middleware/ConsumeContextOutputMessageTypeFilter.cs:line 108
at MassTransit.Middleware.ConsumeContextMessageTypeFilter.<>c__DisplayClass8_0.<<Send>g__SendAsync|0>d.MoveNext() in /_/src/MassTransit/Middleware/MessageTypeFilter.cs:line 76
--- End of stack trace from previous location ---
at MassTransit.Middleware.DeserializeFilter.Send(ReceiveContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/DeserializeFilter.cs:line 40
at MassTransit.Middleware.RescueFilter`2.MassTransit.IFilter<TContext>.Send(TContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RescueFilter.cs:line 43
at MassTransit.Internals.ExceptionExtensions.Rethrow(Exception exception) in /_/src/MassTransit.Abstractions/Internals/Extensions/ExceptionExtensions.cs:line 15
at MassTransit.Middleware.RethrowErrorTransportFilter.Send(ExceptionReceiveContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RethrowErrorTransportFilter.cs:line 14
at MassTransit.Middleware.RescueFilter`2.MassTransit.IFilter<TContext>.Send(TContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/RescueFilter.cs:line 61
at MassTransit.Middleware.DeadLetterFilter.MassTransit.IFilter<MassTransit.ReceiveContext>.Send(ReceiveContext context, IPipe`1 next) in /_/src/MassTransit/Middleware/DeadLetterFilter.cs:line 32
at MassTransit.Transports.ReceivePipeDispatcher.Dispatch(ReceiveContext context, ReceiveLockContext receiveLock) in /_/src/MassTransit/Transports/ReceivePipeDispatcher.cs:line 65
at MassTransit.Transports.ReceivePipeDispatcher.Dispatch(ReceiveContext context, ReceiveLockContext receiveLock) in /_/src/MassTransit/Transports/ReceivePipeDispatcher.cs:line 108
at MassTransit.Transports.ReceivePipeDispatcher.Dispatch(ReceiveContext context, ReceiveLockContext receiveLock) in /_/src/MassTransit/Transports/ReceivePipeDispatcher.cs:line 115
at MassTransit.Mediator.Contexts.MediatorSendEndpoint.SendMessage[T](T message, IPipe`1 pipe, CancellationToken cancellationToken) in /_/src/MassTransit/Mediator/Contexts/MediatorSendEndpoint.cs:line 222
at MassTransit.Mediator.Contexts.MediatorSendEndpoint.SendMessage[T](T message, IPipe`1 pipe, CancellationToken cancellationToken) in /_/src/MassTransit/Mediator/Contexts/MediatorSendEndpoint.cs:line 232
at Serval.DataFiles.Services.DataFileService.<>c__DisplayClass9_0.<<UpdateAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/Serval/src/Serval.DataFiles/Services/DataFileService.cs:line 92
--- End of stack trace from previous location ---
at SIL.DataAccess.MongoDataAccessContext.<>c__DisplayClass9_0.<<WithTransactionAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoDataAccessContext.cs:line 33
--- End of stack trace from previous location ---
at SIL.DataAccess.MongoDataAccessContext.<>c__DisplayClass8_0`1.<<WithTransactionAsync>b__0>d.MoveNext() in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoDataAccessContext.cs:line 19
--- End of stack trace from previous location ---
at MongoDB.Driver.TransactionExecutor.ExecuteCallbackAsync[TResult](IClientSessionHandle clientSession, Func`3 callbackAsync, DateTime startTime, IClock clock, CancellationToken cancellationToken)
at MongoDB.Driver.TransactionExecutor.ExecuteCallbackAsync[TResult](IClientSessionHandle clientSession, Func`3 callbackAsync, DateTime startTime, IClock clock, CancellationToken cancellationToken)
at MongoDB.Driver.TransactionExecutor.ExecuteWithRetriesAsync[TResult](IClientSessionHandle clientSession, Func`3 callbackAsync, TransactionOptions transactionOptions, IClock clock, CancellationToken cancellationToken)
at SIL.DataAccess.MongoDataAccessContext.WithTransactionAsync[TResult](Func`2 callbackAsync, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/DataAccess/src/SIL.DataAccess/MongoDataAccessContext.cs:line 17
at Serval.DataFiles.Services.DataFileService.UpdateAsync(String id, Stream stream, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.DataFiles/Services/DataFileService.cs:line 72
at Serval.DataFiles.Controllers.DataFilesController.UpdateAsync(String id, IFormFile file, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.DataFiles/Controllers/DataFilesController.cs:line 187
at lambda_method1064(Closure, Object)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Http.Timeouts.RequestTimeoutsMiddleware.<>c__DisplayClass5_0.<<Invoke>g__SetTimeoutAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at SIL.ServiceToolkit.Services.BugsnagMiddleware.Invoke(HttpContext context, IClient client) in /home/runner/work/serval/serval/src/ServiceToolkit/src/SIL.ServiceToolkit/Services/BugsnagMiddleware.cs:line 35
at Microsoft.AspNetCore.TestHost.HttpContextBuilder.<>c__DisplayClass23_0.<<SendAsync>g__RunRequestAsync|0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.AspNetCore.TestHost.ClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.CookieContainerHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Mvc.Testing.Handlers.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Serval.Client.DataFilesClient.UpdateAsync(String id, FileParameter file, CancellationToken cancellationToken) in /home/runner/work/serval/serval/src/Serval/src/Serval.Client/Client.g.cs:line 1733
at Serval.ApiServer.TranslationEngineTests.DataFileUpdate_Propagated() in /home/runner/work/serval/serval/src/Serval/test/Serval.ApiServer.IntegrationTests/TranslationEngineTests.cs:line 2051
at NUnit.Framework.Internal.AsyncToSyncAdapter.Await[TResult](Func`1 invoke)
at NUnit.Framework.Internal.Commands.TestMethodCommand.RunTestMethod(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.TestMethodCommand.Execute(TestExecutionContext context)
at NUnit.Framework.Internal.Commands.DelegatingTestCommand.RunTestMethodInThreadAbortSafeZone(TestExecutionContext context, Action action)