Add agent fees

This commit is contained in:
2025-09-28 20:57:42 +07:00
parent fd2387932e
commit 16a56bd26c
20 changed files with 108 additions and 166 deletions

View File

@@ -1,14 +1,13 @@
using Managing.Application.Abstractions;
using Managing.Application.Abstractions.Models;
using Managing.Application.Abstractions.Services;
using Managing.Application.Bots.Grains;
using Managing.Application.Bots.Models;
using Managing.Domain.Bots;
using Managing.Domain.Statistics;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Moq;
using Xunit;
using static Managing.Common.Enums;
namespace Managing.Application.Tests;
@@ -22,6 +21,7 @@ public class AgentGrainTests
private readonly Mock<IUserService> _mockUserService;
private readonly Mock<IAccountService> _mockAccountService;
private readonly Mock<ITradingService> _mockTradingService;
private readonly Mock<IServiceScopeFactory> _mockScopeFactory;
public AgentGrainTests()
{
@@ -33,6 +33,7 @@ public class AgentGrainTests
_mockUserService = new Mock<IUserService>();
_mockAccountService = new Mock<IAccountService>();
_mockTradingService = new Mock<ITradingService>();
_mockScopeFactory = new Mock<IServiceScopeFactory>();
// Setup default state
_mockState.Setup(x => x.State).Returns(new AgentGrainState
@@ -42,51 +43,6 @@ public class AgentGrainTests
});
}
[Fact]
public async Task OnAgentSummaryUpdateAsync_WithValidBotId_ShouldCallUpdateSummary()
{
// Arrange
var agentGrain = CreateAgentGrain();
var botId = _mockState.Object.State.BotIds.First();
var updateEvent = new AgentSummaryUpdateEvent
{
BotId = botId,
EventType = NotificationEventType.PositionOpened,
Timestamp = DateTime.UtcNow
};
// Setup mocks
_mockBotService.Setup(x => x.GetBotsByIdsAsync(It.IsAny<HashSet<Guid>>()))
.ReturnsAsync(new List<Bot>());
_mockAgentService.Setup(x => x.SaveOrUpdateAgentSummary(It.IsAny<AgentSummary>()))
.Returns(Task.CompletedTask);
// Act
await agentGrain.OnAgentSummaryUpdateAsync(updateEvent);
// Assert
_mockAgentService.Verify(x => x.SaveOrUpdateAgentSummary(It.IsAny<AgentSummary>()), Times.Once);
}
[Fact]
public async Task OnAgentSummaryUpdateAsync_WithInvalidBotId_ShouldNotCallUpdateSummary()
{
// Arrange
var agentGrain = CreateAgentGrain();
var updateEvent = new AgentSummaryUpdateEvent
{
BotId = Guid.NewGuid(), // Different bot ID
EventType = NotificationEventType.PositionOpened,
Timestamp = DateTime.UtcNow
};
// Act
await agentGrain.OnAgentSummaryUpdateAsync(updateEvent);
// Assert
_mockAgentService.Verify(x => x.SaveOrUpdateAgentSummary(It.IsAny<AgentSummary>()), Times.Never);
}
[Fact]
public async Task RegisterBotAsync_ShouldUpdateSummary()
{
@@ -137,6 +93,7 @@ public class AgentGrainTests
_mockExchangeService.Object,
_mockUserService.Object,
_mockAccountService.Object,
_mockTradingService.Object);
_mockTradingService.Object,
_mockScopeFactory.Object);
}
}