示例#1
0
        internal static MockServiceBusMessage CreateMockMessage(TestVstsMessage testMessage)
        {
            var testMessageJson = JsonConvert.SerializeObject(testMessage);
            var mockMessage     = new MockServiceBusMessage {
                BodyObject = testMessageJson
            };

            return(mockMessage);
        }
示例#2
0
        private static async Task ProcessTestMessage(MockServiceBusMessage mockServiceBusMessage = null, MockServiceBusQueueMessageListener mockMessageListener = null, MockTaskClient mockTaskClient = null, MockVstsHandler handler = null, MockVstsReportingHelper mockReportingHelper = null, IBrokerInstrumentation instrumentation = null, int maxRetryAttempts = 1, IBuildClient mockBuildClient = null, IGitClient mockGitClient = null)
        {
            mockServiceBusMessage = mockServiceBusMessage ?? CreateMockMessage(CreateValidTestVstsMessage());
            mockTaskClient        = mockTaskClient ?? new MockTaskClient();
            mockBuildClient       = mockBuildClient ?? new MockBuildClient()
            {
                MockBuild = new Build()
                {
                    Status = BuildStatus.InProgress
                }
            };
            mockReportingHelper = mockReportingHelper ?? new MockVstsReportingHelper(new TestVstsMessage());
            var mockReleaseClient = new MockReleaseClient()
            {
                MockRelease = new Release()
                {
                    Status = ReleaseStatus.Active
                }
            };

            handler = handler ?? new MockVstsHandler {
                MockExecuteFunc = (vstsMessage) => Task.FromResult(new VstsScheduleResult()
                {
                    Message = "(test) mock execute requested", ScheduledId = "someId", ScheduleFailed = false
                })
            };
            instrumentation = instrumentation ?? new TraceBrokerInstrumentation();
            var settings = new ServiceBusQueueMessageHandlerSettings {
                MaxRetryAttempts = maxRetryAttempts, TimeLineNamePrefix = "someTimeline", WorkerName = "someWorker"
            };

            mockMessageListener = mockMessageListener ?? new MockServiceBusQueueMessageListener();
            var schedulingBroker = new ServiceBusQueueMessageHandler <TestVstsMessage>(queueClient: mockMessageListener, baseInstrumentation: instrumentation, scheduleHandler: handler, settings: settings);

            schedulingBroker.CreateTaskClient          = (uri, creds, instrumentationHandler, skipRaisePlanEvents) => mockTaskClient;
            schedulingBroker.CreateBuildClient         = (uri, creds) => mockBuildClient;
            schedulingBroker.CreateReleaseClient       = (uri, creds) => mockReleaseClient;
            schedulingBroker.CreateVstsReportingHelper = (vstsMessage, inst, props) => mockReportingHelper;
            var cancelSource = new CancellationTokenSource();
            await schedulingBroker.ReceiveAsync(mockServiceBusMessage, cancelSource.Token);
        }
        private static async Task ProcessTestMessage(MockServiceBusMessage mockServiceBusMessage = null, MockServiceBusQueueMessageListener mockMessageListener = null, MockTaskClient mockTaskClient = null, MockVstsHandler handler = null, MockJobStatusReportingHelper mockReportingHelper = null, ILogger logger = null, int maxRetryAttempts = 1, IBuildClient mockBuildClient = null)
        {
            mockServiceBusMessage = mockServiceBusMessage ?? CreateMockMessage(CreateValidTestVstsMessage());
            mockTaskClient        = mockTaskClient ?? new MockTaskClient();
            mockBuildClient       = mockBuildClient ?? new MockBuildClient()
            {
                MockBuild = new Build()
                {
                    Status = BuildStatus.InProgress
                }
            };
            mockReportingHelper = mockReportingHelper ?? new MockJobStatusReportingHelper(new TestVstsMessage());
            var mockReleaseClient = new MockReleaseClient()
            {
                MockRelease = new Release()
                {
                    Status = ReleaseStatus.Active
                }
            };

            handler = handler ?? new MockVstsHandler {
                MockExecuteFunc = (vstsMessage) => Task.FromResult(new VstsScheduleResult()
                {
                    Message = "(test) mock execute requested", ScheduledId = "someId", ScheduleFailed = false
                })
            };
            logger = logger ?? new TraceLogger();
            var settings = new ServiceBusQueueMessageHandlerSettings {
                MaxRetryAttempts = maxRetryAttempts, TimeLineNamePrefix = "someTimeline", WorkerName = "someWorker"
            };

            mockMessageListener = mockMessageListener ?? new MockServiceBusQueueMessageListener();
            var schedulingBroker = new TestableServiceBusQueueMessageHandler(mockMessageListener, handler, settings, logger, mockTaskClient, mockBuildClient, mockReportingHelper, mockReleaseClient);
            var cancelSource     = new CancellationTokenSource();
            await schedulingBroker.ReceiveAsync(mockServiceBusMessage, cancelSource.Token);
        }