Files
sports-division/tests/SportsDivision.Domain.Tests/HighJumpAttemptTests.cs
2026-03-01 15:14:42 -04:00

166 lines
4.0 KiB
C#

using SportsDivision.Domain.Entities;
using SportsDivision.Domain.Enums;
namespace SportsDivision.Domain.Tests;
public class HighJumpAttemptTests
{
[Fact]
public void IsEliminated_ThreeConsecutiveFails_ReturnsTrue()
{
var attempt = new HighJumpAttempt
{
Attempt1 = HighJumpAttemptResult.Fail,
Attempt2 = HighJumpAttemptResult.Fail,
Attempt3 = HighJumpAttemptResult.Fail
};
Assert.True(attempt.IsEliminated);
}
[Fact]
public void IsEliminated_ClearOnThird_ReturnsFalse()
{
var attempt = new HighJumpAttempt
{
Attempt1 = HighJumpAttemptResult.Fail,
Attempt2 = HighJumpAttemptResult.Fail,
Attempt3 = HighJumpAttemptResult.Clear
};
Assert.False(attempt.IsEliminated);
}
[Fact]
public void IsEliminated_NoAttempts_ReturnsFalse()
{
var attempt = new HighJumpAttempt();
Assert.False(attempt.IsEliminated);
}
[Fact]
public void IsEliminated_PassAndFails_ReturnsFalse()
{
var attempt = new HighJumpAttempt
{
Attempt1 = HighJumpAttemptResult.Pass,
Attempt2 = HighJumpAttemptResult.Fail,
Attempt3 = HighJumpAttemptResult.Fail
};
Assert.False(attempt.IsEliminated);
}
[Fact]
public void HasCleared_FirstAttemptClear_ReturnsTrue()
{
var attempt = new HighJumpAttempt
{
Attempt1 = HighJumpAttemptResult.Clear
};
Assert.True(attempt.HasCleared);
}
[Fact]
public void HasCleared_SecondAttemptClear_ReturnsTrue()
{
var attempt = new HighJumpAttempt
{
Attempt1 = HighJumpAttemptResult.Fail,
Attempt2 = HighJumpAttemptResult.Clear
};
Assert.True(attempt.HasCleared);
}
[Fact]
public void HasCleared_ThirdAttemptClear_ReturnsTrue()
{
var attempt = new HighJumpAttempt
{
Attempt1 = HighJumpAttemptResult.Fail,
Attempt2 = HighJumpAttemptResult.Fail,
Attempt3 = HighJumpAttemptResult.Clear
};
Assert.True(attempt.HasCleared);
}
[Fact]
public void HasCleared_AllFails_ReturnsFalse()
{
var attempt = new HighJumpAttempt
{
Attempt1 = HighJumpAttemptResult.Fail,
Attempt2 = HighJumpAttemptResult.Fail,
Attempt3 = HighJumpAttemptResult.Fail
};
Assert.False(attempt.HasCleared);
}
[Fact]
public void HasCleared_NoAttempts_ReturnsFalse()
{
var attempt = new HighJumpAttempt();
Assert.False(attempt.HasCleared);
}
[Fact]
public void FailCount_AllFails_ReturnsThree()
{
var attempt = new HighJumpAttempt
{
Attempt1 = HighJumpAttemptResult.Fail,
Attempt2 = HighJumpAttemptResult.Fail,
Attempt3 = HighJumpAttemptResult.Fail
};
Assert.Equal(3, attempt.FailCount);
}
[Fact]
public void FailCount_OneFail_ReturnsOne()
{
var attempt = new HighJumpAttempt
{
Attempt1 = HighJumpAttemptResult.Fail,
Attempt2 = HighJumpAttemptResult.Clear
};
Assert.Equal(1, attempt.FailCount);
}
[Fact]
public void FailCount_NoFails_ReturnsZero()
{
var attempt = new HighJumpAttempt
{
Attempt1 = HighJumpAttemptResult.Clear
};
Assert.Equal(0, attempt.FailCount);
}
[Fact]
public void FailCount_PassesAndFails_CountsOnlyFails()
{
var attempt = new HighJumpAttempt
{
Attempt1 = HighJumpAttemptResult.Pass,
Attempt2 = HighJumpAttemptResult.Fail,
Attempt3 = HighJumpAttemptResult.Clear
};
Assert.Equal(1, attempt.FailCount);
}
[Fact]
public void FailCount_NullAttempts_ReturnsZero()
{
var attempt = new HighJumpAttempt();
Assert.Equal(0, attempt.FailCount);
}
}