Exemple #1
0
 public FakeINotificationQuery(IReadOnlyCollection <NotificationItem>?notificationItem = null)
 {
     if (notificationItem == null)
     {
         return;
     }
     FakeContent.AddRange(notificationItem);
 }
Exemple #2
0
 public FakeTopicReply(int topicId, int replyId)
 {
     ReplyId          = replyId;
     TopicId          = topicId;
     ReplyMemberId    = RandomHelper.Next(10000);
     ReplyMemberName  = FakeName.MakeFakeUserName();
     ReplyMemberImage = FakeImage.MakeFakeImage();
     ReplyTime        = RandomHelper.Time();
     Content          = FakeContent.MakeContent();
 }
        public async Task MultipleHandlers_CanReexecuteSendAsync_FirstResponseDisposed()
        {
            // Arrange
            var policy1 = HttpPolicyExtensions.HandleTransientHttpError()
                          .RetryAsync(retryCount: 1);
            var policy2 = HttpPolicyExtensions.HandleTransientHttpError()
                          .CircuitBreakerAsync(handledEventsAllowedBeforeBreaking: 2, durationOfBreak: TimeSpan.FromSeconds(10));

            var callCount     = 0;
            var fakeContent   = new FakeContent();
            var firstResponse = new HttpResponseMessage()
            {
                StatusCode = System.Net.HttpStatusCode.InternalServerError,
                Content    = fakeContent,
            };
            var expected = new HttpResponseMessage();

            var handler1 = new PolicyHttpMessageHandler(policy1);
            var handler2 = new PolicyHttpMessageHandler(policy2);

            handler1.InnerHandler = handler2;
            handler2.InnerHandler = new TestHandler()
            {
                OnSendAsync = (req, ct) =>
                {
                    if (callCount == 0)
                    {
                        callCount++;
                        return(Task.FromResult(firstResponse));
                    }
                    else if (callCount == 1)
                    {
                        callCount++;
                        return(Task.FromResult(expected));
                    }
                    else
                    {
                        throw new InvalidOperationException();
                    }
                }
            };
            var invoke = new HttpMessageInvoker(handler1);

            // Act
            var response = await invoke.SendAsync(new HttpRequestMessage(), CancellationToken.None);

            // Assert
            Assert.Equal(2, callCount);
            Assert.Same(expected, response);
            Assert.True(fakeContent.Disposed);
        }
Exemple #4
0
 public FakeTopic(int topicId)
 {
     TopicId    = topicId;
     CreatorId  = RandomHelper.Next(10000);
     TopicTitle = FakeContent.MakeTitle();
     ViewCount  = RandomHelper.Next(32423);
     for (int i = 0; i < RandomHelper.Next(2, 10); i++)
     {
         ReplyList.Add(new FakeTopicReply(topicId, RandomHelper.Next(10000)));
     }
     CreateTime     = RandomHelper.Time();
     LastUpdateTime = RandomHelper.Time();
     Owner          = new FakeCommunityInfo();
     Content        = FakeContent.MakeContent();
 }
        public async Task SendAsync_StaticPolicy_PolicyTriggers_CanReexecuteSendAsync_FirstResponseDisposed()
        {
            // Arrange
            var policy = HttpPolicyExtensions.HandleTransientHttpError()
                         .RetryAsync(retryCount: 1);

            var callCount     = 0;
            var fakeContent   = new FakeContent();
            var firstResponse = new HttpResponseMessage()
            {
                StatusCode = System.Net.HttpStatusCode.InternalServerError,
                Content    = fakeContent,
            };
            var expected = new HttpResponseMessage();

            var handler = new PolicyHttpMessageHandler(policy);

            handler.InnerHandler = new TestHandler()
            {
                OnSendAsync = (req, ct) =>
                {
                    if (callCount == 0)
                    {
                        callCount++;
                        return(Task.FromResult(firstResponse));
                    }
                    else if (callCount == 1)
                    {
                        callCount++;
                        return(Task.FromResult(expected));
                    }
                    else
                    {
                        throw new InvalidOperationException();
                    }
                }
            };
            var invoke = new HttpMessageInvoker(handler);

            // Act
            var response = await invoke.SendAsync(new HttpRequestMessage(), CancellationToken.None);

            // Assert
            Assert.Equal(2, callCount);
            Assert.Same(expected, response);
            Assert.True(fakeContent.Disposed);
        }
        private static ExcelWorksheet GetWorksheetFromStream <TItem>(XlsxMediaTypeFormatter formatter, TItem data)
        {
            var content = new FakeContent();

            content.Headers.ContentType = new MediaTypeHeaderValue("application/atom+xml");

            var httpContext = new DefaultHttpContext();

            httpContext.Response.Body   = new MemoryStream();
            httpContext.RequestServices = new FakeServiceProvider();
            var context = new OutputFormatterWriteContext(httpContext, new TestHttpResponseStreamWriterFactory().CreateWriter, typeof(TItem), data);

            formatter.WriteResponseBodyAsync(context, Encoding.UTF8).GetAwaiter().GetResult();

            context.HttpContext.Response.Body.Seek(0, SeekOrigin.Begin);
            var package = new ExcelPackage(context.HttpContext.Response.Body);

            return(package.Workbook.Worksheets[0]);
        }
Exemple #7
0
        public FakeCommunityInfo()
        {
            CommunityId      = RandomHelper.Next(23432);
            ParentId         = RandomHelper.Bool() ? RandomHelper.Next(234) : 0;
            ParentName       = ParentId > 0 ? FakeName.MakeFakeGroupName() : "";
            Name             = FakeName.MakeFakeCommunityName();
            Image            = FakeImage.MakeFakeImage();
            MasterId         = RandomHelper.Next(23432);
            MemberCount      = RandomHelper.Next(546);
            CreateTime       = RandomHelper.Time();
            Description      = FakeContent.MakeDescription();
            LastActivityTime = RandomHelper.Time();
            CloseTime        = RandomHelper.Bool() ? RandomHelper.Time() : DateTime.MaxValue;

            int tagCount = RandomHelper.Next(10);

            for (int i = 0; i < tagCount; i++)
            {
                Tags.Add(new TagModel());
            }
        }
        /// <summary>
        /// Generate a worksheet containing the specified data using the provided <c>XlsxMediaTypeFormatter</c>
        /// instance.
        /// </summary>
        /// <typeparam name="TItem">Type of items to be serialised.</typeparam>
        /// <param name="formatter">Formatter instance to use for serialisation.</param>
        /// <param name="data">Data to be serialised.</param>
        /// <returns></returns>
        public ExcelWorksheet GetWorksheetFromStream <TItem>(XlsxMediaTypeFormatter formatter, TItem data)
        {
            var ms = new MemoryStream();

            var content = new FakeContent();

            content.Headers.ContentType = new MediaTypeHeaderValue("application/atom+xml");

            var task = formatter.WriteToStreamAsync(typeof(IEnumerable <TItem>),
                                                    data,
                                                    ms,
                                                    content,
                                                    new FakeTransport());

            task.Wait();

            ms.Seek(0, SeekOrigin.Begin);

            var package = new ExcelPackage(ms);

            return(package.Workbook.Worksheets[1]);
        }