Exemple #1
0
 protected override void Load(ContainerBuilder builder)
 {
     builder.RegisterAssemblyTypes(ThisAssembly)
     .Where(t => t.Name.EndsWith("Repository"))
     .WithParameter("context", new PetStoreContext())
     .WithParameter("retryPolicy", PollyFactory.CreateAsyncRetryPolicy())
     .AsImplementedInterfaces();
 }
Exemple #2
0
        public IList <MaxPriceItemByName> GetHighestCostItems()
        {
            const string uri      = "/items/group/name/agg/max(price)";
            var          response = PollyFactory
                                    .CreateGetPolicy <IList <MaxPriceItemByName> >()
                                    .Execute(() => _client.Execute <IList <MaxPriceItemByName> >(new RestRequest(uri, Method.GET)));

            return(response.IsSuccessful ? response.Data : throw response.ErrorException);
        }
Exemple #3
0
        public MaxPriceItemByName GetHighestCostItemByName(string name)
        {
            var uri      = $"/items/group/name/agg/max(price)?name={name}";
            var response = PollyFactory
                           .CreateGetPolicy <MaxPriceItemByName>()
                           .Execute(() => _client.Execute <MaxPriceItemByName>(new RestRequest(uri, Method.GET)));

            return(response.IsSuccessful || response.StatusCode == HttpStatusCode.NotFound
                ? response.Data
                : throw response.ErrorException);
        }
Exemple #4
0
        public async Task CreateAsyncRetryPolicy_NoException()
        {
            //arrange
            var retyPolicy = PollyFactory.CreateAsyncRetryPolicy();
            int i          = 0;

            //act
            await retyPolicy.ExecuteAsync(async() =>
            {
                await Task.Delay(1);  // This is here so there is something to await
                i++;
            });

            //assert
            Assert.Equal(1, i);
        }
Exemple #5
0
        public async Task CreateAsyncRetryPolicy_Exception()
        {
            //arrange
            var retyPolicy = PollyFactory.CreateAsyncRetryPolicy();
            int i          = 0;

            //act
            Exception ex = await Assert.ThrowsAsync <Exception>(() => retyPolicy.ExecuteAsync(() =>
            {
                i++;
                throw new Exception($"Run number {i}");
            }));

            //assert
            Assert.Equal("Run number 6", ex.Message);
        }