public void OnStartAuthorityCallsComponentsAndCatchesExceptions()
        {
            // add component
            UnityAction func = Substitute.For <UnityAction>();

            identity.OnStartAuthority.AddListener(func);

            func
            .When(f => f.Invoke())
            .Do(f => { throw new Exception("Some exception"); });

            // make sure exceptions are not swallowed
            Assert.Throws <Exception>(() =>
            {
                identity.StartAuthority();
            });
            func.Received(1).Invoke();
        }