Skip to content

Commit

Permalink
Converted ScrapingDeserializer
Browse files Browse the repository at this point in the history
  • Loading branch information
adamconnelly committed Feb 10, 2020
1 parent 2f4b78a commit 3756fa0
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,9 @@ namespace Promitor.Core.Scraping.Configuration.Serialization.v1.Core
{
public class ScrapingDeserializer : Deserializer<ScrapingV1>
{
private const string ScheduleTag = "schedule";

public ScrapingDeserializer(ILogger<ScrapingDeserializer> logger) : base(logger)
{
}

public override ScrapingV1 Deserialize(YamlMappingNode node, IErrorReporter errorReporter)
{
var scraping = new ScrapingV1();

scraping.Schedule = node.GetString(ScheduleTag);

if (scraping.Schedule == null)
{
Logger.LogError("No default metric scraping schedule was configured!");
}

return scraping;
MapRequired(scraping => scraping.Schedule);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using System.ComponentModel;
using Microsoft.Extensions.Logging.Abstractions;
using Moq;
using Promitor.Core.Scraping.Configuration.Serialization;
using Promitor.Core.Scraping.Configuration.Serialization.v1.Core;
using Xunit;

Expand Down Expand Up @@ -43,5 +45,19 @@ public void Deserialize_ScheduleNotSupplied_SetsScheduleNull()
"scraping",
s => s.Schedule);
}

[Fact]
public void Deserialize_ScheduleNotSupplied_ReportsError()
{
// Arrange
var node = YamlUtils.CreateYamlNode("name: promitor");
var errorReporter = new Mock<ErrorReporter>();

// Act
var result = _deserializer.Deserialize(node, errorReporter.Object);

// Assert
errorReporter.Verify(r => r.ReportError(node, It.Is<string>(s => s.Contains("schedule"))));
}
}
}

0 comments on commit 3756fa0

Please sign in to comment.