public void testCollision()
    {
        // Arrange
        var mockStarPowerupBehaviour = new Mock<IStarPowerupBehaviour>();
        var mockTimer = new Mock<ITimer>();

        StarPowerup starPowerup = new StarPowerup(
            mockStarPowerupBehaviour.Object,
            mockTimer.Object
        );

        // Act
        starPowerup.Collision();

        // Assert
        Assert.AreEqual(true, StateManager.Instance.Invincible);
    }
    public void testInvincibility()
    {
        // Arrange
        var mockStarPowerupBehaviour = new Mock<IStarPowerupBehaviour>();
        var mockTimer = new Mock<ITimer>();

        StarPowerup starPowerup = new StarPowerup(
            mockStarPowerupBehaviour.Object,
            mockTimer.Object
        );

        // Act
        starPowerup.Collision();
        mockTimer.Raise(m => m.Elapsed += null, new EventArgs() as ElapsedEventArgs);

        // Assert
        Assert.AreEqual(false, StateManager.Instance.Invincible);
    }