Design UTs for Player
continuous-integration/drone/push Build is passing Details

pull/45/head
Alexis Drai 2 years ago
parent bd1502436d
commit 0995660259

@ -1,4 +1,5 @@
using Model;
using System;
using Xunit;
namespace Tests.Model_UTs
@ -6,10 +7,191 @@ namespace Tests.Model_UTs
public class PlayerTest
{
[Fact]
public void TestConstructor()
public void TestConstructorIfNameThenCorrectName()
{
Player player = new Player("Alice");
// Arrange
Player player;
// Act
player = new("Alice");
// Assert
Assert.Equal("Alice", player.Name);
}
[Fact]
public void TestConstructorIfWhitespaceThenException()
{
// Arrange
Player player;
// Act
Action action = () => player = new(" ");
// Assert
Assert.Throws<ArgumentException>(action);
}
[Fact]
public void TestConstructorIfBlankThenException()
{
// Arrange
Player player;
// Act
Action action = () => player = new("");
// Assert
Assert.Throws<ArgumentException>(action);
}
[Fact]
public void TestConstructorIfNullThenException()
{
// Arrange
Player player;
// Act
Action action = () => player = new(null);
// Assert
Assert.Throws<ArgumentException>(action);
}
[Fact]
public void TestToStringCorrectName()
{
// Arrange
string expected = "Bob";
Player player = new(expected);
// Act
string actual = player.ToString();
// Assert
Assert.Equal(expected, actual);
}
class Point
{
public int X { get; set; }
public int Y { get; set; }
public Point(int x, int y)
{
X = x; Y = y;
}
}
[Fact]
public void TestEqualsFalseIfNotPlayer()
{
// Arrange
Point point;
Player player;
// Act
point = new(1, 2);
player = new("Clyde");
// Assert
Assert.False(point.Equals(player));
Assert.False(player.Equals(point));
}
[Fact]
public void TestEqualsFalseIfNotSameName()
{
// Arrange
Player p1;
Player p2;
// Act
p1 = new("Panama");
p2 = new("Clyde");
// Assert
Assert.False(p1.Equals(p2));
Assert.False(p2.Equals(p1));
}
[Fact]
public void TestEqualsTrueIfSameNameDifferentCase()
{
// Arrange
Player p1;
Player p2;
// Act
p1 = new("Devon");
p2 = new("devoN");
// Assert
Assert.True(p1.Equals(p2));
Assert.True(p2.Equals(p1));
}
[Fact]
public void TestEqualsTrueIfExactlySameName()
{
// Arrange
Player p1;
Player p2;
// Act
p1 = new("Elyse");
p2 = new("Elyse");
// Assert
Assert.True(p1.Equals(p2));
Assert.True(p2.Equals(p1));
}
[Fact]
public void TestSameHashFalseIfNotSameName()
{
// Arrange
Player p1;
Player p2;
// Act
p1 = new("Panama");
p2 = new("Clyde");
// Assert
Assert.False(p1.GetHashCode().Equals(p2.GetHashCode()));
Assert.False(p2.GetHashCode().Equals(p1.GetHashCode()));
}
[Fact]
public void TestSameHashTrueIfSameNameDifferentCase()
{
// Arrange
Player p1;
Player p2;
// Act
p1 = new("Devon");
p2 = new("devoN");
// Assert
Assert.True(p1.GetHashCode().Equals(p2.GetHashCode()));
Assert.True(p2.GetHashCode().Equals(p1.GetHashCode()));
}
[Fact]
public void TestSameHashTrueIfExactlySameName()
{
// Arrange
Player p1;
Player p2;
// Act
p1 = new("Elyse");
p2 = new("Elyse");
// Assert
Assert.True(p1.GetHashCode().Equals(p2.GetHashCode()));
Assert.True(p2.GetHashCode().Equals(p1.GetHashCode()));
}
}
}

Loading…
Cancel
Save