public void CanRead_CurrentMessage_FromNewStructure_In_CCnet15_With_2_FailingProjects()
        {
            const string xml =
                @"<Projects>
					<Project name='project1' activity='Sleeping' lastBuildStatus='Failure'>
						<messages>
							<message text='Breakers : a, b' kind='Breakers'/>
							<message text='FailingTasks : Step1, Step2' kind='FailingTasks'/>
						</messages>
					</Project>
					<Project name='project2' activity='Sleeping' lastBuildStatus='Failure'>	
						<messages>
							<message text='Breakers : c, d' kind='Breakers'/>
							<message text='FailingTasks : Step1, Step2' kind='FailingTasks'/>
						</messages>
					</Project>
				</Projects>"                ;

            _transformer = new BuildDataTransformer(_configSettings);
            var projectStatuses = _transformer.Transform(xml);

            Assert.That(projectStatuses.Count(), Is.EqualTo(2));
            Assert.That(projectStatuses.First().CurrentMessage, Is.EqualTo("Breakers : a, b"));
            Assert.That(projectStatuses.Second().CurrentMessage, Is.EqualTo("Breakers : c, d"));
        }
 public void SetUp()
 {
     _viewUrl        = new ViewUrl("http://valid/XmlStatusReport.aspx");
     _configSettings = new ConfigSettings {
         URL = _viewUrl.Url
     };
     _transformer = new BuildDataTransformer(_configSettings);
 }
        public void CanFilter_ProjectName_With_PlainProjectName_AsRegEx()
        {
            _configSettings.ProjectNameRegEx = "BarProject";
            _transformer = new BuildDataTransformer(_configSettings);
            var projectStatuses = _transformer.Transform(ThreeProjectsProjectXml);

            Assert.That(projectStatuses.Count(), Is.EqualTo(1));
            Assert.That(projectStatuses.First().Name, Is.EqualTo("BarProject"));
        }
        public void CanFilter_ProjectName_With_OR_RegEx()
        {
            _configSettings.ProjectNameRegEx = "FooProject|BarProject";
            _transformer = new BuildDataTransformer(_configSettings);

            var projectStatuses = _transformer.Transform(SimilarProjectXml);

            Assert.That(projectStatuses.Count(), Is.EqualTo(2));
            Assert.That(projectStatuses.First().Name, Is.EqualTo("FooProject"));
            Assert.That(projectStatuses.Second().Name, Is.EqualTo("BarProject"));
        }
        public void CanFilter_Category()
        {
            const string xml =
                @"<Projects>
					<Project name='ImportantProject' category='Important' />
					<Project name='LowPriorityProject' category='LowPriority'/>
				</Projects>"                ;

            _configSettings.CategoryRegEx = "Important";
            _transformer = new BuildDataTransformer(_configSettings);
            var projectStatuses = _transformer.Transform(xml);

            Assert.That(projectStatuses.Count(), Is.EqualTo(1));
            Assert.That(projectStatuses.First().Name, Is.EqualTo("ImportantProject"));
        }
        public void RegExFilter_IsUpdated_After_ConfigUpdated()
        {
            _configSettings.ProjectNameRegEx = "FooProject|BarProject";
            _transformer = new BuildDataTransformer(_configSettings);
            var projectStatuses = _transformer.Transform(SimilarProjectXml);

            Assert.That(projectStatuses.Count(), Is.EqualTo(2));

            // notify of config change and fetch again
            var newSettings = new ConfigSettings {
                ProjectNameRegEx = "BarProject", URL = _viewUrl.Url
            };

            _transformer.ConfigUpdated(newSettings);
            projectStatuses = _transformer.Transform(SimilarProjectXml);
            Assert.That(projectStatuses.Count(), Is.EqualTo(1));
            Assert.That(projectStatuses.First().Name, Is.EqualTo("BarProject"));
        }
        public void CanRead_CurrentMessage_FromNewStructure_In_CCnet15_With_NoFailing_Projects()
        {
            const string xml =
                @"<Projects>
					<Project name='project1' CurrentMessage='' activity='Sleeping' lastBuildStatus='Success'>
						<messages/>
					</Project>
					<Project name='project2' CurrentMessage='' activity='Sleeping' lastBuildStatus='Success'>	
						<messages/>							
					</Project>
				</Projects>"                ;

            _transformer = new BuildDataTransformer(_configSettings);
            var projectStatuses = _transformer.Transform(xml);

            Assert.That(projectStatuses.Count(), Is.EqualTo(2));
            Assert.That(projectStatuses.First().CurrentMessage, Is.EqualTo(""));
            Assert.That(projectStatuses.Second().CurrentMessage, Is.EqualTo(""));
        }