mirror of
https://github.com/dcronqvist/DotTiled.git
synced 2025-05-09 02:26:02 +03:00
Add FromEnum to CustomEnumDefinition with tests
This commit is contained in:
parent
58b0ad3493
commit
0a77a9fec7
3 changed files with 149 additions and 207 deletions
|
@ -1,208 +1,5 @@
|
|||
namespace DotTiled.Tests;
|
||||
|
||||
// public class OptionalTests
|
||||
// {
|
||||
// [Fact]
|
||||
// public void HasValue_WhenValueIsSet_ReturnsTrue()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional = new Optional<int>(42);
|
||||
|
||||
// // Act & Assert
|
||||
// Assert.True(optional.HasValue);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void HasValue_WhenValueIsNotSet_ReturnsFalse()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional = new Optional<int>();
|
||||
|
||||
// // Act & Assert
|
||||
// Assert.False(optional.HasValue);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void Value_WhenValueIsSet_ReturnsValue()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional = new Optional<int>(42);
|
||||
|
||||
// // Act
|
||||
// var value = optional.Value;
|
||||
|
||||
// // Assert
|
||||
// Assert.Equal(42, value);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void Value_WhenValueIsNotSet_ThrowsInvalidOperationException()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional = new Optional<int>();
|
||||
|
||||
// // Act & Assert
|
||||
// _ = Assert.Throws<InvalidOperationException>(() => optional.Value);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void ImplicitConversionFromValue_CreatesOptionalWithValue()
|
||||
// {
|
||||
// // Arrange
|
||||
// Optional<int> optional = 42;
|
||||
|
||||
// // Act & Assert
|
||||
// Assert.True(optional.HasValue);
|
||||
// Assert.Equal(42, optional.Value);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void ImplicitConversionToValue_ReturnsValue()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional = new Optional<int>(42);
|
||||
|
||||
// // Act
|
||||
// int value = optional;
|
||||
|
||||
// // Assert
|
||||
// Assert.Equal(42, value);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void ToString_WhenValueIsSet_ReturnsValueToString()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional = new Optional<int>(42);
|
||||
|
||||
// // Act
|
||||
// var result = optional.ToString();
|
||||
|
||||
// // Assert
|
||||
// Assert.Equal("42", result);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void ToString_WhenValueIsNotSet_ReturnsEmpty()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional = new Optional<int>();
|
||||
|
||||
// // Act
|
||||
// var result = optional.ToString();
|
||||
|
||||
// // Assert
|
||||
// Assert.Equal("Empty", result);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void Equals_WithObject_ReturnsTrueWhenValueIsEqual()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional = new Optional<int>(42);
|
||||
|
||||
// // Act
|
||||
// var result = optional.Equals(42);
|
||||
|
||||
// // Assert
|
||||
// Assert.True(result);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void Equals_WithObject_ReturnsFalseWhenValueIsNotEqual()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional = new Optional<int>(42);
|
||||
|
||||
// // Act
|
||||
// var result = optional.Equals(43);
|
||||
|
||||
// // Assert
|
||||
// Assert.False(result);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void Equals_WithObject_ReturnsFalseWhenValueIsNotSet()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional = new Optional<int>();
|
||||
|
||||
// // Act
|
||||
// var result = optional.Equals(42);
|
||||
|
||||
// // Assert
|
||||
// Assert.False(result);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void Equals_WithOptional_ReturnsTrueWhenValueIsEqual()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional1 = new Optional<int>(42);
|
||||
// var optional2 = new Optional<int>(42);
|
||||
|
||||
// // Act
|
||||
// var result = optional1.Equals(optional2);
|
||||
|
||||
// // Assert
|
||||
// Assert.True(result);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void Equals_WithOptional_ReturnsFalseWhenValueIsNotEqual()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional1 = new Optional<int>(42);
|
||||
// var optional2 = new Optional<int>(43);
|
||||
|
||||
// // Act
|
||||
// var result = optional1.Equals(optional2);
|
||||
|
||||
// // Assert
|
||||
// Assert.False(result);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void Equals_WithOptional_ReturnsFalseWhenValueIsNotSet()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional1 = new Optional<int>();
|
||||
// var optional2 = new Optional<int>(42);
|
||||
|
||||
// // Act
|
||||
// var result = optional1.Equals(optional2);
|
||||
|
||||
// // Assert
|
||||
// Assert.False(result);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void GetHashCode_WhenValueIsSet_ReturnsValueHashCode()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional = new Optional<int>(42);
|
||||
|
||||
// // Act
|
||||
// var result = optional.GetHashCode();
|
||||
|
||||
// // Assert
|
||||
// Assert.Equal(42.GetHashCode(), result);
|
||||
// }
|
||||
|
||||
// [Fact]
|
||||
// public void GetHashCode_WhenValueIsNotSet_ReturnsZero()
|
||||
// {
|
||||
// // Arrange
|
||||
// var optional = new Optional<int>();
|
||||
|
||||
// // Act
|
||||
// var result = optional.GetHashCode();
|
||||
|
||||
// // Assert
|
||||
// Assert.Equal(0, result);
|
||||
// }
|
||||
// }
|
||||
|
||||
public class OptionalTests
|
||||
{
|
||||
// Constructor Tests
|
||||
|
|
|
@ -0,0 +1,110 @@
|
|||
namespace DotTiled.Tests;
|
||||
|
||||
public class CustomEnumDefinitionTests
|
||||
{
|
||||
private static void AssertCustomEnumDefinitionEqual(CustomEnumDefinition expected, CustomEnumDefinition actual)
|
||||
{
|
||||
DotTiledAssert.AssertEqual(expected.ID, actual.ID, nameof(CustomEnumDefinition.ID));
|
||||
DotTiledAssert.AssertEqual(expected.Name, actual.Name, nameof(CustomEnumDefinition.Name));
|
||||
DotTiledAssert.AssertEqual(expected.StorageType, actual.StorageType, nameof(CustomEnumDefinition.StorageType));
|
||||
DotTiledAssert.AssertEqual(expected.ValueAsFlags, actual.ValueAsFlags, nameof(CustomEnumDefinition.ValueAsFlags));
|
||||
DotTiledAssert.AssertListOrdered(expected.Values, actual.Values, nameof(CustomEnumDefinition.Values));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FromEnum_Type_WhenTypeIsNotEnum_ThrowsArgumentException()
|
||||
{
|
||||
// Arrange
|
||||
var type = typeof(string);
|
||||
|
||||
// Act & Assert
|
||||
Assert.Throws<ArgumentException>(() => CustomEnumDefinition.FromEnum(type));
|
||||
}
|
||||
|
||||
private enum TestEnum1 { Value1, Value2, Value3 }
|
||||
|
||||
[Fact]
|
||||
public void FromEnum_Type_WhenTypeIsEnum_ReturnsCustomEnumDefinition()
|
||||
{
|
||||
// Arrange
|
||||
var type = typeof(TestEnum1);
|
||||
var expected = new CustomEnumDefinition
|
||||
{
|
||||
ID = 0,
|
||||
Name = "TestEnum1",
|
||||
StorageType = CustomEnumStorageType.Int,
|
||||
Values = ["Value1", "Value2", "Value3"],
|
||||
ValueAsFlags = false
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = CustomEnumDefinition.FromEnum(type);
|
||||
|
||||
// Assert
|
||||
AssertCustomEnumDefinitionEqual(expected, result);
|
||||
}
|
||||
|
||||
[Flags]
|
||||
private enum TestEnum2 { Value1, Value2, Value3 }
|
||||
|
||||
[Fact]
|
||||
public void FromEnum_Type_WhenEnumIsFlags_ReturnsCustomEnumDefinition()
|
||||
{
|
||||
// Arrange
|
||||
var type = typeof(TestEnum2);
|
||||
var expected = new CustomEnumDefinition
|
||||
{
|
||||
ID = 0,
|
||||
Name = "TestEnum2",
|
||||
StorageType = CustomEnumStorageType.Int,
|
||||
Values = ["Value1", "Value2", "Value3"],
|
||||
ValueAsFlags = true
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = CustomEnumDefinition.FromEnum(type);
|
||||
|
||||
// Assert
|
||||
AssertCustomEnumDefinitionEqual(expected, result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FromEnum_T_WhenTypeIsEnum_ReturnsCustomEnumDefinition()
|
||||
{
|
||||
// Arrange
|
||||
var expected = new CustomEnumDefinition
|
||||
{
|
||||
ID = 0,
|
||||
Name = "TestEnum1",
|
||||
StorageType = CustomEnumStorageType.Int,
|
||||
Values = ["Value1", "Value2", "Value3"],
|
||||
ValueAsFlags = false
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = CustomEnumDefinition.FromEnum<TestEnum1>();
|
||||
|
||||
// Assert
|
||||
AssertCustomEnumDefinitionEqual(expected, result);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void FromEnum_T_WhenEnumIsFlags_ReturnsCustomEnumDefinition()
|
||||
{
|
||||
// Arrange
|
||||
var expected = new CustomEnumDefinition
|
||||
{
|
||||
ID = 0,
|
||||
Name = "TestEnum2",
|
||||
StorageType = CustomEnumStorageType.Int,
|
||||
Values = ["Value1", "Value2", "Value3"],
|
||||
ValueAsFlags = true
|
||||
};
|
||||
|
||||
// Act
|
||||
var result = CustomEnumDefinition.FromEnum<TestEnum2>();
|
||||
|
||||
// Assert
|
||||
AssertCustomEnumDefinitionEqual(expected, result);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue