internal static MockServiceBusMessage CreateMockMessage(TestVstsMessage testMessage) { var testMessageJson = JsonConvert.SerializeObject(testMessage); var mockMessage = new MockServiceBusMessage { BodyObject = testMessageJson }; return(mockMessage); }
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); }