public void WhenRunningTaskShouldComputeMetrics() { ITaskItem[] providers = new TaskItemMock[1]; providers[0] = new TaskItemMock("MSBuildCodeMetrics.Core.UnitTests.Mock.CodeMetricsProviderSingleFileMock, MSBuildCodeMetrics.Core.UnitTests"). AddMetadata("Data", "<Metric Name=\"LinesOfCode\"><Measure " + "Name=\"Method1\" Value=\"1\" /><Measure Name=\"Method2\" Value=\"2\" /><Measure " + "Name=\"Method3\" Value=\"5\" /></Metric>"). AddMetadata("ProviderName", "CodeMetricsProviderMock"); ITaskItem[] metrics = new TaskItemMock[1]; metrics[0] = new TaskItemMock("LinesOfCode"). AddMetadata("ProviderName", "CodeMetricsProviderMock"). AddMetadata("Ranges", "2;3"). AddMetadata("Files", "C:\\foo.txt"); FileStreamFactoryMock streamFactory = new FileStreamFactoryMock(); CodeMetrics task = new CodeMetrics(streamFactory); task.BuildEngine = new BuildEngineMock(); task.Providers = providers; task.OutputFileName = "report.xml"; task.ShowDetailsReport = true; task.ShowSummaryReport = true; task.Metrics = metrics; task.FileOutput = true; Assert.AreEqual(true, task.Execute()); streamFactory.OutputStream.Seek(0, SeekOrigin.Begin); MSBuildCodeMetricsReport report = MSBuildCodeMetricsReport.Deserialize(streamFactory.OutputStream); Assert.AreEqual(1, report.Details.Metrics.Count); Assert.AreEqual("LinesOfCode", report.Details.Metrics[0].MetricName); Assert.AreEqual("Method3", report.Details.Metrics[0].Measures[0].MeasureName); Assert.AreEqual(5, report.Details.Metrics[0].Measures[0].Value); }
public void Initialize() { _files = new List<string>().AddItem("file1.cs"); FileStreamFactoryMock streamFactory = new FileStreamFactoryMock(); streamFactory.AddFileMock("file1.cs", TestResources.SourceFile1); _provider = new CountLOCProvider(streamFactory); }
public void WhenCallingComputeMetricsWithoutSpecifyingFileTypeShouldIgnoreFile() { List<string> files = new List<string>().AddItem("file1.cs"); FileStreamFactoryMock streamFactory = new FileStreamFactoryMock(); streamFactory.AddFileMock("file1.cs", TestResources.SourceFile1); CountLOCProvider provider = new CountLOCProvider(streamFactory); provider.AddMetadata("FileTypes", ".vb=VB.NET"); var measures = provider.ComputeMetrics(new List<string>().AddItem("FileLOC").AddItem("EmptyLOC").AddItem("CommentLOC"), files).ToList(); Assert.AreEqual(0, measures.Count); }
public void TestCountProjectsByProjectType() { List<string> files = new List<string>().AddItem("file1.csproj").AddItem("file2.csproj"); FileStreamFactoryMock streamFactory = new FileStreamFactoryMock(); streamFactory.AddFileMock("file1.csproj", TestResources.Project1); streamFactory.AddFileMock("file2.csproj", TestResources.Project2); CountProjectsByProjectTypeProvider provider = new CountProjectsByProjectTypeProvider(streamFactory); var measures = provider.ComputeMetrics(new List<string>().AddItem("ProjectTypeCount"), files).ToList(); Assert.AreEqual("Library", measures[0].MeasureName); Assert.AreEqual(2, measures[0].Value); }
public void WhenCallingComputeMetricsShouldReturnMeasures() { List<string> files = new List<string>().AddItem("file1.cs"); FileStreamFactoryMock streamFactory = new FileStreamFactoryMock(); streamFactory.AddFileMock("file1.cs", TestResources.SourceFile1); CountLOCProvider provider = new CountLOCProvider(streamFactory); provider.AddMetadata("FileTypes", ".cs=C#"); var measures = provider.ComputeMetrics(new List<string>().AddItem("FileLOC").AddItem("EmptyLOC").AddItem("CommentLOC"), files).ToList(); Assert.AreEqual("TotalLOC", measures[0].MetricName); Assert.AreEqual("C#", measures[0].MeasureName); Assert.AreEqual(34, measures[0].Value); Assert.AreEqual("EmptyLOC", measures[2].MetricName); Assert.AreEqual("C#", measures[2].MeasureName); Assert.AreEqual(3, measures[2].Value); Assert.AreEqual("CommentLOC", measures[3].MetricName); Assert.AreEqual("C#", measures[3].MeasureName); Assert.AreEqual(7, measures[3].Value); Assert.AreEqual("CodeLOC", measures[1].MetricName); Assert.AreEqual("C#", measures[1].MeasureName); Assert.AreEqual(24, measures[1].Value); }