Files
2026-02-26 14:04:18 +07:00

61 lines
1.4 KiB
C#

using FluentAssertions;
using MyNewProjectName.Domain.ValueObjects;
namespace MyNewProjectName.UnitTest.Domain;
public class ValueObjectTests
{
private class TestValueObject : ValueObject
{
public string Value1 { get; }
public int Value2 { get; }
public TestValueObject(string value1, int value2)
{
Value1 = value1;
Value2 = value2;
}
protected override IEnumerable<object?> GetEqualityComponents()
{
yield return Value1;
yield return Value2;
}
}
[Fact]
public void ValueObjects_WithSameValues_ShouldBeEqual()
{
// Arrange
var vo1 = new TestValueObject("test", 123);
var vo2 = new TestValueObject("test", 123);
// Act & Assert
vo1.Should().Be(vo2);
(vo1 == vo2).Should().BeTrue();
}
[Fact]
public void ValueObjects_WithDifferentValues_ShouldNotBeEqual()
{
// Arrange
var vo1 = new TestValueObject("test", 123);
var vo2 = new TestValueObject("test", 456);
// Act & Assert
vo1.Should().NotBe(vo2);
(vo1 != vo2).Should().BeTrue();
}
[Fact]
public void GetHashCode_ShouldBeSameForEqualObjects()
{
// Arrange
var vo1 = new TestValueObject("test", 123);
var vo2 = new TestValueObject("test", 123);
// Act & Assert
vo1.GetHashCode().Should().Be(vo2.GetHashCode());
}
}