public async Task DoesValidatorPreventFromRemovingNonExistentClass()
        {
            var context   = new FakeDbContext();
            var validator = new RemoveClassValidator(context);
            var request   = new RemoveClassCommand("non-existent-class");

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeFalse();
            result.Errors.Should().HaveCount(1).And.ContainSingle(x => x.ErrorCode == "AsyncPredicateValidator" && x.ErrorMessage == "Mentioned class must already exist.");
        }
        public async Task DoesValidatorAllowCorrectRemoveClassCommand()
        {
            var context   = new FakeDbContext();
            var validator = new RemoveClassValidator(context);
            var request   = new RemoveClassCommand(MockData.ExistingClassId);

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeTrue();
            result.Errors.Should().HaveCount(0);
        }
        public async Task DoesValidatorPreventFromRemovingClassWithNullIdGiven()
        {
            var context   = new FakeDbContext();
            var validator = new RemoveClassValidator(context);
            var request   = new RemoveClassCommand(null);

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeFalse();
            result.Errors.Should().HaveCount(2)
            .And
            .Contain(x => x.ErrorCode == "NotEmptyValidator")
            .And
            .Contain(x => x.ErrorCode == "AsyncPredicateValidator" && x.ErrorMessage == "Mentioned class must already exist.");
        }