Example #1
0
        public static void GetName()
        {
            var id1 = Id <TConnector> .Parse("505c9566-9b6c-481d-b667-106f347a293f");

            var id2 = Id <TConnector> .Parse("249f9ad5-d04f-4f21-aff2-1644ab697bbd");

            var id3 = Id <TConnector> .Parse("8287d64b-ab8b-495e-8331-d371e85121d1");

            ConnectorDefinitionData definition = new ConnectorDefinitionData("AsdasD", Id <TConnectorDefinition> .Parse("9fd8b8af-35f2-4d60-8533-45b065d02057"), new List <NodeData.ParameterData>()
            {
            }, ConnectorPosition.Bottom, false);
            var parent          = new Editable(Id <NodeTemp> .Parse("b0bdc6d1-7f0c-4e82-b4c3-c5e6d2f3686d"));
            var connectionRules = new GenericConnectionRules((a, b) => false);

            string name1 = "name1";
            string name2 = "name2";

            var parameters1 = new IParameter[] { new StringParameter("p1", ConnectorDefinitionData.OutputName, name1) };
            var parameters2 = new IParameter[] { new StringParameter("p2", Id <Parameter> .Parse("cb82f5b9-9ea8-4e05-b851-20392bca923a"), name2) };
            var parameters3 = new IParameter[] { new BooleanParameter("p3", Id <Parameter> .Parse("945c7cd9-1d0a-4291-a560-ea77d49b4c19"), "false") };

            Output o1 = new Output(id1, definition, parent, parameters1, connectionRules);
            Output o2 = new Output(id2, definition, parent, parameters2, connectionRules);
            Output o3 = new Output(id3, definition, parent, parameters3, connectionRules);

            Assert.That(o1.GetName(), Is.EqualTo(name1));
            Assert.That(o2.GetName(), Is.EqualTo(name2));
            Assert.That(o3.GetName(), Is.EqualTo(""));
        }
Example #2
0
        public static void ConstructionParameters()
        {
            var id1 = Id <TConnector> .Parse("505c9566-9b6c-481d-b667-106f347a293f");

            var id2 = Id <TConnector> .Parse("249f9ad5-d04f-4f21-aff2-1644ab697bbd");

            ConnectorDefinitionData definition1 = new ConnectorDefinitionData("AsdasD", Id <TConnectorDefinition> .Parse("9fd8b8af-35f2-4d60-8533-45b065d02057"), new List <NodeData.ParameterData>()
            {
            }, ConnectorPosition.Bottom, false);
            ConnectorDefinitionData definition2 = new ConnectorDefinitionData("asdasd", Id <TConnectorDefinition> .Parse("81efd7b0-91c6-4ce1-899e-9a342477a287"), new List <NodeData.ParameterData>()
            {
            }, ConnectorPosition.Bottom, false);
            var parent1 = new Editable(Id <NodeTemp> .Parse("b0bdc6d1-7f0c-4e82-b4c3-c5e6d2f3686d"));
            var parent2 = new Editable(Id <NodeTemp> .Parse("fa322980-9720-4bc5-923f-a543c5f83e0e"));

            var connectionRules1 = new GenericConnectionRules((a, b) => false);
            var connectionRules2 = new GenericConnectionRules((a, b) => true);

            var parameters1 = new IParameter[] { new StringParameter("asdsdad", Id <Parameter> .Parse("cb82f5b9-9ea8-4e05-b851-20392bca923a")) };
            var parameters2 = new IParameter[] { new BooleanParameter("dxhgdh", Id <Parameter> .Parse("945c7cd9-1d0a-4291-a560-ea77d49b4c19"), "false") };

            Output o1 = new Output(id1, definition1, parent1, parameters1, connectionRules1);
            Output o2 = new Output(id2, definition2, parent2, parameters2, connectionRules2);

            Assert.That(o1.Id, Is.EqualTo(id1));
            Assert.That(o2.Id, Is.EqualTo(id2));
            Assert.That(o1.Definition, Is.EqualTo(definition1));
            Assert.That(o2.Definition, Is.EqualTo(definition2));
            Assert.That(o1.Parameters, Is.EquivalentTo(parameters1));
            Assert.That(o2.Parameters, Is.EquivalentTo(parameters2));
            Assert.That(o1.Parent, Is.EqualTo(parent1));
            Assert.That(o2.Parent, Is.EqualTo(parent2));
            Assert.That(o1.Rules, Is.EqualTo(connectionRules1));
            Assert.That(o2.Rules, Is.EqualTo(connectionRules2));
        }
Example #3
0
        public static void CannotConnectRedundantConnection()
        {
            var id1 = Id <TConnector> .Parse("505c9566-9b6c-481d-b667-106f347a293f");

            var id2 = Id <TConnector> .Parse("249f9ad5-d04f-4f21-aff2-1644ab697bbd");

            var id3 = Id <TConnector> .Parse("fc206ffe-9bd3-4f19-ac72-5c813bcbd84c");

            ConnectorDefinitionData definition1 = new ConnectorDefinitionData("AsdasD", Id <TConnectorDefinition> .Parse("9fd8b8af-35f2-4d60-8533-45b065d02057"), new List <NodeData.ParameterData>()
            {
            }, ConnectorPosition.Bottom, false);
            ConnectorDefinitionData definition2 = new ConnectorDefinitionData("AsdasD", Id <TConnectorDefinition> .Parse("81efd7b0-91c6-4ce1-899e-9a342477a287"), new List <NodeData.ParameterData>()
            {
            }, ConnectorPosition.Bottom, false);
            ConnectorDefinitionData definition3 = new ConnectorDefinitionData("AsdasD", Id <TConnectorDefinition> .Parse("04f53945-1e81-4cf7-8ddf-ea8bb6a5bc63"), new List <NodeData.ParameterData>()
            {
            }, ConnectorPosition.Bottom, false);
            var parent1 = new Editable(Id <NodeTemp> .Parse("b0bdc6d1-7f0c-4e82-b4c3-c5e6d2f3686d"));
            var parent2 = new Editable(Id <NodeTemp> .Parse("fa322980-9720-4bc5-923f-a543c5f83e0e"));
            var parent3 = new Editable(Id <NodeTemp> .Parse("05abad3e-a026-4ffa-b66e-8bbaabde9d45"));


            var    connectionRules = new GenericConnectionRules((a, b) => true);
            Output o1 = new Output(id1, definition1, parent1, new List <IParameter>(), connectionRules);
            Output o2 = new Output(id2, definition2, parent2, new List <IParameter>(), connectionRules);
            Output o3 = new Output(id3, definition3, parent3, new List <IParameter>(), connectionRules);

            Assert.That(o1.ConnectTo(o2, false), Is.True); //Initially we can connect them fine

            //o1 and o2 are now connected but o1 and o3 are not
            Assert.That(o1.CanConnectTo(o2, ConnectionConsiderations.None), Is.False);
            Assert.That(o2.CanConnectTo(o1, ConnectionConsiderations.None), Is.False);
            Assert.That(o1.CanConnectTo(o2, ConnectionConsiderations.RuleViolation | ConnectionConsiderations.SameNode), Is.False);
            Assert.That(o2.CanConnectTo(o1, ConnectionConsiderations.RuleViolation | ConnectionConsiderations.SameNode), Is.False);
            Assert.That(o1.CanConnectTo(o2, ConnectionConsiderations.RuleViolation | ConnectionConsiderations.SameNode | ConnectionConsiderations.RedundantConnection), Is.True);
            Assert.That(o2.CanConnectTo(o1, ConnectionConsiderations.RuleViolation | ConnectionConsiderations.SameNode | ConnectionConsiderations.RedundantConnection), Is.True);
            Assert.That(o1.CanConnectTo(o2, ConnectionConsiderations.RedundantConnection), Is.True);
            Assert.That(o2.CanConnectTo(o1, ConnectionConsiderations.RedundantConnection), Is.True);

            Assert.That(o1.CanConnectTo(o3, ConnectionConsiderations.None), Is.True);
            Assert.That(o3.CanConnectTo(o1, ConnectionConsiderations.None), Is.True);

            Assert.That(o1.ConnectTo(o2, false), Is.False);
            Assert.That(o1.ConnectTo(o2, true), Is.False);
            Assert.That(o1.ConnectTo(o3, false), Is.True);
        }
Example #4
0
        public static void CannotConnectSameNode()
        {
            var id1 = Id <TConnector> .Parse("505c9566-9b6c-481d-b667-106f347a293f");

            var id2 = Id <TConnector> .Parse("249f9ad5-d04f-4f21-aff2-1644ab697bbd");

            var id3 = Id <TConnector> .Parse("fc206ffe-9bd3-4f19-ac72-5c813bcbd84c");

            ConnectorDefinitionData definition = new ConnectorDefinitionData("AsdasD", Id <TConnectorDefinition> .Parse("9fd8b8af-35f2-4d60-8533-45b065d02057"), new List <NodeData.ParameterData>()
            {
            }, ConnectorPosition.Bottom, false);
            var parent1 = new Editable(Id <NodeTemp> .Parse("b0bdc6d1-7f0c-4e82-b4c3-c5e6d2f3686d"));
            var parent2 = new Editable(parent1.NodeId);
            var parent3 = new Editable(Id <NodeTemp> .Parse("05abad3e-a026-4ffa-b66e-8bbaabde9d45"));


            var    connectionRules = new GenericConnectionRules((a, b) => true);
            Output o1 = new Output(id1, definition, parent1, new List <IParameter>(), connectionRules);
            Output o2 = new Output(id2, definition, parent2, new List <IParameter>(), connectionRules);
            Output o3 = new Output(id3, definition, parent3, new List <IParameter>(), connectionRules);

            Assert.That(o1.CanConnectTo(o2, ConnectionConsiderations.None), Is.False);
            Assert.That(o2.CanConnectTo(o1, ConnectionConsiderations.None), Is.False);
            Assert.That(o1.CanConnectTo(o2, ConnectionConsiderations.RedundantConnection | ConnectionConsiderations.RuleViolation), Is.False);
            Assert.That(o2.CanConnectTo(o1, ConnectionConsiderations.RedundantConnection | ConnectionConsiderations.RuleViolation), Is.False);
            Assert.That(o1.CanConnectTo(o2, ConnectionConsiderations.SameNode | ConnectionConsiderations.RedundantConnection | ConnectionConsiderations.RuleViolation), Is.True);
            Assert.That(o2.CanConnectTo(o1, ConnectionConsiderations.SameNode | ConnectionConsiderations.RedundantConnection | ConnectionConsiderations.RuleViolation), Is.True);
            Assert.That(o1.CanConnectTo(o2, ConnectionConsiderations.SameNode), Is.True);
            Assert.That(o2.CanConnectTo(o1, ConnectionConsiderations.SameNode), Is.True);

            Assert.That(o1.CanConnectTo(o3, ConnectionConsiderations.None), Is.True);
            Assert.That(o3.CanConnectTo(o1, ConnectionConsiderations.None), Is.True);

            Assert.That(o1.ConnectTo(o2, false), Is.False);
            Assert.That(o1.ConnectTo(o2, true), Is.False);
            Assert.That(o1.ConnectTo(o3, false), Is.True);
        }
Example #5
0
        public static void Connections()
        {
            var id1 = Id <TConnector> .Parse("505c9566-9b6c-481d-b667-106f347a293f");

            var id2 = Id <TConnector> .Parse("249f9ad5-d04f-4f21-aff2-1644ab697bbd");

            var id3 = Id <TConnector> .Parse("a2bf9ba3-b4c0-4574-81a9-d8ce0477ec58");

            var id4 = Id <TConnector> .Parse("e7888bf4-c4ed-43d9-aeb4-a89b3cb9cb1f");

            var id5 = Id <TConnector> .Parse("8051c57d-e64b-4932-a34b-5e46c064efa9");

            var id6 = Id <TConnector> .Parse("cc4b021c-2c60-436d-8e75-e83dcde2c7e5");

            ConnectorDefinitionData definition = new ConnectorDefinitionData("AsdasD", Id <TConnectorDefinition> .Parse("9fd8b8af-35f2-4d60-8533-45b065d02057"), new List <NodeData.ParameterData>()
            {
            }, ConnectorPosition.Bottom, false);
            var parent1 = new Editable(Id <NodeTemp> .Parse("b0bdc6d1-7f0c-4e82-b4c3-c5e6d2f3686d"));
            var parent2 = new Editable(Id <NodeTemp> .Parse("fa322980-9720-4bc5-923f-a543c5f83e0e"));
            var parent3 = new Editable(Id <NodeTemp> .Parse("9f4c81fd-af20-465e-aa98-04d3dc804798"));
            var parent4 = new Editable(Id <NodeTemp> .Parse("fc1bb15e-2f96-4e01-838d-43cdbbe4f77d"));
            var parent5 = new Editable(Id <NodeTemp> .Parse("196ac3c6-6fe1-41ce-b04b-481a91100cba"));
            var parent6 = new Editable(Id <NodeTemp> .Parse("795c74b9-dcb8-4f41-a397-c0f3ae8b65c9"));

            var    connectionRules = new GenericConnectionRules((a, b) => true);
            Output o1 = new Output(id1, definition, parent1, new List <IParameter>(), connectionRules);
            Output o2 = new Output(id2, definition, parent2, new List <IParameter>(), connectionRules);
            Output o3 = new Output(id3, definition, parent3, new List <IParameter>(), connectionRules);
            Output o4 = new Output(id4, definition, parent4, new List <IParameter>(), connectionRules);
            Output o5 = new Output(id5, definition, parent5, new List <IParameter>(), connectionRules);
            Output o6 = new Output(id6, definition, parent6, new List <IParameter>(), connectionRules);

            List <Output> connections1 = new List <Output>();
            List <Output> connections2 = new List <Output>();
            List <Output> connections3 = new List <Output>();
            List <Output> connections4 = new List <Output>();
            List <Output> connections5 = new List <Output>();
            List <Output> connections6 = new List <Output>();

            Action CheckConnections = () =>
            {
                Assert.That(o1.Connections, Is.EquivalentTo(connections1));
                Assert.That(o2.Connections, Is.EquivalentTo(connections2));
                Assert.That(o3.Connections, Is.EquivalentTo(connections3));
                Assert.That(o4.Connections, Is.EquivalentTo(connections4));
                Assert.That(o5.Connections, Is.EquivalentTo(connections5));
                Assert.That(o6.Connections, Is.EquivalentTo(connections6));
            };

            o1.ConnectTo(o2, false);
            connections1.Add(o2);
            connections2.Add(o1);
            CheckConnections();

            o1.ConnectTo(o3, false);
            connections1.Add(o3);
            connections3.Add(o1);
            CheckConnections();

            o1.ConnectTo(o4, false);
            connections1.Add(o4);
            connections4.Add(o1);
            CheckConnections();

            o2.ConnectTo(o3, false);
            connections2.Add(o3);
            connections3.Add(o2);
            CheckConnections();

            o1.Disconnect(o3);
            connections1.Remove(o3);
            connections3.Remove(o1);
            CheckConnections();

            var action = o1.DisconnectAllActions();

            CheckConnections();

            action.Redo();
            connections1.Clear();
            connections2.Remove(o1);
            connections4.Remove(o1);
            CheckConnections();
        }
Example #6
0
        public static void ConnectionAndDisconnectionEvents()
        {
            var id1 = Id <TConnector> .Parse("505c9566-9b6c-481d-b667-106f347a293f");

            var id2 = Id <TConnector> .Parse("249f9ad5-d04f-4f21-aff2-1644ab697bbd");

            ConnectorDefinitionData definition = new ConnectorDefinitionData("AsdasD", Id <TConnectorDefinition> .Parse("9fd8b8af-35f2-4d60-8533-45b065d02057"), new List <NodeData.ParameterData>()
            {
            }, ConnectorPosition.Bottom, false);
            var parent1 = new Editable(Id <NodeTemp> .Parse("b0bdc6d1-7f0c-4e82-b4c3-c5e6d2f3686d"));
            var parent2 = new Editable(Id <NodeTemp> .Parse("fa322980-9720-4bc5-923f-a543c5f83e0e"));

            var    connectionRules = new GenericConnectionRules((a, b) => true);
            Output o1 = new Output(id1, definition, parent1, new List <IParameter>(), connectionRules);
            Output o2 = new Output(id2, definition, parent2, new List <IParameter>(), connectionRules);

            List <Output> o1connections = new List <Output>();

            o1.Connected += o => o1connections.Add(o);
            List <Output> o2connections = new List <Output>();

            o2.Connected += o => o2connections.Add(o);
            List <Output> o1disconnections = new List <Output>();

            o1.Disconnected += o => o1disconnections.Add(o);
            List <Output> o2disconnections = new List <Output>();

            o2.Disconnected += o => o2disconnections.Add(o);
            Action ClearAll = () =>
            {
                o1connections.Clear();
                o2connections.Clear();
                o1disconnections.Clear();
                o2disconnections.Clear();
            };

            o1.ConnectTo(o2, false);
            Assert.That(o1connections, Is.EquivalentTo(o2.Only()));
            Assert.That(o2connections, Is.EquivalentTo(o1.Only()));
            Assert.That(o1disconnections, Is.Empty);
            Assert.That(o2disconnections, Is.Empty);
            ClearAll();
            o1.Disconnect(o2);
            Assert.That(o1connections, Is.Empty);
            Assert.That(o2connections, Is.Empty);
            Assert.That(o1disconnections, Is.EquivalentTo(o2.Only()));
            Assert.That(o2disconnections, Is.EquivalentTo(o1.Only()));
            ClearAll();
            o2.ConnectTo(o1, false);
            Assert.That(o1connections, Is.EquivalentTo(o2.Only()));
            Assert.That(o2connections, Is.EquivalentTo(o1.Only()));
            Assert.That(o1disconnections, Is.Empty);
            Assert.That(o2disconnections, Is.Empty);
            ClearAll();

            var actions = o2.DisconnectAllActions();

            Assert.That(o1connections, Is.Empty);
            Assert.That(o2connections, Is.Empty);
            Assert.That(o1disconnections, Is.Empty);
            Assert.That(o2disconnections, Is.Empty);
            ClearAll();

            actions.Redo();
            Assert.That(o1connections, Is.Empty);
            Assert.That(o2connections, Is.Empty);
            Assert.That(o1disconnections, Is.EquivalentTo(o2.Only()));
            Assert.That(o2disconnections, Is.EquivalentTo(o1.Only()));
            ClearAll();

            actions.Undo();
            Assert.That(o1connections, Is.EquivalentTo(o2.Only()));
            Assert.That(o2connections, Is.EquivalentTo(o1.Only()));
            Assert.That(o1disconnections, Is.Empty);
            Assert.That(o2disconnections, Is.Empty);
        }