Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ public async Task MyTest()
using (Assert.Multiple())
{
await Assert.That(list).IsEquivalentTo(new[] { 1, 2, 3, 4, 5 });
await Assert.That(list).HasCount().EqualTo(5);
await Assert.That(list).Count().EqualTo(5);
}
}
}
Expand Down Expand Up @@ -163,7 +163,7 @@ public async Task MyTest()
using var _ = Assert.Multiple();

await Assert.That(list).IsEquivalentTo(new[] { 1, 2, 3, 4, 5 });
await Assert.That(list).HasCount().EqualTo(5);
await Assert.That(list).Count().EqualTo(5);
}
}
"""
Expand Down
146 changes: 121 additions & 25 deletions TUnit.Assertions.Tests/Old/MemberTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public async Task Number_Truthy()
Flag = false
};

await TUnitAssert.That(myClass).HasMember(x => x.Number).EqualTo(123);
await TUnitAssert.That(myClass).Member(x => x.Number, num => num.IsEqualTo(123));
}

[Test]
Expand All @@ -26,15 +26,11 @@ public async Task Number_Falsey()
Flag = false
};

var exception = await TUnitAssert.ThrowsAsync<TUnitAssertionException>(async () => await TUnitAssert.That(myClass).HasMember(x => x.Number).EqualTo(1));
await TUnitAssert.That(exception).HasMessageEqualTo(
"""
Expected to be equal to 1
but found 123
var exception = await TUnitAssert.ThrowsAsync<TUnitAssertionException>(async () =>
await TUnitAssert.That(myClass).Member(x => x.Number, num => num.IsEqualTo(1)));

at Assert.That(myClass).HasMember(x => x.Number).EqualTo(1)
"""
);
await TUnitAssert.That(exception.Message).Contains("to be equal to 1");
await TUnitAssert.That(exception.Message).Contains("but found 123");
}

[Test]
Expand All @@ -47,31 +43,123 @@ public async Task Number_Nested_Falsey()
Flag = false
};

var exception = await TUnitAssert.ThrowsAsync<TUnitAssertionException>(async () => await TUnitAssert.That(myClass).HasMember(x => x.Nested.Nested.Nested.Number).EqualTo(1));
await TUnitAssert.That(exception).HasMessageEqualTo(
"""
Expected to be equal to 1
but found 123
var exception = await TUnitAssert.ThrowsAsync<TUnitAssertionException>(async () =>
await TUnitAssert.That(myClass).Member(x => x.Nested.Nested.Nested.Number, num => num.IsEqualTo(1)));

at Assert.That(myClass).HasMember(x => x.Nested.Nested.Nested.Number).EqualTo(1)
"""
);
await TUnitAssert.That(exception.Message).Contains("to be equal to 1");
await TUnitAssert.That(exception.Message).Contains("but found 123");
}

[Test]
public async Task Number_Null()
{
MyClass myClass = null!;

var exception = await TUnitAssert.ThrowsAsync<TUnitAssertionException>(async () => await TUnitAssert.That(myClass).HasMember(x => x.Number).EqualTo(1));
await TUnitAssert.That(exception).HasMessageEqualTo(
"""
Expected to be equal to 1
but threw System.InvalidOperationException
var exception = await TUnitAssert.ThrowsAsync<TUnitAssertionException>(async () =>
await TUnitAssert.That(myClass).Member(x => x.Number, num => num.IsEqualTo(1)));

at Assert.That(myClass).HasMember(x => x.Number).EqualTo(1)
"""
);
await TUnitAssert.That(exception.Message).Contains("InvalidOperationException");
}

[Test]
public async Task Multiple_HasMember_Chained_With_And()
{
var myClass = new MyClass
{
Number = 123,
Text = "Blah",
Flag = true
};

await TUnitAssert.That(myClass)
.Member(x => x.Number, num => num.IsEqualTo(123))
.And.Member(x => x.Text, text => text.IsEqualTo("Blah"))
.And.Member(x => x.Flag, flag => flag.IsTrue());
}

[Test]
public async Task Multiple_HasMember_Chained_Second_Fails()
{
var myClass = new MyClass
{
Number = 123,
Text = "Blah",
Flag = true
};

var exception = await TUnitAssert.ThrowsAsync<TUnitAssertionException>(async () =>
await TUnitAssert.That(myClass)
.Member(x => x.Number, num => num.IsEqualTo(123))
.And.Member(x => x.Text, text => text.IsEqualTo("Wrong")));

await TUnitAssert.That(exception.Message).Contains("to be equal to \"Wrong\"");
}

[Test]
public async Task Multiple_HasMember_Chained_First_Fails()
{
var myClass = new MyClass
{
Number = 123,
Text = "Blah",
Flag = true
};

var exception = await TUnitAssert.ThrowsAsync<TUnitAssertionException>(async () =>
await TUnitAssert.That(myClass)
.Member(x => x.Number, num => num.IsEqualTo(999))
.And.Member(x => x.Text, text => text.IsEqualTo("Blah")));

await TUnitAssert.That(exception.Message).Contains("to be equal to 999");
}

[Test]
public async Task Multiple_HasMember_Chained_With_Or()
{
var myClass = new MyClass
{
Number = 123,
Text = "Blah",
Flag = true
};

await TUnitAssert.That(myClass)
.Member(x => x.Number, num => num.IsEqualTo(999))
.Or.Member(x => x.Text, text => text.IsEqualTo("Blah"));
}

[Test]
public async Task Chained_HasMember_With_IsNotNull()
{
var myClass = new MyClass
{
Number = 123,
Text = "Blah",
Flag = true
};

await TUnitAssert.That(myClass)
.IsNotNull()
.And.Member(x => x.Number, num => num.IsEqualTo(123))
.And.Member(x => x.Text, text => text.IsEqualTo("Blah"));
}

[Test]
public async Task Chained_HasMember_Different_Types()
{
var complexObject = new ComplexClass
{
Name = "Test",
Age = 25,
IsActive = true,
Tags = ["tag1", "tag2"]
};

await TUnitAssert.That(complexObject)
.Member(x => x.Name, name => name.IsEqualTo("Test"))
.And.Member(x => x.Age, age => age.IsGreaterThan(18))
.And.Member(x => x.IsActive, active => active.IsTrue())
.And.Member(x => x.Tags, tags => tags.Contains("tag1"));
}

private class MyClass
Expand All @@ -82,4 +170,12 @@ private class MyClass

public MyClass Nested => this;
}

private class ComplexClass
{
public required string Name { get; init; }
public required int Age { get; init; }
public required bool IsActive { get; init; }
public required List<string> Tags { get; init; }
}
}
Loading
Loading