Skip to content

Commit

Permalink
Added more tests + removed dead code.
Browse files Browse the repository at this point in the history
  • Loading branch information
Breno RdV committed Jun 23, 2024
1 parent 6a3a5f2 commit afcb91c
Show file tree
Hide file tree
Showing 8 changed files with 293 additions and 88 deletions.

This file was deleted.

88 changes: 88 additions & 0 deletions Raccoon.Ninja.Domain.Core.Tests/Converters/EntityConverterTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
using Raccoon.Ninja.Domain.Core.Calculators;
using Raccoon.Ninja.Domain.Core.Converters;
using Raccoon.Ninja.Domain.Core.Entities.StatisticalDataPoint;
using Raccoon.Ninja.Domain.Core.Enums;
using Raccoon.Ninja.TestHelpers;

namespace Raccoon.Ninja.Domain.Core.Tests.Converters;

public class EntityConverterTests
{
private static readonly DateOnly ReferenceDate = DateOnly.FromDateTime(DateTime.UtcNow);
private static readonly StatisticalDataPoint PreviousCalculation = Generators.StatisticalDataPointMockSingle();

[Fact]
public void ToStatisticDataPoint_ShouldReturnNull_WhenInputIsNull()
{
//Arrange
CalculationData input = null;

//Act
var actual = EntityConverter.ToStatisticDataPoint(input, ReferenceDate, PreviousCalculation);

//Assert
actual.Should().BeNull();
}

[Fact]
public void ToStatisticDataPoint_ShouldReturnError_WhenInputHasFailedStatus()
{
//Arrange
const string failedStep = "Some step";
const string failedMessage = "Some message";

var input = new CalculationData
{
Status = new CalculationDataStatus
{
Success = false,
FailedAtStep = failedStep,
Message = failedMessage
}
};

//Act
var actual = EntityConverter.ToStatisticDataPoint(input, ReferenceDate, PreviousCalculation);

//Assert
actual.Should().NotBeNull();
actual.Status.Should().Be(StatisticalDataPointDocStatus.Error);
actual.Error.FailedStep.Should().Be(failedStep);
actual.Error.ErrorMessage.Should().Be(failedMessage);
}

[Fact]
public void ToStatisticDataPoint_ShouldReturnConverted_WhenInputIsSuccess()
{
//Arrange
var glucoseValues = Generators.ListWithFloats(30).ToList();
var input = Generators.CalculationDataMockSingle(glucoseValues);

//Act
var actual = EntityConverter.ToStatisticDataPoint(input, ReferenceDate, PreviousCalculation);

//Assert
actual.Should().NotBeNull();
actual.Status.Should().Be(StatisticalDataPointDocStatus.Success);
actual.ReferenceDate.Should().Be(ReferenceDate);
actual.Average.Value.Should().Be(input.Average);
actual.Median.Value.Should().Be(input.Median);
actual.Min.Value.Should().Be(input.Min);
actual.Max.Value.Should().Be(input.Max);
actual.Mage.Threshold10.Value.Should().Be(input.Mage.Threshold10.Value);
actual.Mage.Threshold20.Value.Should().Be(input.Mage.Threshold20.Value);
actual.Mage.Absolute.Value.Should().Be(input.Mage.Absolute.Value);
actual.StandardDeviation.Value.Should().Be(input.StandardDeviation);
actual.CoefficientOfVariation.Value.Should().Be(input.CoefficientOfVariation);
actual.HbA1C.Value.Should().Be(input.CurrentHbA1C.Value);
actual.TimeInRange.Low.Value.Should().Be(input.TimeInRange.Low);
actual.TimeInRange.Normal.Value.Should().Be(input.TimeInRange.Normal);
actual.TimeInRange.High.Value.Should().Be(input.TimeInRange.High);
actual.TimeInRange.VeryHigh.Value.Should().Be(input.TimeInRange.VeryHigh);
actual.Percentile.P10.Value.Should().Be(input.Percentile.P10);
actual.Percentile.P25.Value.Should().Be(input.Percentile.P25);
actual.Percentile.P75.Value.Should().Be(input.Percentile.P75);
actual.Percentile.P90.Value.Should().Be(input.Percentile.P90);
actual.Percentile.Iqr.Value.Should().Be(input.Percentile.Iqr);
}
}
22 changes: 22 additions & 0 deletions Raccoon.Ninja.Domain.Core.Tests/Entities/GlucoseReadingTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
using Raccoon.Ninja.Domain.Core.Entities;
using Raccoon.Ninja.Domain.Core.Enums;

namespace Raccoon.Ninja.Domain.Core.Tests.Entities;

public class GlucoseReadingTests
{
[Fact]
public void Ctor_WhenInstantiated_ShouldHaveDefaultPropertyValues()
{
//Arrange
var expectedTrend = Trend.TripleUp;
const long expectedReadTimestampUtc = 0;

//Act
var sut = new GlucoseReading();

//Assert
sut.Trend.Should().Be(expectedTrend);
sut.ReadTimestampUtc.Should().Be(expectedReadTimestampUtc);
}
}
3 changes: 2 additions & 1 deletion Raccoon.Ninja.Domain.Core/Converters/EntityConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ public static StatisticalDataPoint ToStatisticDataPoint(
DateOnly referenceDate,
StatisticalDataPoint previousCalculations)
{
ArgumentNullException.ThrowIfNull(from);
if (from is null)
return null;

if (!from.Status.Success)
return StatisticalDataPoint.FromError(referenceDate, from.Status.FailedAtStep, from.Status.Message);
Expand Down
5 changes: 4 additions & 1 deletion Raccoon.Ninja.Domain.Core/Exceptions/NightScoutException.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
namespace Raccoon.Ninja.Domain.Core.Exceptions;
using System.Diagnostics.CodeAnalysis;

namespace Raccoon.Ninja.Domain.Core.Exceptions;

[ExcludeFromCodeCoverage]
public class NightScoutException : Exception
{
public NightScoutException()
Expand Down
12 changes: 0 additions & 12 deletions Raccoon.Ninja.Domain.Core/ExtensionMethods/DictionaryExtensions.cs

This file was deleted.

Loading

0 comments on commit afcb91c

Please sign in to comment.