public void WhenConvertingWithProjectMeausreShouldAppendProjectMeasure() { this.measureConverter = new MeasureConverter <int>(new DateTime(2018, 9, 17), new DateTime(2018, 9, 18), metric, mockMeasureAggregatorProject.Object, "//prefix/"); var dailyCodeChurn1 = new DailyCodeChurn() { Timestamp = "2018/09/17 00:00:00", FileName = "file1", Added = 10, Deleted = 10 }; var dailyCodeChurn2 = new DailyCodeChurn() { Timestamp = "2018/09/17 00:00:00", FileName = "file2", Added = 5, Deleted = 5 }; var measures = new SonarMeasuresJson(); this.measureConverter.ProcessProjectMeasure(measures); this.measureConverter.ProcessProjectMeasure(measures); Assert.Single(measures.MeasuresProject.Where(m => m.MetricKey == "key")); }
public void WhenExportingShouldGenerateContentToFile() { var mockStreamFactory = new Mock <IStreamFactory>(); var memoryStream = new MemoryStream(); mockStreamFactory.Setup(m => m.createFileStream("filename", FileMode.Create, FileAccess.Write)).Returns(memoryStream); var measures = new SonarMeasuresJson() { Measures = new List <IMeasure>() { new Measure <int>() { MetricKey = "key", File = "file", Value = 1 } } }; var jsonExporter = new JsonExporter(mockStreamFactory.Object); jsonExporter.Export(measures, "filename"); var resultString = UTF8Encoding.UTF8.GetString(memoryStream.GetBuffer()); Assert.NotEmpty(resultString); }
public void WhenConvertingNoProjectMeausreShouldAppendProjectMeasure() { this.measureConverter = new MeasureConverterRaw <string>(metric, mockMeasureAggregatorProject.Object, "//prefix/"); var measures = new SonarMeasuresJson(); this.measureConverter.ProcessProjectMeasure(measures); Assert.NotEmpty(measures.MeasuresProject.Where(m => m.MetricKey == "key")); }
public void WhenConvertingShouldAdd() { var dailyCodeChurn = new DailyCodeChurn() { Timestamp = "2018/09/17 12:00:00", FileName = "file1" }; var measures = new SonarMeasuresJson(); this.measureConverter.ProcessFileMeasure(dailyCodeChurn, measures); Assert.Equal("file1", (Assert.Single(measures.MeasuresRaw) as Measure <string>).Value); }
public void WhenConvertingWithinRangeAndDiffrentCaseShouldRemoveFilePrefix() { var dailyCodeChurn = new DailyCodeChurn() { Timestamp = "2018/09/17 00:00:00", FileName = "//PREfix/file" }; var measures = new SonarMeasuresJson(); this.measureConverter.ProcessFileMeasure(dailyCodeChurn, measures); Assert.Equal("file", measures.MeasuresRaw.Where(m => m.MetricKey == "key").Single().File); }
public void WhenConvertingWithProjectMeausreShouldNotThrow() { var measures = new SonarMeasuresJson(); try { this.measureConverter.ProcessProjectMeasure(measures); Assert.True(true); } catch (Exception) { Assert.True(false); } }
public void WhenConvertingWithinRangeShouldAppendMetrics() { var dailyCodeChurn = new DailyCodeChurn() { Timestamp = "2018/09/17 00:00:00", FileName = "file1", Added = 10, Deleted = 10 }; var measures = new SonarMeasuresJson(); this.measureConverter.ProcessFileMeasure(dailyCodeChurn, measures); Assert.NotEmpty(measures.Metrics.Where(m => m.MetricKey == "key")); }
public void WhenConvertingAndBeforeRangeShouldDoNothing() { var dailyCodeChurn = new DailyCodeChurn() { Timestamp = "2018/09/16 12:00:00", FileName = "file1", Added = 10, Deleted = 10 }; var measures = new SonarMeasuresJson(); this.measureConverter.ProcessFileMeasure(dailyCodeChurn, measures); Assert.Empty(measures.Measures); }
public void WhenConvertingWithinRangeAndNoFilePrefixShouldConvert() { this.measureConverter = new MeasureConverterRaw <string>(metric, mockMeasureAggregator.Object, null); var dailyCodeChurn = new DailyCodeChurn() { Timestamp = "2018/09/17 00:00:00", FileName = "//prefix/file" }; var measures = new SonarMeasuresJson(); this.measureConverter.ProcessFileMeasure(dailyCodeChurn, measures); Assert.Equal("//prefix/file", measures.MeasuresRaw.Where(m => m.MetricKey == "key").Single().File); }
public void WhenConvertingANonProjectAggregatorWithProjectMeausreShouldDoNothing() { this.measureConverter = new MeasureConverterRaw <string>(metric, mockMeasureAggregator.Object, "//prefix/"); var dailyCodeChurn = new DailyCodeChurn() { Timestamp = "2018/09/17 00:00:00", FileName = "file1" }; var measures = new SonarMeasuresJson(); this.measureConverter.ProcessProjectMeasure(measures); Assert.Empty(measures.MeasuresProject.Where(m => m.MetricKey == "key")); }
public void WhenConvertingAndInRangeAndValueZeroShouldDoNothing() { var dailyCodeChurn = new DailyCodeChurn() { Timestamp = "2018/09/17 12:00:00", FileName = "file1", Added = 0, Deleted = 0, NumberOfChanges = 0 }; var measures = new SonarMeasuresJson(); this.measureConverter.ProcessFileMeasure(dailyCodeChurn, measures); Assert.Empty(measures.Measures); }
public void WhenConvertingWithinRangeShouldAppendMeasures() { var dailyCodeChurn = new DailyCodeChurn() { Timestamp = "2018/09/17 00:00:00", FileName = "file1", Added = 10, Deleted = 10 }; var measures = new SonarMeasuresJson(); this.measureConverter.ProcessFileMeasure(dailyCodeChurn, measures); Assert.Equal(dailyCodeChurn.TotalLinesChanged, measures.Measures.Where(m => m.MetricKey == "key" && m.File == dailyCodeChurn.FileName).Select(m => m as Measure <int>).Single().Value); }
public void WhenConvertingAndInvalidDailyCodeChurnShouldNotAdd() { var dailyCodeChurn = new DailyCodeChurn() { Timestamp = "2018/09/17 00:00:00", FileName = "file1" }; this.mockMeasureAggregator.Setup(m => m.HasValue(dailyCodeChurn)).Returns(false); var measures = new SonarMeasuresJson(); this.measureConverter.ProcessFileMeasure(dailyCodeChurn, measures); Assert.Empty(measures.MeasuresRaw); }
public void WhenConvertingAndAlreadyHaveExistingMeasureShouldUpdate() { var dailyCodeChurn = new DailyCodeChurn() { Timestamp = "2018/09/17 00:00:00", FileName = "file1" }; var measures = new SonarMeasuresJson(); measures.AddRawMeasure(new Measure <string>() { MetricKey = "key", File = "file1", Value = "file1" }); this.measureConverter.ProcessFileMeasure(dailyCodeChurn, measures); Assert.Equal("file1,file1", measures.MeasuresRaw.Where(m => m.MetricKey == "key" && m.File == dailyCodeChurn.FileName).Select(m => m as Measure <string>).Single().Value); }
public void WhenConvertingAndAlreadyHaveExistingMeasureShouldUpdate() { var dailyCodeChurn = new DailyCodeChurn() { Timestamp = "2018/09/17 00:00:00", FileName = "file1", Added = 10, Deleted = 10 }; var measures = new SonarMeasuresJson(); measures.AddFileMeasure(new Measure <int>() { MetricKey = "key", File = "file1", Value = 5 }); this.measureConverter.ProcessFileMeasure(dailyCodeChurn, measures); Assert.Equal(dailyCodeChurn.TotalLinesChanged + 5, measures.Measures.Where(m => m.MetricKey == "key" && m.File == dailyCodeChurn.FileName).Select(m => m as Measure <int>).Single().Value); }
public GivenASonarMeasuresJson() { this.sonarMeasuresJson = new SonarMeasuresJson(); }