Exemplo n.º 1
0
        public void It_can_use_first_profile_in_collection_and_get_results_from_cacheProvider()
        {
            var cacheProvider   = new Mock <ICacheProvider>();
            var expectedProfile = new TestableMediatr.CacheableProfile();
            var request         = new TestableMediatr.Request {
                Id = Guid.NewGuid().ToString()
            };
            var behavior =
                new CachingPipelineBehavior <TestableMediatr.Request,
                                             TestableMediatr.Response>(
                    new List <ICachingProfile <TestableMediatr.Request,
                                               TestableMediatr.Response> >()
            {
                expectedProfile, new TestableMediatr.CacheableProfile()
            }, new Logger(),
                    cacheProvider.Object);

            var expected = new TestableMediatr.Response();
            Func <Task <TestableMediatr.Response> > requestHandlerDelegate = async() => expected;

            cacheProvider.Setup(a => a.GetAsync <TestableMediatr.Response>(
                                    expectedProfile.GetCacheKey(request),
                                    It.IsAny <DateTime>(),
                                    It.IsAny <Func <Task <TestableMediatr.Response> > >()))
            .ReturnsAsync(expected);

            var result = behavior.Handle(request,
                                         new CancellationToken(), async() => expected).Result;

            result.ShouldBe(expected);
        }
Exemplo n.º 2
0
 public void It_Exists()
 {
     var behavior =
         new CachingPipelineBehavior <TestableMediatr.Request,
                                      TestableMediatr.Response>(
             new List <ICachingProfile <TestableMediatr.Request,
                                        TestableMediatr.Response> >()
     {
         new TestableMediatr.CacheableProfile()
     }, new Logger(),
             new Mock <ICacheProvider>().Object);
 }
Exemplo n.º 3
0
        public void It_Implements_Interface()
        {
            var behavior =
                new CachingPipelineBehavior <TestableMediatr.Request,
                                             TestableMediatr.Response>(
                    new List <ICachingProfile <TestableMediatr.Request,
                                               TestableMediatr.Response> >()
            {
                new TestableMediatr.CacheableProfile()
            }, new Logger(),
                    new Mock <ICacheProvider>().Object);

            behavior.ShouldBeAssignableTo <IPipelineBehavior <TestableMediatr.Request,
                                                              TestableMediatr.Response> >();
        }
Exemplo n.º 4
0
        public void It_can_pass_through_if_a_null_profiles_collection_is_provided()
        {
            var behavior =
                new CachingPipelineBehavior <TestableMediatr.Request,
                                             TestableMediatr.Response>(null,
                                                                       new Logger(),
                                                                       new Mock <ICacheProvider>().Object);

            var expected = new TestableMediatr.Response();

            var result = behavior.Handle(new TestableMediatr.Request {
                Id = Guid.NewGuid().ToString()
            },
                                         new CancellationToken(), async() => expected).Result;

            result.ShouldBe(expected);
        }