Skip to content

Commit

Permalink
unit tests for scraping interval config params
Browse files Browse the repository at this point in the history
  • Loading branch information
brandonh-msft committed Mar 27, 2019
1 parent 0044807 commit f3296be
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 40 deletions.
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
Expand All @@ -16,14 +17,14 @@ namespace Promitor.Scraper.Tests.Unit.Serialization.MetricsDeclaration
public class MetricsDeclarationWithAzureStorageQueueYamlSerializationTests : YamlSerializationTests<StorageQueueMetricDefinition>
{
[Theory]
[InlineData("promitor1")]
[InlineData(null)]
public void YamlSerialization_SerializeAndDeserializeValidConfigForAzureStorageQueue_SucceedsWithIdenticalOutput(string resourceGroupName)
[InlineData("promitor1", @"01:00", @"2:00")]
[InlineData(null, null, null)]
public void YamlSerialization_SerializeAndDeserializeValidConfigForAzureStorageQueue_SucceedsWithIdenticalOutput(string resourceGroupName, string defaultScrapingInterval, string metricScrapingInterval)
{
// Arrange
var azureMetadata = GenerateBogusAzureMetadata();
var azureStorageQueueMetricDefinition = GenerateBogusAzureStorageQueueMetricDefinition(resourceGroupName);
var metricDefaults = GenerateBogusMetricDefaults();
var azureStorageQueueMetricDefinition = GenerateBogusAzureStorageQueueMetricDefinition(resourceGroupName, metricScrapingInterval);
var metricDefaults = GenerateBogusMetricDefaults(defaultScrapingInterval);
var scrapingConfiguration = new Core.Scraping.Configuration.Model.MetricsDeclaration
{
AzureMetadata = azureMetadata,
Expand Down Expand Up @@ -64,7 +65,7 @@ private static void AssertAzureStorageQueueMetricDefinition(StorageQueueMetricDe
Assert.Equal(serviceBusMetricDefinition.AzureMetricConfiguration.Aggregation.Interval, deserializedMetricDefinition.AzureMetricConfiguration.Aggregation.Interval);
}

private StorageQueueMetricDefinition GenerateBogusAzureStorageQueueMetricDefinition(string resourceGroupName)
private StorageQueueMetricDefinition GenerateBogusAzureStorageQueueMetricDefinition(string resourceGroupName, string metricScrapingInterval)
{
var bogusAzureMetricConfiguration = GenerateBogusAzureMetricConfiguration();
var bogusGenerator = new Faker<StorageQueueMetricDefinition>()
Expand All @@ -77,7 +78,10 @@ private StorageQueueMetricDefinition GenerateBogusAzureStorageQueueMetricDefinit
.RuleFor(metricDefinition => metricDefinition.SasToken, faker => $"?sig={Base64UrlEncoder.Encode(faker.Lorem.Sentence(wordCount: 3))}")
.RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration)
.RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName)
.Ignore(metricDefinition => metricDefinition.ResourceGroupName);
.RuleFor(metricDefinition => metricDefinition.ScrapingInterval, faker =>
string.IsNullOrWhiteSpace(metricScrapingInterval) ? (TimeSpan?)null : TimeSpan.Parse(metricScrapingInterval))
.Ignore(metricDefinition => metricDefinition.ResourceGroupName)
.Ignore(metricDefinition => metricDefinition.ScrapingInterval);

return bogusGenerator.Generate();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using Bogus;
Expand All @@ -15,14 +16,14 @@ namespace Promitor.Scraper.Tests.Unit.Serialization.MetricsDeclaration
public class MetricsDeclarationWithContainerInstanceYamlSerializationTests : YamlSerializationTests<ContainerInstanceMetricDefinition>
{
[Theory]
[InlineData("promitor1")]
[InlineData(null)]
public void YamlSerialization_SerializeAndDeserializeValidConfigForContainerInstance_SucceedsWithIdenticalOutput(string resourceGroupName)
[InlineData("promitor1", @"01:00", @"2:00")]
[InlineData(null, null, null)]
public void YamlSerialization_SerializeAndDeserializeValidConfigForContainerInstance_SucceedsWithIdenticalOutput(string resourceGroupName, string defaultScrapingInterval, string metricScrapingInterval)
{
// Arrange
var azureMetadata = GenerateBogusAzureMetadata();
var containerInstanceMetricDefinition = GenerateBogusContainerInstanceMetricDefinition(resourceGroupName);
var metricDefaults = GenerateBogusMetricDefaults();
var containerInstanceMetricDefinition = GenerateBogusContainerInstanceMetricDefinition(resourceGroupName, metricScrapingInterval);
var metricDefaults = GenerateBogusMetricDefaults(defaultScrapingInterval);
var scrapingConfiguration = new Core.Scraping.Configuration.Model.MetricsDeclaration
{
AzureMetadata = azureMetadata,
Expand Down Expand Up @@ -60,7 +61,7 @@ private static void AssertContainerInstanceMetricDefinition(ContainerInstanceMet
Assert.Equal(containerInstanceMetricDefinition.AzureMetricConfiguration.Aggregation.Type, deserializedMetricDefinition.AzureMetricConfiguration.Aggregation.Type);
Assert.Equal(containerInstanceMetricDefinition.AzureMetricConfiguration.Aggregation.Interval, deserializedMetricDefinition.AzureMetricConfiguration.Aggregation.Interval);
}
private ContainerInstanceMetricDefinition GenerateBogusContainerInstanceMetricDefinition(string resourceGroupName)
private ContainerInstanceMetricDefinition GenerateBogusContainerInstanceMetricDefinition(string resourceGroupName, string metricScrapingInterval)
{
var bogusAzureMetricConfiguration = GenerateBogusAzureMetricConfiguration();
var bogusGenerator = new Faker<ContainerInstanceMetricDefinition>()
Expand All @@ -71,7 +72,10 @@ private ContainerInstanceMetricDefinition GenerateBogusContainerInstanceMetricDe
.RuleFor(metricDefinition => metricDefinition.ContainerGroup, faker => faker.Name.LastName())
.RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration)
.RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName)
.Ignore(metricDefinition => metricDefinition.ResourceGroupName);
.RuleFor(metricDefinition => metricDefinition.ScrapingInterval, faker =>
string.IsNullOrWhiteSpace(metricScrapingInterval) ? (TimeSpan?)null : TimeSpan.Parse(metricScrapingInterval))
.Ignore(metricDefinition => metricDefinition.ResourceGroupName)
.Ignore(metricDefinition => metricDefinition.ScrapingInterval);

return bogusGenerator.Generate();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using Bogus;
Expand All @@ -15,14 +16,14 @@ namespace Promitor.Scraper.Tests.Unit.Serialization.MetricsDeclaration
public class MetricsDeclarationWithContainerRegistryYamlSerializationTests : YamlSerializationTests<ContainerRegistryMetricDefinition>
{
[Theory]
[InlineData("promitor1")]
[InlineData(null)]
public void YamlSerialization_SerializeAndDeserializeValidConfigForContainerRegistry_SucceedsWithIdenticalOutput(string resourceGroupName)
[InlineData("promitor1", @"01:00", @"2:00")]
[InlineData(null, null, null)]
public void YamlSerialization_SerializeAndDeserializeValidConfigForContainerRegistry_SucceedsWithIdenticalOutput(string resourceGroupName, string defaultScrapingInterval, string metricScrapingInterval)
{
// Arrange
var azureMetadata = GenerateBogusAzureMetadata();
var containerRegistryMetricDefinition = GenerateBogusContainerRegistryMetricDefinition(resourceGroupName);
var metricDefaults = GenerateBogusMetricDefaults();
var containerRegistryMetricDefinition = GenerateBogusContainerRegistryMetricDefinition(resourceGroupName, metricScrapingInterval);
var metricDefaults = GenerateBogusMetricDefaults(defaultScrapingInterval);
var scrapingConfiguration = new Core.Scraping.Configuration.Model.MetricsDeclaration
{
AzureMetadata = azureMetadata,
Expand Down Expand Up @@ -56,7 +57,7 @@ private static void AssertContainerRegistryMetricDefinition(ContainerRegistryMet
Assert.Equal(serviceBusMetricDefinition.RegistryName, deserializedServiceBusMetricDefinition.RegistryName);
}

private ContainerRegistryMetricDefinition GenerateBogusContainerRegistryMetricDefinition(string resourceGroupName)
private ContainerRegistryMetricDefinition GenerateBogusContainerRegistryMetricDefinition(string resourceGroupName, string metricScrapingInterval)
{
var bogusAzureMetricConfiguration = GenerateBogusAzureMetricConfiguration();
var bogusGenerator = new Faker<ContainerRegistryMetricDefinition>()
Expand All @@ -67,7 +68,10 @@ private ContainerRegistryMetricDefinition GenerateBogusContainerRegistryMetricDe
.RuleFor(metricDefinition => metricDefinition.RegistryName, faker => faker.Name.LastName())
.RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration)
.RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName)
.Ignore(metricDefinition => metricDefinition.ResourceGroupName);
.RuleFor(metricDefinition => metricDefinition.ScrapingInterval, faker =>
string.IsNullOrWhiteSpace(metricScrapingInterval) ? (TimeSpan?)null : TimeSpan.Parse(metricScrapingInterval))
.Ignore(metricDefinition => metricDefinition.ResourceGroupName)
.Ignore(metricDefinition => metricDefinition.ScrapingInterval);

return bogusGenerator.Generate();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using Bogus;
Expand All @@ -15,14 +16,14 @@ namespace Promitor.Scraper.Tests.Unit.Serialization.MetricsDeclaration
public class ServiceBusQueueYamlSerializationTests : YamlSerializationTests<ServiceBusQueueMetricDefinition>
{
[Theory]
[InlineData("promitor1")]
[InlineData(null)]
public void YamlSerialization_SerializeAndDeserializeValidConfigForServiceBus_SucceedsWithIdenticalOutput(string resourceGroupName)
[InlineData("promitor1", @"01:00", @"2:00")]
[InlineData(null, null, null)]
public void YamlSerialization_SerializeAndDeserializeValidConfigForServiceBus_SucceedsWithIdenticalOutput(string resourceGroupName, string defaultScrapingInterval, string metricScrapingInterval)
{
// Arrange
var azureMetadata = GenerateBogusAzureMetadata();
var serviceBusMetricDefinition = GenerateBogusServiceBusMetricDefinition(resourceGroupName);
var metricDefaults = GenerateBogusMetricDefaults();
var serviceBusMetricDefinition = GenerateBogusServiceBusMetricDefinition(resourceGroupName, metricScrapingInterval);
var metricDefaults = GenerateBogusMetricDefaults(defaultScrapingInterval);
var scrapingConfiguration = new Core.Scraping.Configuration.Model.MetricsDeclaration
{
AzureMetadata = azureMetadata,
Expand Down Expand Up @@ -57,7 +58,7 @@ private static void AssertServiceBusQueueMetricDefinition(ServiceBusQueueMetricD
Assert.Equal(serviceBusMetricDefinition.QueueName, deserializedServiceBusMetricDefinition.QueueName);
}

private ServiceBusQueueMetricDefinition GenerateBogusServiceBusMetricDefinition(string resourceGroupName)
private ServiceBusQueueMetricDefinition GenerateBogusServiceBusMetricDefinition(string resourceGroupName, string metricScrapingInterval)
{
var bogusAzureMetricConfiguration = GenerateBogusAzureMetricConfiguration();
var bogusGenerator = new Faker<ServiceBusQueueMetricDefinition>()
Expand All @@ -69,7 +70,10 @@ private ServiceBusQueueMetricDefinition GenerateBogusServiceBusMetricDefinition(
.RuleFor(metricDefinition => metricDefinition.QueueName, faker => faker.Name.FirstName())
.RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration)
.RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName)
.Ignore(metricDefinition => metricDefinition.ResourceGroupName);
.RuleFor(metricDefinition => metricDefinition.ScrapingInterval, faker =>
string.IsNullOrWhiteSpace(metricScrapingInterval) ? (TimeSpan?)null : TimeSpan.Parse(metricScrapingInterval))
.Ignore(metricDefinition => metricDefinition.ResourceGroupName)
.Ignore(metricDefinition => metricDefinition.ScrapingInterval);

return bogusGenerator.Generate();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
Expand All @@ -15,14 +16,14 @@ namespace Promitor.Scraper.Tests.Unit.Serialization.MetricsDeclaration
public class MetricsDeclarationWithVirtualMachineYamlSerializationTests : YamlSerializationTests<VirtualMachineMetricDefinition>
{
[Theory]
[InlineData("promitor1")]
[InlineData(data: null)]
public void YamlSerialization_SerializeAndDeserializeValidConfigForVirtualMachine_SucceedsWithIdenticalOutput(string resourceGroupName)
[InlineData("promitor1", @"01:00", @"2:00")]
[InlineData(null, null, null)]
public void YamlSerialization_SerializeAndDeserializeValidConfigForVirtualMachine_SucceedsWithIdenticalOutput(string resourceGroupName, string defaultScrapingInterval, string metricScrapingInterval)
{
// Arrange
var azureMetadata = GenerateBogusAzureMetadata();
var virtualMachineMetricDefinition = GenerateBogusVirtualMachineMetricDefinition(resourceGroupName);
var metricDefaults = GenerateBogusMetricDefaults();
var virtualMachineMetricDefinition = GenerateBogusVirtualMachineMetricDefinition(resourceGroupName, metricScrapingInterval);
var metricDefaults = GenerateBogusMetricDefaults(defaultScrapingInterval);
var scrapingConfiguration = new Core.Scraping.Configuration.Model.MetricsDeclaration
{
AzureMetadata = azureMetadata,
Expand Down Expand Up @@ -54,9 +55,14 @@ private static void AssertVirtualMachineMetricDefinition(VirtualMachineMetricDef
{
Assert.NotNull(deserializedVirtualMachineMetricDefinition);
Assert.Equal(virtualMachineMetricDefinition.VirtualMachineName, deserializedVirtualMachineMetricDefinition.VirtualMachineName);
Assert.NotNull(deserializedVirtualMachineMetricDefinition.AzureMetricConfiguration);
Assert.Equal(virtualMachineMetricDefinition.AzureMetricConfiguration.MetricName, deserializedVirtualMachineMetricDefinition.AzureMetricConfiguration.MetricName);
Assert.NotNull(deserializedVirtualMachineMetricDefinition.AzureMetricConfiguration.Aggregation);
Assert.Equal(virtualMachineMetricDefinition.AzureMetricConfiguration.Aggregation.Type, deserializedVirtualMachineMetricDefinition.AzureMetricConfiguration.Aggregation.Type);
Assert.Equal(virtualMachineMetricDefinition.AzureMetricConfiguration.Aggregation.Interval, deserializedVirtualMachineMetricDefinition.AzureMetricConfiguration.Aggregation.Interval);
}

private VirtualMachineMetricDefinition GenerateBogusVirtualMachineMetricDefinition(string resourceGroupName)
private VirtualMachineMetricDefinition GenerateBogusVirtualMachineMetricDefinition(string resourceGroupName, string metricScrapingInterval)
{
var bogusAzureMetricConfiguration = GenerateBogusAzureMetricConfiguration();
Faker<VirtualMachineMetricDefinition> bogusGenerator = new Faker<VirtualMachineMetricDefinition>()
Expand All @@ -67,7 +73,10 @@ private VirtualMachineMetricDefinition GenerateBogusVirtualMachineMetricDefiniti
.RuleFor(metricDefinition => metricDefinition.VirtualMachineName, faker => faker.Name.LastName())
.RuleFor(metricDefinition => metricDefinition.AzureMetricConfiguration, faker => bogusAzureMetricConfiguration)
.RuleFor(metricDefinition => metricDefinition.ResourceGroupName, faker => resourceGroupName)
.Ignore(metricDefinition => metricDefinition.ResourceGroupName);
.RuleFor(metricDefinition => metricDefinition.ScrapingInterval, faker =>
string.IsNullOrWhiteSpace(metricScrapingInterval) ? (TimeSpan?)null : TimeSpan.Parse(metricScrapingInterval))
.Ignore(metricDefinition => metricDefinition.ResourceGroupName)
.Ignore(metricDefinition => metricDefinition.ScrapingInterval);

return bogusGenerator.Generate();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ protected AzureMetricConfiguration GenerateBogusAzureMetricConfiguration()
return bogusMetricConfiguration;
}

protected MetricDefaults GenerateBogusMetricDefaults()
protected MetricDefaults GenerateBogusMetricDefaults(string defaultScrapingInterval)
{
var bogusAggregationGenerator = new Faker<Aggregation>()
.StrictMode(ensureRulesForAllProperties: true)
Expand All @@ -65,9 +65,14 @@ protected MetricDefaults GenerateBogusMetricDefaults()
var generatedAggregation = bogusAggregationGenerator.Generate();
var metricDefaults = new MetricDefaults
{
Aggregation = generatedAggregation
Aggregation = generatedAggregation,
};

if (!string.IsNullOrWhiteSpace(defaultScrapingInterval))
{
metricDefaults.ScrapingInterval = TimeSpan.Parse(defaultScrapingInterval);
}

return metricDefaults;
}

Expand Down

0 comments on commit f3296be

Please sign in to comment.