public async Task Upon_label_image_added_message_received_should_call_merge_service() { //Arrange Func <Message, CancellationToken, Task> call = null; _queue.When(q => q.RegisterMessageHandler(Arg.Any <Func <Message, CancellationToken, Task> >(), Arg.Any <MessageHandlerOptions>())) .Do(c => call = c.Arg <Func <Message, CancellationToken, Task> >()); var labelImageAddedSubscriber = new LabelImageAddedSubscriber(_mapper, _mergeService, _queue, _unitOfWork); var messageObject = _fixture.Create <LabelImageAddedMessage>(); var messageBody = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(messageObject)); //Act await call(new Message(messageBody), new CancellationToken()); //Assert await _mergeService.Received().UpdateProductsMergesAsync(Arg.Any <Ingredient>()); }
public async Task Upon_product_changed_message_received_should_call_merge_service() { //Arrange Func <Message, CancellationToken, Task> call = null; _subscriptionClient.When(q => q.RegisterMessageHandler(Arg.Any <Func <Message, CancellationToken, Task> >(), Arg.Any <MessageHandlerOptions>())) .Do(c => call = c.Arg <Func <Message, CancellationToken, Task> >()); var productChangedSubscriber = new ProductChangedSubscriber(_mapper, _mergeService, _subscriptionClient, _unitOfWork); var messageObject = _fixture.Create <ProductChangedMessage>(); messageObject.State = ProductState.Added | ProductState.Modified; var messageBody = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(messageObject)); //Act await call(new Message(messageBody), new CancellationToken()); //Assert await _mergeService.Received().MergeProductWithIngredientsAsync(Arg.Any <ProductToGet>()); }