166 lines
4.0 KiB
C#
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);
|
|
}
|
|
}
|