public void Can_use_Dsl_to_send_templated_email() { // arrange var emailProvider = new Moq.Mock <IEmailProvider>(); var azureDevOpsProvider = new Moq.Mock <IAzureDevOpsProvider>(); azureDevOpsProvider.Setup(t => t.GetWorkItem(99)).Returns(RestTestData.GetSingleWorkItemByID()); var engine = new AzureDevOpsEventsProcessor.Dsl.DslProcessor(); var args = new Dictionary <string, object> { { "Arguments", new[] { "WorkItemEvent", "99" } }, }; // act engine.RunScript( @".\dsl", @"TestDataFiles\Scripts\AzureDevOps\alerts", "sendtemplatedemail.py", args, azureDevOpsProvider.Object, emailProvider.Object, new Providers.JsonDataProvider(ServiceHookTestData.GetEventJson("workitem.updated"))); // assert emailProvider.Verify( e => e.SendEmailAlert( Moq.It.IsAny <IFieldLookupProvider>(), System.IO.Path.Combine(engine.BasePath, @"TestDataFiles\Scripts\AzureDevOps\alerts\EmailTemplate.htm"), true, true)); }
public void Can_get_the_base_url() { // Arrange var alertMessage = ServiceHookTestData.GetEventJson("workitem.updated"); var provider = new Providers.JsonDataProvider(alertMessage); // act var actual = provider.GetServerUrl(); // assert Assert.AreEqual("http://fabrikam-fiber-inc.visualstudio.com/DefaultCollection", actual.ToString()); }
public void Can_read_who_changed_the_workitem_from_alert_json_block() { // Arrange var alertMessage = ServiceHookTestData.GetEventJson("workitem.updated"); var provider = new Providers.JsonDataProvider(alertMessage); // act var actual = provider.GetWorkItemDetails().ChangedBy; // assert Assert.AreEqual("Jamal Hartnett", actual); }
public void Can_get_the_workitem_id() { // Arrange var alertMessage = ServiceHookTestData.GetEventJson("workitem.updated"); var provider = new Providers.JsonDataProvider(alertMessage); // act var actual = provider.GetWorkItemDetails().Id; // assert Assert.AreEqual(5, actual); }
public void Can_read_the_changed_fields_from_created_alert_json_block() { // Arrange var alertMessage = ServiceHookTestData.GetEventJson("workitem.created"); var provider = new Providers.JsonDataProvider(alertMessage); // act var actual = provider.GetWorkItemDetails().ChangedAlertFields; // assert Assert.AreEqual(13, actual.Count); Assert.AreEqual("System.TeamProject", actual[1].ReferenceName); Assert.AreEqual(string.Empty, actual[1].OldValue); Assert.AreEqual("FabrikamCloud", actual[1].NewValue); }
public void Can_read_the_changed_fields_from_changed_alert_json_block() { // Arrange var alertMessage = ServiceHookTestData.GetEventJson("workitem.updated"); var provider = new Providers.JsonDataProvider(alertMessage); // act var actual = provider.GetWorkItemDetails().ChangedAlertFields; // assert Assert.AreEqual(9, actual.Count); Assert.AreEqual("System.AuthorizedDate", actual[1].ReferenceName); Assert.AreEqual("15/07/2014 04:48:44 PM", DateTime.Parse(actual[1].OldValue).ToString("dd/MM/yyyy hh:mm:ss tt")); Assert.AreEqual("15/07/2014 05:42:44 PM", DateTime.Parse(actual[1].NewValue).ToString("dd/MM/yyyy hh:mm:ss tt")); }
public void Can_read_the_changed_files_from_alert_json_block() { // Arrange var alertMessage = ServiceHookTestData.GetEventJson("tfvc.checkin"); var dataProvider = new Providers.JsonDataProvider(alertMessage); // act var actual = dataProvider.GetCheckInDetails(); // assert Assert.AreEqual(18, actual.Changeset); Assert.AreEqual(@"Dropping in new Java sample", actual.Comment); Assert.AreEqual("Normal Paulk checked in changeset 18: Dropping in new Java sample", actual.Summary); Assert.AreEqual(@"Normal Paulk", actual.Committer); }
public void Can_read_changed_fields_when_value_set_to_null() { // Arrange var alertMessage = ServiceHookTestData.GetEventJson("workitem.updated"); var provider = new Providers.JsonDataProvider(alertMessage); // act var actual = provider.GetWorkItemDetails().ChangedAlertFields; // assert Assert.AreEqual(9, actual.Count); Assert.AreEqual("System.AssignedTo", actual[5].ReferenceName); Assert.AreEqual(string.Empty, actual[5].OldValue); Assert.AreEqual("Jamal Hartnet", actual[5].NewValue); }
public void Can_read_the_build_fields_from_alert_json_block() { // Arrange var alertMessage = ServiceHookTestData.GetEventJson("build.complete"); var dataProvider = new Providers.JsonDataProvider(alertMessage); // act var actual = dataProvider.GetBuildDetails(); // assert Assert.AreEqual("vstfs:///Build/Build/2", actual.BuildUri.ToString()); Assert.AreEqual(2, actual.Id); Assert.AreEqual("ConsumerAddressModule_20150407.1", actual.Summary); Assert.AreEqual("succeeded", actual.Status); Assert.AreEqual("https://fabrikam-fiber-inc.visualstudio.com/DefaultCollection/71777fbc-1cf2-4bd1-9540-128c1c71f766/_apis/build/Builds/2", actual.BuildUrl.ToString()); }
public void Can_run_a_script_using_work_item_deleted_data() { // arrange var alertMessage = ServiceHookTestData.GetEventJson("workitem.deleted"); var emailProvider = new Moq.Mock <IEmailProvider>(); var azureDevOpsProvider = new Moq.Mock <IAzureDevOpsProvider>(); var sut = new Controllers.WebHookController( emailProvider.Object, azureDevOpsProvider.Object, @"TestDataFiles\Scripts\AzureDevOps\alerts\fullscript.py", @".\dsl"); // redirect the console var consoleOut = Helpers.Logging.RedirectConsoleOut(); // act var actual = sut.Post(alertMessage); // assert Assert.AreEqual(HttpStatusCode.OK, actual.StatusCode); Assert.AreEqual("Got a known workitem.deleted event type with id 5" + Environment.NewLine, consoleOut.ToString()); }
public void Can_run_a_script_using_push_data() { // arrange var alertMessage = ServiceHookTestData.GetEventJson("git.push"); var emailProvider = new Moq.Mock <IEmailProvider>(); var azureDevOpsProvider = new Moq.Mock <IAzureDevOpsProvider>(); var sut = new Controllers.WebHookController( emailProvider.Object, azureDevOpsProvider.Object, @"TestDataFiles\Scripts\AzureDevOps\alerts\fullscript.py", @".\dsl"); // redirect the console var consoleOut = Helpers.Logging.RedirectConsoleOut(); // act var actual = sut.Post(alertMessage); // assert Assert.AreEqual(HttpStatusCode.OK, actual.StatusCode); Assert.AreEqual("Got a known git.push event type on repo 3c4e22ee-6148-45a3-913b-454009dac91d with id 73" + Environment.NewLine, consoleOut.ToString()); }
public void Can_run_a_script_using_pull_request_merged_data() { // arrange var alertMessage = ServiceHookTestData.GetEventJson("git.pullrequest.merged"); var emailProvider = new Moq.Mock <IEmailProvider>(); var azureDevOpsProvider = new Moq.Mock <IAzureDevOpsProvider>(); var sut = new Controllers.WebHookController( emailProvider.Object, azureDevOpsProvider.Object, @"TestDataFiles\Scripts\AzureDevOps\alerts\fullscript.py", @".\dsl"); // redirect the console var consoleOut = Helpers.Logging.RedirectConsoleOut(); // act var actual = sut.Post(alertMessage); // assert Assert.AreEqual(HttpStatusCode.OK, actual.StatusCode); Assert.AreEqual("Got a known git.pullrequest.merged event type on repo 4bc14d40-c903-45e2-872e-0462c7748079 with id 1" + Environment.NewLine, consoleOut.ToString()); }
public void Cannot_run_a_script_using_an_unknown_event_type() { // arrange var alertMessage = ServiceHookTestData.GetEventJson("dummy"); var emailProvider = new Moq.Mock <IEmailProvider>(); var azureDevOpsProvider = new Moq.Mock <IAzureDevOpsProvider>(); var sut = new Controllers.WebHookController( emailProvider.Object, azureDevOpsProvider.Object, @"TestDataFiles\Scripts\AzureDevOps\alerts\fullscript.py", @".\dsl"); // redirect the console var consoleOut = Helpers.Logging.RedirectConsoleOut(); // act var actual = sut.Post(alertMessage); // assert Assert.AreEqual(HttpStatusCode.BadRequest, actual.StatusCode); Assert.AreEqual("", consoleOut.ToString()); }