예제 #1
0
        public IEnumerable <DateTime> GetHolidaysUpToSpecifiedDate(GetHolidaysUpToSpecifiedDateQuery query)
        {
            var handler = new ValidationQueryHandlerDecorator <GetHolidaysUpToSpecifiedDateQuery, IEnumerable <DateTime> >(
                new GetHolidaysUpToSpecifiedDateQueryHandler(new HolidayRepository(new CustomSqlConnection(),
                                                                                   new HolidayTableQuery())), new CustomValidator <GetHolidaysUpToSpecifiedDateQuery>());

            return(handler.Handle(query));
        }
        protected override DataPage <IVariableCategory> QueryData(VariableCategoriesPagedQuery q)
        {
            IVariable var = (new VariableResolver()).GetVariable(_loopId, _projectCode, _varId);

            using (var hndl = new ValidationQueryHandlerDecorator <VariableCategoriesPagedQuery, DataPage <IVariableCategory> >(null,
                                                                                                                                new VariableCategoriesQueryHandler(
                                                                                                                                    new VariableDataContext(var))))


                return(hndl.Handle(q));
        }
        public async Task ShouldReturnFailure()
        {
            // Arrange
            var request     = new TestQuery();
            var mockHandler = new Mock <IQueryHandler <TestQuery, string> >();

            // Act
            var decorator = new ValidationQueryHandlerDecorator <TestQuery, string>(mockHandler.Object, new TestQuerValidator());
            var result    = await decorator.Handle(request, Helper.Context);

            //Assert
            Assert.True(result.HasError);
            Assert.Equal("error_code", result.Errors[0].Code);
        }
        public async Task ShouldCallDecoratorOnValidationSuccess()
        {
            // Arrange
            var request = new TestQuery
            {
                NotNullableValue = "value"
            };

            var mockHandler = new Mock <IQueryHandler <TestQuery, string> >();

            mockHandler
            .Setup(x => x.Handle(request, Helper.Context))
            .ReturnsAsync(new QueryResult <string>("OK"));

            // Act
            var decorator = new ValidationQueryHandlerDecorator <TestQuery, string>(mockHandler.Object, new TestQuerValidator());
            var result    = await decorator.Handle(request, Helper.Context);

            //Assert
            Assert.True(result.IsSuccess);
            mockHandler.Verify(x => x.Handle(request, Helper.Context), Times.Once);
        }