コード例 #1
0
ファイル: SingletonUnitTest.cs プロジェクト: nuscien/trivial
        public void TestFactory()
        {
            var f = FactorySet.Instance();
            var i = 0;

            f.Register(() => i++);
            f.Register(() => Guid.NewGuid());
            f.Register <IJsonValueNode>(() => i % 2 == 0 ? new JsonObjectNode() : new JsonArrayNode());
            Assert.AreEqual(0, f.Create <int>());
            Assert.AreEqual(JsonValueKind.Array, f.Create <IJsonValueNode>().ValueKind);
            Assert.AreEqual(1, f.Create <int>());
            Assert.IsNotNull(f.Create <Guid>());
            Assert.AreEqual(JsonValueKind.Object, f.Create <IJsonValueNode>().ValueKind);
            Assert.IsNull(f.GetFactory <JsonObjectNode>());
            Assert.IsNull(f.GetFactory <JsonArrayNode>());
            Assert.IsNotNull(f.GetFactory <IJsonValueNode>());

            var jsonFactory = new RoutedFactory <IJsonValueNode>();

            jsonFactory.Register("obj", () => new JsonObjectNode());
            jsonFactory.Register("arr", () => new JsonArrayNode());
            var json = jsonFactory.Create("obj");

            Assert.AreEqual(JsonValueKind.Object, json.ValueKind);
            Assert.AreEqual(JsonValueKind.Array, jsonFactory.Create("arr").ValueKind);
            Assert.AreNotEqual(json, jsonFactory.Create("obj").ValueKind);
        }
コード例 #2
0
        public void TestCreateGraph()
        {
            graph = new MemoryStorageGraph();
            var factoryset = new FactorySet <IContainer>();

            factoryset
            .Factories
            .Add(
                PolylineContainer.CreateFactory(
                    new FactorySet <PolylineData>(
                        PolylineData.FactoryInstance
                        ),
                    new ViewerSet <PolylineData>()
                    )
                );

            file = new EditorFile(graph, factoryset);

            obj1 = graph.CreateObject();
            obj2 = graph.CreateObject();
        }
コード例 #3
0
        void InitContainers()
        {
            var controllers_factoryset =
                new FactorySet <ITrackController>(
                    SheetMusicEditor.CreateFactory()
                    );

            var controllers_viewerset =
                new ViewerSet <ITrackController>(
                    SheetMusicEditorView.Viewer.Instance
                    );

            var tracks_factoryset =
                new FactorySet <ITrack>(
                    MusicTrackFactory.Instance
                    );

            var tracks_viewerset =
                new ViewerSet <ITrack>();

            containerfactoryset.Factories.Add(
                TrackControllerContainer.CreateFactory(
                    tracks_factoryset,
                    tracks_viewerset,
                    controllers_factoryset,
                    controllers_viewerset
                    )
                );

            containerfactoryset.Factories.Add(
                PolylineContainer.CreateFactory(
                    new FactorySet <PolylineData>(
                        PolylineData.FactoryInstance
                        ),
                    new ViewerSet <PolylineData>(
                        )
                    )
                );

            containerfactoryset.Factories.Add(
                FunctionContainer.CreateFactory(
                    new FunctionCodeTools(
                        SquareFunction.FactoryClass.Instance,
                        PolylineFunction.FactoryClass.Instance,
                        PolynomialFunction.FactoryClass.Instance,
                        PulseWidthModulatedFunction.FactoryClass.Instance,

                        LocalPerspectiveFunction.FactoryClass.Instance,
                        GlobalPerspectiveFunction.FactoryClass.Instance
                        ),
                    new FactorySet <FunctionSource>(
                        FunctionSource.FactoryInstance
                        ),
                    new ViewerSet <FunctionSource>(
                        )
                    )
                );

            containerfactoryset.Factories.Add(
                ScreenContainer.CreateFactory(
                    new FactorySet <IScreen>(
                        TrackControllerScreen.FactoryInstance
                        ),
                    new ViewerSet <IScreen>(
                        TrackControllerScreenView.Viewer.Instance
                        )
                    )
                );
        }