Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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"));
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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());
        }