public async Task SetupAsync() { _eventHandler = A.Fake <IEventHandler <IWebRequest> >(); _eventHandlerFactory = A.Fake <IEventHandlerFactory>(); A.CallTo(() => _eventHandlerFactory.Create(A <IEnumerable <IEventHandlerSpecification <IWebRequest> > > ._)).Returns(_eventHandler); _predicate = A.Fake <Func <IWebRequestEvent, bool> >(); var predicateSpec = A.Fake <IWebRequestPredicateSpecification>(); A.CallTo(() => predicateSpec.Build()).Returns(_predicate); _responseFactory = A.Fake <Func <IWebResponse, Task> >(); var responseSpec = A.Fake <IWebRequestResponseSpecification>(); A.CallTo(() => responseSpec.BuildFactory()).Returns(_responseFactory); _handler = A.Dummy <Func <IEventContext <IWebRequest>, CancellationToken, Task> >(); _handlerSpec = A.Fake <IEventHandlerSpecification <IWebRequest> >(); A.CallTo(() => _handlerSpec.Build()).Returns(_handler); _sut = new WebComponent(); var configSpec = _sut.CreateConfigurationSpecification <WebComponentSpecification>(_eventHandlerFactory); configSpec.OnRequest(r => { r.AddPredicateSpecification(predicateSpec); r.SetResponseSpecification(responseSpec); r.AddHandlerSpecification(_handlerSpec); }); await configSpec.ApplyAsync(); }
public void AddHandlerSpecification(IEventHandlerSpecification <TEventData> spec) { _handlerSpecifications.Add(spec ?? throw new ArgumentNullException(nameof(spec))); }