コード例 #1
0
        public void msteams_card_fact_task_status_is_set_from_sonarqube_webhook_data()
        {
            // Arrange
            var     sonarqubeToMSTeamsConverter = new SonarqubeToMSTeamsConverter();
            dynamic data    = GetExampleSonarqubeQualityGateOkJson();
            string  culture = null;

            // Act
            var msTeamsComplexCard = sonarqubeToMSTeamsConverter.ToComplexCard(data, culture);

            // Assert
            var fact = msTeamsComplexCard.Sections[0].Facts[2];

            Assert.Equal("Task status", fact.Name);
            Assert.Equal((string)data.status, fact.Value);
        }
コード例 #2
0
        public void msteams_card_fact_analyzed_at_is_set_from_sonarqube_webhook_data_based_on_specified_culture()
        {
            // Arrange
            var     sonarqubeToMSTeamsConverter = new SonarqubeToMSTeamsConverter();
            dynamic data    = GetExampleSonarqubeQualityGateOkJson();
            string  culture = "sv-SE";

            // Act
            var msTeamsComplexCard = sonarqubeToMSTeamsConverter.ToComplexCard(data, culture);

            // Assert
            var         fact        = msTeamsComplexCard.Sections[0].Facts[0];
            CultureInfo cultureInfo = new CultureInfo(culture);

            Assert.Equal(data.analysedAt.Value.ToString("G", cultureInfo), fact.Value);
        }
コード例 #3
0
        public void msteams_card_fact_analyzed_at_is_set_from_sonarqube_webhook_data()
        {
            // Arrange
            var     sonarqubeToMSTeamsConverter = new SonarqubeToMSTeamsConverter();
            dynamic data    = GetExampleSonarqubeQualityGateOkJson();
            string  culture = null;

            // Act
            var msTeamsComplexCard = sonarqubeToMSTeamsConverter.ToComplexCard(data, culture);

            // Assert
            var fact = msTeamsComplexCard.Sections[0].Facts[0];

            Assert.Equal("Analyzed at", fact.Name);
            Assert.Equal(data.analysedAt.Value.ToString("G"), fact.Value);
        }
コード例 #4
0
        public void sonarqube_webhook_with_quality_gate_neither_ok_nor_error_gets_yellow_msteams_card()
        {
            // Arrange
            var     sonarqubeToMSTeamsConverter = new SonarqubeToMSTeamsConverter();
            dynamic data    = GetExampleSonarqubeQualityGateOtherJson();
            string  culture = null;

            // Act
            var msTeamsComplexCard = sonarqubeToMSTeamsConverter.ToComplexCard(data, culture);

            // Assert
            Assert.Equal("FFFF00", msTeamsComplexCard.ThemeColor);
            var section = msTeamsComplexCard.Sections[0];

            Assert.Equal(SonarqubeToMSTeamsConverter.GetActivityImageInconclusive(), section.ActivityImage);
            Assert.Contains("inconclusive", section.ActivityTitle);
            Assert.Contains((string)data.qualityGate.status, section.ActivitySubtitle);
        }
コード例 #5
0
        public void sonarqube_webhook_with_quality_gate_ok_gets_green_msteams_card()
        {
            // Arrange
            var     sonarqubeToMSTeamsConverter = new SonarqubeToMSTeamsConverter();
            dynamic data    = GetExampleSonarqubeQualityGateOkJson();
            string  culture = null;

            // Act
            var msTeamsComplexCard = sonarqubeToMSTeamsConverter.ToComplexCard(data, culture);

            // Assert
            Assert.Equal("00FF00", msTeamsComplexCard.ThemeColor);
            var section = msTeamsComplexCard.Sections[0];

            Assert.Equal(SonarqubeToMSTeamsConverter.GetActivityImageSuccess(), section.ActivityImage);
            Assert.Contains("succeeded", section.ActivityTitle);
            Assert.Contains((string)data.qualityGate.status, section.ActivitySubtitle);
        }
コード例 #6
0
        public void msteams_card_will_contain_a_potentialaction_with_link_to_sonarqube_portal()
        {
            // Arrange
            var     sonarqubeToMSTeamsConverter = new SonarqubeToMSTeamsConverter();
            dynamic data    = GetExampleSonarqubeQualityGateOkJson();
            string  culture = null;

            // Act
            var msTeamsComplexCard = sonarqubeToMSTeamsConverter.ToComplexCard(data, culture);

            // Assert
            var potentialAction = msTeamsComplexCard.PotentialAction[0];

            Assert.Equal("OpenUri", potentialAction.Type);
            Assert.Equal("Open in Sonarqube", potentialAction.Name);

            var potentialActionTarget = potentialAction.Targets[0];

            Assert.Equal("default", potentialActionTarget.OS);
            Assert.Equal(new System.Uri((string)data.project.url), potentialActionTarget.Uri);
        }
コード例 #7
0
        public void can_convert_valid_sonarqube_webhook_to_msteams_card()
        {
            // Arrange
            var     sonarqubeToMSTeamsConverter = new SonarqubeToMSTeamsConverter();
            dynamic data    = GetExampleSonarqubeQualityGateOkJson();
            string  culture = null;

            // Act
            var msTeamsComplexCard = sonarqubeToMSTeamsConverter.ToComplexCard(data, culture);

            // Assert
            Assert.NotNull(msTeamsComplexCard);
            Assert.Equal("MessageCard", msTeamsComplexCard.Type);
            Assert.Equal(new System.Uri("http://schema.org/extensions"), msTeamsComplexCard.Context);
            Assert.NotEmpty(msTeamsComplexCard.Summary);
            Assert.True(msTeamsComplexCard.Sections.Length > 0);

            var potentialAction = msTeamsComplexCard.PotentialAction[0];

            Assert.Equal("OpenUri", potentialAction.Type);
        }