From b9120d3eb25fc7c2231d152de1b670484424b4a7 Mon Sep 17 00:00:00 2001
From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com>
Date: Mon, 2 Sep 2024 20:52:45 -0500
Subject: [PATCH] tests: add unit tests
---
.../SanctionsSearch.Worker.Tests.csproj | 3 +-
.../GetPagedRecordsResponseExtensionsTests.cs | 28 +++++++++++++++++
.../Unit/OnspringOptionsTests.cs | 31 +++++++++++++++++++
.../Unit/RecordFieldValueExtensionsTests.cs | 30 ++++++++++++++++++
src/SanctionsSearch.Worker.Tests/Usings.cs | 6 ++--
.../Extensions/RecordFieldValueExtensions.cs | 15 ++++++---
.../Services/OnspringService.cs | 20 ++++++------
src/SanctionsSearch.Worker/Usings.cs | 2 +-
8 files changed, 117 insertions(+), 18 deletions(-)
create mode 100644 src/SanctionsSearch.Worker.Tests/Unit/GetPagedRecordsResponseExtensionsTests.cs
create mode 100644 src/SanctionsSearch.Worker.Tests/Unit/OnspringOptionsTests.cs
create mode 100644 src/SanctionsSearch.Worker.Tests/Unit/RecordFieldValueExtensionsTests.cs
diff --git a/src/SanctionsSearch.Worker.Tests/SanctionsSearch.Worker.Tests.csproj b/src/SanctionsSearch.Worker.Tests/SanctionsSearch.Worker.Tests.csproj
index 64da083..1c126fe 100644
--- a/src/SanctionsSearch.Worker.Tests/SanctionsSearch.Worker.Tests.csproj
+++ b/src/SanctionsSearch.Worker.Tests/SanctionsSearch.Worker.Tests.csproj
@@ -31,7 +31,8 @@
./TestResults/coverage/
cobertura
[SanctionsSearch.Worker]*
- [SanctionsSearch.Worker]SanctionsSearch.Worker.Migrations*
+ [SanctionsSearch.Worker]SanctionsSearch.Worker.Migrations*,[SanctionsSearch.Worker]SanctionsSearch.Worker.Setup*,[SanctionsSearch.Worker]SanctionsSearch.Worker.Workers*
+ **/Program.cs
diff --git a/src/SanctionsSearch.Worker.Tests/Unit/GetPagedRecordsResponseExtensionsTests.cs b/src/SanctionsSearch.Worker.Tests/Unit/GetPagedRecordsResponseExtensionsTests.cs
new file mode 100644
index 0000000..eb8c594
--- /dev/null
+++ b/src/SanctionsSearch.Worker.Tests/Unit/GetPagedRecordsResponseExtensionsTests.cs
@@ -0,0 +1,28 @@
+namespace SanctionsSearch.Worker.Tests.Unit;
+
+public class GetPagedRecordsResponseExtensionsTests
+{
+ [Fact]
+ public void HasMorePages_WhenPageNumberIsLessThanTotalPages_ReturnsTrue()
+ {
+ var response = new GetPagedRecordsResponse
+ {
+ PageNumber = 1,
+ TotalPages = 2
+ };
+
+ response.HasMorePages().Should().BeTrue();
+ }
+
+ [Fact]
+ public void HasMorePages_WhenPageNumberIsEqualToTotalPages_ReturnsFalse()
+ {
+ var response = new GetPagedRecordsResponse
+ {
+ PageNumber = 2,
+ TotalPages = 2
+ };
+
+ response.HasMorePages().Should().BeFalse();
+ }
+}
\ No newline at end of file
diff --git a/src/SanctionsSearch.Worker.Tests/Unit/OnspringOptionsTests.cs b/src/SanctionsSearch.Worker.Tests/Unit/OnspringOptionsTests.cs
new file mode 100644
index 0000000..4502182
--- /dev/null
+++ b/src/SanctionsSearch.Worker.Tests/Unit/OnspringOptionsTests.cs
@@ -0,0 +1,31 @@
+namespace SanctionsSearch.Worker.Tests.Unit;
+
+public class OnspringOptionsTests
+{
+ [Fact]
+ public void OnspringOptions_WhenCreated_ShouldHaveDefaultValues()
+ {
+ var onspringOptions = new OnspringOptions();
+
+ var searchRequestOptions = onspringOptions.SearchRequestOptions;
+ var searchResultOptions = onspringOptions.SearchResultOptions;
+
+ onspringOptions.BaseUrl.Should().Be("https://api.onspring.com");
+ onspringOptions.ApiKey.Should().Be(string.Empty);
+ onspringOptions.SearchIntervalInMinutes.Should().Be(1);
+ searchRequestOptions.AppId.Should().Be(0);
+ searchRequestOptions.NameFieldId.Should().Be(0);
+ searchRequestOptions.StatusFieldId.Should().Be(0);
+ searchRequestOptions.AwaitingProcessingStatusId.Should().Be(Guid.Empty);
+ searchRequestOptions.ProcessingStatusId.Should().Be(Guid.Empty);
+ searchRequestOptions.ProcessedSuccessStatusId.Should().Be(Guid.Empty);
+ searchRequestOptions.ProcessedErrorStatusId.Should().Be(Guid.Empty);
+ searchRequestOptions.ErrorFieldId.Should().Be(0);
+ searchResultOptions.AppId.Should().Be(0);
+ searchResultOptions.SearchRequestFieldId.Should().Be(0);
+ searchResultOptions.NameFieldId.Should().Be(0);
+ searchResultOptions.AddressFieldId.Should().Be(0);
+ searchResultOptions.TypeFieldId.Should().Be(0);
+ searchResultOptions.ProgramsFieldId.Should().Be(0);
+ }
+}
\ No newline at end of file
diff --git a/src/SanctionsSearch.Worker.Tests/Unit/RecordFieldValueExtensionsTests.cs b/src/SanctionsSearch.Worker.Tests/Unit/RecordFieldValueExtensionsTests.cs
new file mode 100644
index 0000000..af8c90e
--- /dev/null
+++ b/src/SanctionsSearch.Worker.Tests/Unit/RecordFieldValueExtensionsTests.cs
@@ -0,0 +1,30 @@
+namespace SanctionsSearch.Worker.Extensions;
+
+public class RecordFieldValueExtensionsTests
+{
+ [Fact]
+ public void GetStringValue_WhenRecordFieldValueTypeIsString_ReturnsValue()
+ {
+ var value = "value";
+
+ var recordFieldValue = new StringFieldValue(1, value);
+
+ recordFieldValue.GetStringValue().Should().Be(value);
+ }
+
+ [Fact]
+ public void GetStringValue_WhenRecordFieldValueTypeIsNotString_ReturnsEmptyString()
+ {
+ var recordFieldValue = new IntegerFieldValue(1, 1);
+
+ recordFieldValue.GetStringValue().Should().BeEmpty();
+ }
+
+ [Fact]
+ public void GetStringValue_WhenRecordFieldValueValueIsNull_ReturnsEmptyString()
+ {
+ var recordFieldValue = new StringFieldValue(1, null);
+
+ recordFieldValue.GetStringValue().Should().BeEmpty();
+ }
+}
\ No newline at end of file
diff --git a/src/SanctionsSearch.Worker.Tests/Usings.cs b/src/SanctionsSearch.Worker.Tests/Usings.cs
index 900d184..2e0fc0e 100644
--- a/src/SanctionsSearch.Worker.Tests/Usings.cs
+++ b/src/SanctionsSearch.Worker.Tests/Usings.cs
@@ -8,15 +8,17 @@ global using FluentAssertions;
global using Microsoft.Data.Sqlite;
global using Microsoft.EntityFrameworkCore;
global using Microsoft.Extensions.Logging;
-global using Microsoft.Extensions.Options;
global using Moq;
+global using Onspring.API.SDK.Models;
+
global using RichardSzalay.MockHttp;
+global using SanctionsSearch.Worker.Extensions;
global using SanctionsSearch.Worker.Interfaces;
global using SanctionsSearch.Worker.Models;
global using SanctionsSearch.Worker.Options;
global using SanctionsSearch.Worker.Persistence;
global using SanctionsSearch.Worker.Services;
-global using SanctionsSearch.Worker.Tests.Faker;
+global using SanctionsSearch.Worker.Tests.Faker;
\ No newline at end of file
diff --git a/src/SanctionsSearch.Worker/Extensions/RecordFieldValueExtensions.cs b/src/SanctionsSearch.Worker/Extensions/RecordFieldValueExtensions.cs
index 18ccf77..67a19d7 100644
--- a/src/SanctionsSearch.Worker/Extensions/RecordFieldValueExtensions.cs
+++ b/src/SanctionsSearch.Worker/Extensions/RecordFieldValueExtensions.cs
@@ -2,8 +2,15 @@ namespace SanctionsSearch.Worker.Extensions;
static class RecordFieldValueExtensions
{
- public static string GetStringValue(this RecordFieldValue recordFieldValue) =>
- recordFieldValue.Type is not ResultValueType.String
- ? string.Empty
- : recordFieldValue.AsString() ?? string.Empty;
+ public static string GetStringValue(this RecordFieldValue recordFieldValue)
+ {
+ try
+ {
+ return recordFieldValue.AsString() ?? string.Empty;
+ }
+ catch
+ {
+ return string.Empty;
+ }
+ }
}
\ No newline at end of file
diff --git a/src/SanctionsSearch.Worker/Services/OnspringService.cs b/src/SanctionsSearch.Worker/Services/OnspringService.cs
index ae7c4ce..bf61d25 100644
--- a/src/SanctionsSearch.Worker/Services/OnspringService.cs
+++ b/src/SanctionsSearch.Worker/Services/OnspringService.cs
@@ -105,11 +105,11 @@ class OnspringService(
FieldId = _options.SearchRequestOptions.StatusFieldId,
Value = _options.SearchRequestOptions.ProcessedErrorStatusId
},
- new StringFieldValue()
- {
- FieldId = _options.SearchRequestOptions.ErrorFieldId,
- Value = "Unable to save all search results"
- }
+ new StringFieldValue()
+ {
+ FieldId = _options.SearchRequestOptions.ErrorFieldId,
+ Value = "Unable to save all search results"
+ }
]
}
: new ResultRecord()
@@ -122,11 +122,11 @@ class OnspringService(
FieldId = _options.SearchRequestOptions.StatusFieldId,
Value = _options.SearchRequestOptions.ProcessedSuccessStatusId
},
- new StringFieldValue()
- {
- FieldId = _options.SearchRequestOptions.ErrorFieldId,
- Value = string.Empty
- }
+ new StringFieldValue()
+ {
+ FieldId = _options.SearchRequestOptions.ErrorFieldId,
+ Value = string.Empty
+ }
]
};
diff --git a/src/SanctionsSearch.Worker/Usings.cs b/src/SanctionsSearch.Worker/Usings.cs
index 52b95dd..16f078e 100644
--- a/src/SanctionsSearch.Worker/Usings.cs
+++ b/src/SanctionsSearch.Worker/Usings.cs
@@ -29,4 +29,4 @@ global using SanctionsSearch.Worker.Workers;
global using Serilog;
global using Serilog.Context;
global using Serilog.Exceptions;
-global using Serilog.Formatting.Compact;
+global using Serilog.Formatting.Compact;
\ No newline at end of file