public IEnumerator DestroysComponentOnEntity_OnOtherClient()
        {
            yield return(Connect());

            _manager.SetLocalPlayer(new TestPlayer());

            var entity = new NetworkEntity(1, _manager.Connection.LocalClient.ClientId);

            _manager.InstantiateEntity(entity);

            yield return(UpdateUntilSubscription(_manager2.OnEntityCreated));

            var comp = new TestNetworkComponent {
                Id = 2
            };

            entity.AddNetworkComponent(comp);
            entity.RemoveNetworkComponent(comp);

            yield return(UpdateUntilSubscription(_manager2.Entities[0].OnComponentRemove));

            Assert.AreEqual(0, _manager2.Entities[0].Components.Count);

            yield return(Disconnect());
        }
        public IEnumerator UpdatesComponentOnEntity_OnOtherClient()
        {
            yield return(Connect());

            _manager.SetLocalPlayer(new TestPlayer());

            var entity = new NetworkEntity(1, _manager.Connection.LocalClient.ClientId);

            _manager.InstantiateEntity(entity);

            yield return(UpdateUntilSubscription(_manager2.OnEntityCreated));

            var comp = new TestNetworkComponent {
                Id = 2, Data = 0
            };

            entity.AddNetworkComponent(comp);
            yield return(UpdateUntilSubscription(_manager2.Entities[0].OnComponentAdd));

            comp.Data = 1;
            yield return(UpdateUntilSubscription(_manager2.OnEntityUpdated));

            Assert.AreEqual(1, ((TestNetworkComponent)_manager2.Entities[0].Components[0]).Data);

            yield return(Disconnect());
        }