public async Task ShouldMakeUserParticipantInChat()
        {
            var dbContext  = InfrastructureFactory.GetInMemoryContext(nameof(ShouldMakeUserParticipantInChat));
            var unitOfWork = InfrastructureFactory.GetEfUnitOfWork(dbContext);
            await unitOfWork.AddAndSaveAsync(EntityFactory.GetUser("johndoe", "Pass@123"));

            await unitOfWork.AddAndSaveAsync(EntityFactory.GetUser("admin", "Pass@123"));

            await unitOfWork.AddAndSaveAsync(EntityFactory.GetChat("foo", "admin"));

            var mediator = InfrastructureFactory.GetMediatorSubstitute();
            var handler  = new JoinChatCommandHandler(unitOfWork, mediator, InfrastructureFactory.GetMachineDateTime());

            await handler.Handle(new JoinChatCommand("johndoe", "foo"), default);

            var pars = await unitOfWork.FetchAsync <ChatParticipantEntity, ChatParticipant>(
                participants =>
                participants.Where(p => p.Stock == "foo"));

            Assert.AreEqual(1, pars.Count());
            Assert.AreEqual("johndoe", pars.First().Nickname);
        }