* Added missing files
Some checks failed
ci/woodpecker/push/push_to_repo Pipeline was successful
ci/woodpecker/pr/merge_to_master Pipeline failed

This commit is contained in:
2026-02-07 11:38:37 +01:00
parent be66b16671
commit 2476e81bea
2 changed files with 75 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
using System;
using System.Threading.Tasks;
using Moq;
using Xunit;
using HeartBeatServers.Core;
using Services.Vault;
namespace HeartBeatServers.Core
{
public class AppTests
{
[Fact]
public async Task RunAsync_ShouldInsertHeartBeat_WhenNoPreviousResult()
{
// Arrange
var vaultService = new Mock<IVaultService>();
var app = new App(null, vaultService.Object);
// TODO: Mock vaultService.GetSecretAsync to return connection string
// TODO: Mock GetLastUpdateDate to return null via partial or extracting method for test
// TODO: Mock InsertHeartBeat to track invocation
// Act
await app.RunAsync();
// Assert
// TODO: Verify InsertHeartBeat was called
}
[Fact]
public async Task RunAsync_ShouldUpdateHeartBeat_WhenPreviousResultExists()
{
// Arrange
var vaultService = new Mock<IVaultService>();
var app = new App(null, vaultService.Object);
// TODO: Mock vaultService.GetSecretAsync to return connection string
// TODO: Mock GetLastUpdateDate to return a valid ResultModel
// TODO: Mock UpdateHeartBeat to track invocation
// Act
await app.RunAsync();
// Assert
// TODO: Verify UpdateHeartBeat was called
}
// Additional tests can be added for private methods via reflection or refactoring
}
}

View File

@@ -0,0 +1,25 @@
using System;
using Xunit;
using HeartBeatServers.Services;
using Moq;
using HeartBeatServers.Models;
namespace HeartBeatServers.Services
{
public class IEmailGeneratorServiceTests
{
[Fact]
public void SendEmail_InterfaceMethod_CallMock()
{
// Arrange
var mockService = new Mock<IEmailGeneratorService>();
var email = new EmailModel();
// Act
mockService.Object.SendEmail(email);
// Assert
mockService.Verify(s => s.SendEmail(email), Times.Once);
}
}
}