151 lines
5.1 KiB
C#
151 lines
5.1 KiB
C#
using System.Linq.Expressions;
|
|
using HopFrame.Core.Config;
|
|
using HopFrame.Core.Tests.Models;
|
|
|
|
namespace HopFrame.Core.Tests.Config;
|
|
|
|
public class TableConfiguratorTests {
|
|
[Fact]
|
|
public void Ignore_SetsIgnoredProperty() {
|
|
// Arrange
|
|
var tableConfig =
|
|
new TableConfig(new DbContextConfig(typeof(MockDbContext)), typeof(MockModel), "MockModels", 0);
|
|
var configurator = new TableConfigurator<MockModel>(tableConfig);
|
|
|
|
// Act
|
|
configurator.Ignore(true);
|
|
|
|
// Assert
|
|
Assert.True(tableConfig.Ignored);
|
|
}
|
|
|
|
[Fact]
|
|
public void Property_ReturnsCorrectPropertyConfigurator() {
|
|
// Arrange
|
|
var tableConfig = new TableConfig(new DbContextConfig(typeof(MockDbContext)), typeof(MockModel), "MockModels", 0);
|
|
var configurator = new TableConfigurator<MockModel>(tableConfig);
|
|
Expression<Func<MockModel, int>> propertyExpression = model => model.Id;
|
|
|
|
// Act
|
|
var propertyConfigurator = configurator.Property(propertyExpression);
|
|
|
|
// Assert
|
|
Assert.IsType<PropertyConfigurator<int>>(propertyConfigurator);
|
|
}
|
|
|
|
[Fact]
|
|
public void AddVirtualProperty_AddsVirtualPropertyToConfig() {
|
|
// Arrange
|
|
var tableConfig = new TableConfig(new DbContextConfig(typeof(MockDbContext)), typeof(MockModel), "MockModels", 0);
|
|
var configurator = new TableConfigurator<MockModel>(tableConfig);
|
|
Func<MockModel, IServiceProvider, string> template = (model, _) => model.Name!;
|
|
|
|
// Act
|
|
var propertyConfigurator = configurator.AddVirtualProperty("VirtualName", template);
|
|
|
|
// Assert
|
|
var virtualProperty = tableConfig.Properties.SingleOrDefault(p => p.Name == "VirtualName");
|
|
Assert.NotNull(virtualProperty);
|
|
Assert.NotNull(propertyConfigurator);
|
|
Assert.True(virtualProperty.IsListingProperty);
|
|
Assert.Equal("VirtualName", virtualProperty.Name);
|
|
}
|
|
|
|
[Fact]
|
|
public void SetDisplayName_SetsDisplayNameProperty() {
|
|
// Arrange
|
|
var tableConfig = new TableConfig(new DbContextConfig(typeof(MockDbContext)), typeof(MockModel), "MockModels", 0);
|
|
var configurator = new TableConfigurator<MockModel>(tableConfig);
|
|
var displayName = "Mock Model Display Name";
|
|
|
|
// Act
|
|
configurator.SetDisplayName(displayName);
|
|
|
|
// Assert
|
|
Assert.Equal(displayName, tableConfig.DisplayName);
|
|
}
|
|
|
|
[Fact]
|
|
public void SetDescription_SetsDescriptionProperty() {
|
|
// Arrange
|
|
var tableConfig = new TableConfig(new DbContextConfig(typeof(MockDbContext)), typeof(MockModel), "MockModels", 0);
|
|
var configurator = new TableConfigurator<MockModel>(tableConfig);
|
|
var description = "Mock Model Description";
|
|
|
|
// Act
|
|
configurator.SetDescription(description);
|
|
|
|
// Assert
|
|
Assert.Equal(description, tableConfig.Description);
|
|
}
|
|
|
|
[Fact]
|
|
public void SetOrderIndex_SetsOrderIndexProperty() {
|
|
// Arrange
|
|
var tableConfig = new TableConfig(new DbContextConfig(typeof(MockDbContext)), typeof(MockModel), "MockModels", 0);
|
|
var configurator = new TableConfigurator<MockModel>(tableConfig);
|
|
var orderIndex = 1;
|
|
|
|
// Act
|
|
configurator.SetOrderIndex(orderIndex);
|
|
|
|
// Assert
|
|
Assert.Equal(orderIndex, tableConfig.Order);
|
|
}
|
|
|
|
[Fact]
|
|
public void SetViewPolicy_SetsViewPolicyProperty() {
|
|
// Arrange
|
|
var tableConfig = new TableConfig(new DbContextConfig(typeof(MockDbContext)), typeof(MockModel), "MockModels", 0);
|
|
var configurator = new TableConfigurator<MockModel>(tableConfig);
|
|
var policy = "ViewPolicy";
|
|
|
|
// Act
|
|
configurator.SetViewPolicy(policy);
|
|
|
|
// Assert
|
|
Assert.Equal(policy, tableConfig.ViewPolicy);
|
|
}
|
|
|
|
[Fact]
|
|
public void SetUpdatePolicy_SetsUpdatePolicyProperty() {
|
|
// Arrange
|
|
var tableConfig = new TableConfig(new DbContextConfig(typeof(MockDbContext)), typeof(MockModel), "MockModels", 0);
|
|
var configurator = new TableConfigurator<MockModel>(tableConfig);
|
|
var policy = "UpdatePolicy";
|
|
|
|
// Act
|
|
configurator.SetUpdatePolicy(policy);
|
|
|
|
// Assert
|
|
Assert.Equal(policy, tableConfig.UpdatePolicy);
|
|
}
|
|
|
|
[Fact]
|
|
public void SetCreatePolicy_SetsCreatePolicyProperty() {
|
|
// Arrange
|
|
var tableConfig = new TableConfig(new DbContextConfig(typeof(MockDbContext)), typeof(MockModel), "MockModels", 0);
|
|
var configurator = new TableConfigurator<MockModel>(tableConfig);
|
|
var policy = "CreatePolicy";
|
|
|
|
// Act
|
|
configurator.SetCreatePolicy(policy);
|
|
|
|
// Assert
|
|
Assert.Equal(policy, tableConfig.CreatePolicy);
|
|
}
|
|
|
|
[Fact]
|
|
public void SetDeletePolicy_SetsDeletePolicyProperty() {
|
|
// Arrange
|
|
var tableConfig = new TableConfig(new DbContextConfig(typeof(MockDbContext)), typeof(MockModel), "MockModels", 0);
|
|
var configurator = new TableConfigurator<MockModel>(tableConfig);
|
|
var policy = "DeletePolicy";
|
|
|
|
// Act
|
|
configurator.SetDeletePolicy(policy);
|
|
|
|
// Assert
|
|
Assert.Equal(policy, tableConfig.DeletePolicy);
|
|
}
|
|
} |