public void QueryHandlerBaseWithoutValidatorShouldHandle()
        {
            // Arrange

            var queryHandler = new TestQueryHandlerBaseClass();

            // Act

            var result = queryHandler.Handle(new TestQuery());

            // Assert

            queryHandler.Handled.Should().BeTrue();
            result.Should().BeTrue();
        }
        public void QueryHandlerBaseWithPositiveValidatorShouldHandle()
        {
            // Arrange

            var validator = new Mock <IValidator <TestQuery> >();

            validator.Setup(x => x.Validate(It.IsAny <ValidationResults>(), It.IsAny <TestQuery>())).Returns(new ValidationResults());
            var queryHandler = new TestQueryHandlerBaseClass();

            // Act

            queryHandler.Handle(new TestQuery());

            // Assert

            queryHandler.Handled.Should().BeTrue();
        }
        public void QueryHandlerBaseWithNegativeValidatorShouldThrowValidationException()
        {
            // Arrange

            var validator         = new Mock <IValidator <TestQuery> >();
            var validationResults = new ValidationResults();

            validationResults.AddValidationResult("Test1", "Test message with property: {0}");
            validationResults.AddValidationResult("Test2", "Test message 2 with property: {0}");
            validator.Setup(x => x.Validate(It.IsAny <ValidationResults>(), It.IsAny <TestQuery>())).Returns(validationResults);
            var queryHandler = new TestQueryHandlerBaseClass(validator.Object);

            // Act

            Action act = () => queryHandler.Execute(new TestQuery());;

            // Assert

            act.Should().Throw <ValidationException>()
            .WithMessage("Test message with property: Test1\r\nTest message 2 with property: Test2");
        }