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);
    }
 /// <summary>
 /// Initializes the instance variables of the object. 
 /// (This function is called by Unity automatically)
 /// </summary>
 void Start()
 {
     var timer = new TimerAdapter();
     timer.Interval = (int)(duration * 1000);
     powerup = new StarPowerup(this, timer);
 }