public async void DeleteUserWordPairs_ShouldBeOk() { // arrange int userId = 1; int otherId = 2; await using InWordsDataContext context = InWordsDataContextFactory.Create(); await context.AddAccount(userId); await context.AddAccount(otherId); await context.SaveChangesAsync(); context.Add(new UserWordPair() { UserWordPairId = 1, ForeignWord = "Test1", NativeWord = "Тест1", UserId = userId });; context.Add(new UserWordPair() { UserWordPairId = 2, ForeignWord = "Test2", NativeWord = "Тест2", UserId = userId }); context.Add(new UserWordPair() { UserWordPairId = 3, ForeignWord = "Test3", NativeWord = "Тест3", UserId = userId }); await context.SaveChangesAsync(); DeleteWordsRequest deletewordsRequets = new DeleteWordsRequest(); deletewordsRequets.Delete.AddRange(new int[] { 1, 3 }); // act var requestObject = new AuthReq <DeleteWordsRequest, Empty>(deletewordsRequets) { UserId = userId }; var deleteWords = new DeleteWords(context); Empty response = await deleteWords.HandleRequest(requestObject).ConfigureAwait(false); // assert Assert.Equal(1, context.UserWordPairs.Count()); Assert.Equal("Тест2", context.UserWordPairs.First().NativeWord); }
public override async Task <AddWordsReply> HandleRequest(AuthReq <UpdateWordsRequest, AddWordsReply> request, CancellationToken cancellationToken = default) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var userId = request.UserId; var requestData = request.Value; DeleteWordsRequest deleteRequestData = new DeleteWordsRequest(); deleteRequestData.Delete.AddRange(requestData.Update.Select(d => d.Delete)); AddWordsRequest addRequestData = new AddWordsRequest(); addRequestData.Words.AddRange(requestData.Update.Select(d => new AddWordRequest() { LocalId = d.LocalId, WordForeign = d.WordForeign, WordNative = d.WordNative })); var addWordsRequest = new AuthReq <AddWordsRequest, AddWordsReply>(addRequestData) { UserId = userId }; var deleteRequest = new AuthReq <DeleteWordsRequest, Empty>(deleteRequestData) { UserId = userId }; var addTask = await addWords.Handle(addWordsRequest, cancellationToken).ConfigureAwait(false); var deleteTask = await deleteWords.Handle(deleteRequest, cancellationToken).ConfigureAwait(false); return(addTask); }