public async Task ThrowValidationExceptionWhenEmailIsNull()
        {
            var fixture = new Fixture();
            var query   = new DoesUserExist.Query(null);

            await Assert.ThrowsAsync <ValidationException>(() => _mediator.Send(query));
        }
        public async Task ThrowValidationExceptionWhenUserIdIsEmpty()
        {
            var fixture = new Fixture();
            var query   = new DoesUserExist.Query(Guid.Empty);

            await Assert.ThrowsAsync <ValidationException>(() => _mediator.Send(query));
        }
        public async Task ReturnFalseWhenUserDoesNotExistOnUserId()
        {
            var query = new DoesUserExist.Query(Guid.NewGuid());

            var result = await _mediator.Send(query);

            result.Should().BeFalse();
        }
        public async Task ReturnFalseWhenUserDoesNotExistOnEmail()
        {
            var query = new DoesUserExist.Query(_fixture.Create <MailAddress>().Address);

            var result = await _mediator.Send(query);

            result.Should().BeFalse();
        }
        public async Task ReturnFalseWhenUserExistsOnUserId()
        {
            var user = _fixture.Build <DataModel.Models.User>()
                       .With(x => x.Email, _fixture.Create <MailAddress>().Address)
                       .Create();

            _db.Users.Add(user);
            _db.SaveChanges();

            var query = new DoesUserExist.Query(user.Id);

            var result = await _mediator.Send(query);

            result.Should().BeTrue();
        }
        public async Task ThrowValidationExceptionWhenEmailIsEmpty()
        {
            var query = new DoesUserExist.Query(string.Empty);

            await Assert.ThrowsAsync <ValidationException>(() => _mediator.Send(query));
        }