示例#1
0
        public void TestFeatureExist()
        {
            var app = RetrieveApplication();

            var featureEntity = app.Data.World.CreateEntity();

            featureEntity.Set <IFeature>(new ShareWorldStateFeature(new ThreadTransportDriver(1)));

            var resolver = new DependencyResolver(app.Scheduler, app.Data.Context);

            resolver.Add <GetFeature <ShareWorldStateFeature> >(FeatureDependencyStrategy.Absolute <ShareWorldStateFeature>(app.Data.Collection));
            resolver.OnComplete(objects =>
            {
                if (objects.First() is GetFeature <ShareWorldStateFeature> features)
                {
                    Assert.AreEqual(1, features.Count, "There should have been one feature in GetFeature<T>");
                    return;
                }

                Assert.Fail("The first completed object is not valid");
            });

            Global.Loop();
            if (resolver.Dependencies.Count > 0)
            {
                Assert.Fail("The resolver has dependencies that are not finished.");
            }
        }