public void DecreaseHealth_WhenInvokedAndArmourCoefficientIsNotPositive()
        {
            //Arrange
            var engineMock = new Mock <ISpaceshipEngine>();
            var armourMock = new Mock <IArmour>();
            var weaponMock = new Mock <IWeapon>();

            armourMock.SetupAllProperties();

            var spaceship = new SpaceshipMock(engineMock.Object, armourMock.Object, weaponMock.Object, "spaceshipModel");

            var secondSpaceship = new SpaceshipMock(engineMock.Object, armourMock.Object, weaponMock.Object, "spaceshipModel");

            secondSpaceship.Health = 100;

            //Act
            int damage = 10;

            spaceship.TakeDamageToPlayer(secondSpaceship, damage);

            //Assert
            var expected = 90;
            var result   = secondSpaceship.Health;

            Assert.AreEqual(expected, result);
        }
        public void ThrowNullReferenceException_WhenNullSpaceshipIsGiven()
        {
            //Arrange
            var engineMock = new Mock <ISpaceshipEngine>();
            var armourMock = new Mock <IArmour>();
            var weaponMock = new Mock <IWeapon>();

            var spaceship = new SpaceshipMock(engineMock.Object, armourMock.Object, weaponMock.Object, "model");

            Assert.ThrowsException <NullReferenceException>(() => spaceship.TakeDamageToPlayer(null, 10));
        }
        public void ReturnProperValue_WhenGetMethodIsCalled()
        {
            //Arrange
            var engineMock = new Mock <ISpaceshipEngine>();
            var armourMock = new Mock <IArmour>();
            var weaponMock = new Mock <IWeapon>();

            var spaceship = new SpaceshipMock(engineMock.Object, armourMock.Object, weaponMock.Object, "valid model");

            //Act
            var result = spaceship.Weight;

            //Assert
            Assert.AreEqual(0, result);
        }