public static async Task ClearQueue_Success()
        {
            const int NumMessages = 123;
            var       model       = new ClearQueueRequest
            {
                Priority = UploadProcessingMessagePriority.High,
            };

            var mockDatabaseCommandFactory = new Mock <IDatabaseCommandFactory>(MockBehavior.Strict);
            var mockUploadScheduler        = new Mock <IUploadScheduler>(MockBehavior.Strict);

            mockUploadScheduler
            .Setup(_ => _.ClearQueueAsync(model.Priority))
            .Returns(Task.FromResult(NumMessages));
            var mockUserManager = MockUserManager.CreateMock();

            var controller = new AdminController(
                mockDatabaseCommandFactory.Object,
                mockUploadScheduler.Object,
                mockUserManager.Object);
            var result = await controller.ClearQueue(model);

            Assert.NotNull(result);
            Assert.Equal(NumMessages, result.Value);

            mockDatabaseCommandFactory.VerifyAll();
            mockUploadScheduler.VerifyAll();

            // Workaround for a Moq bug. See: https://github.com/moq/moq4/issues/456#issuecomment-331692858
            mockUserManager.Object.Logger = mockUserManager.Object.Logger;
            mockUserManager.VerifyAll();
        }
        /// <summary>
        /// 清除queue中的所有消息
        /// </summary>
        /// <param name="req"><see cref="ClearQueueRequest"/></param>
        /// <returns><see cref="ClearQueueResponse"/></returns>
        public ClearQueueResponse ClearQueueSync(ClearQueueRequest req)
        {
            JsonResponseModel <ClearQueueResponse> rsp = null;

            try
            {
                var strResp = this.InternalRequestSync(req, "ClearQueue");
                rsp = JsonConvert.DeserializeObject <JsonResponseModel <ClearQueueResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
Beispiel #3
0
 public async Task <ActionResult <int> > ClearQueue(ClearQueueRequest model) => await this.uploadScheduler.ClearQueueAsync(model.Priority);