
using Models.Jeux.Plateau;

namespace TestUnit
{
    public class CaseTest
    {
        [Fact]
        public void TestConstructorValid()
        {
            Case c = new Case(Couleur.BLANC, 0, 1);
            Assert.NotNull(c);
            Assert.Equal(Couleur.BLANC, c.CouleurCase);
            Assert.Equal(0, c.PosX);
            Assert.Equal(1, c.PosY);
            Assert.False(c.Pion);
        }

        [Fact]
        public void testToString()
        {
            Case c = new Case(Couleur.BLANC, 0, 1);
            Assert.NotNull(c.ToString());
        }
        [Fact]
        public void testSetPosY()
        {
            Case c = new Case(Couleur.BLANC, 0, 1);
            c.PosY = 0;
            Assert.Equal(0, c.PosY);
        }
        [Fact]
        public void testSetPosX()
        {
            Case c = new Case(Couleur.BLANC, 0, 1);
            c.PosX = 1;
            Assert.Equal(1, c.PosX);
        }
        [Fact]
        public void testSetPion()
        {
            Case c = new Case(Couleur.BLANC, 0, 1);
            c.Pion = true;
            Assert.True(c.Pion);
        }
        [Fact]
        public void testSetCouleur()
        {
            Case c = new Case(Couleur.BLANC, 0, 1);
            c.CouleurCase = Couleur.NOIR;
            Assert.Equal(Couleur.NOIR, c.CouleurCase);
        }
        [Fact]
        public void testPosYNegative()
        {
            Case c = new Case(Couleur.BLANC, 0, -1);
            Assert.Equal(0, c.PosY);
        }
        [Fact]
        public void testPosXNegative()
        {
            Case c = new Case(Couleur.BLANC, -3, 1);
            Assert.Equal(0, c.PosX);
        }
        [Fact]
        public void testPosYSupperieur9()
        {
            Case c = new Case(Couleur.BLANC, 0, 10);
            Assert.Equal(9, c.PosY);
        }

        [Fact]
        public void testPosXSupperieur9()
        {
            Case c = new Case(Couleur.BLANC, 10, 1);
            Assert.Equal(9, c.PosX);
        }
    }
}