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)); }
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("")); }
public DummyConversationNodeData(string name, Id <NodeTemp> nodeId, string description, Id <NodeTypeTemp> nodeTypeId, IEnumerable <IParameter> parameters) { Name = name; NodeId = nodeId; Description = description; NodeTypeId = nodeTypeId; Parameters = parameters; foreach (var position in new[] { ConnectorPosition.Top, ConnectorPosition.Bottom, ConnectorPosition.Left, ConnectorPosition.Right }) { ConnectorDefinitionData connectorDefinition = new ConnectorDefinitionData("", Id <TConnectorDefinition> .New(), new NodeData.ParameterData[0], position, false); m_outputs.Add(new Output(Id <TConnector> .New(), connectorDefinition, this, new IParameter[0], new DummyConnectionRules())); } }
public DummyConversationNodeData(IEnumerable <IParameter> parameters, Id <NodeTemp> nodeId) { Parameters = parameters; var conDef = new ConnectorDefinitionData("def", Id <TConnectorDefinition> .Parse("c596853b-18e4-48fd-9960-bfa4c9c9bdd8"), new NodeData.ParameterData[0], ConnectorPosition.Bottom); Connectors = new Output[] { new Output(Id <TConnector> .Parse("62bfa34b-d0dd-4438-b079-e1c7d1488f12"), conDef, this, new IParameter[0], new EverythingConnects()), new Output(Id <TConnector> .Parse("c087b5e0-51df-4714-9401-0e8ab4500cfd"), conDef, this, new IParameter[0], new EverythingConnects()), new Output(Id <TConnector> .Parse("4b97608f-cf13-4ebf-8c41-da48f407da30"), conDef, this, new IParameter[0], new EverythingConnects()), }; NodeId = nodeId; }
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); }
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); }
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(); }
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); }
public GraphData(Id <NodeTemp> nodeId, Id <NodeTypeTemp> nodeTypeId, IEnumerable <NodeDataGeneratorParameterData> parameterData) { NodeId = nodeId; NodeTypeId = nodeTypeId; var allConnectorsDefinition = new ConnectorDefinitionData(null, null, null, null, false); var outputs = new List <Output>(); var parameters = new List <IParameter>(); DecimalParameter.Definition d = new DecimalParameter.Definition(null, null); ParameterType decimalType = ParameterType.Basic.Parse("721796b6-a242-4723-82e9-35201097e675"); ParameterType dynamicEnumType = ParameterType.Basic.Parse("6d2d52c8-5934-4ba8-8d4e-7081fe57f662"); DynamicEnumParameter.Source source = new DynamicEnumParameter.Source(); IEnumeration enumeration = new DummyEnumeration(); ParameterType integerEnumType = ParameterType.Basic.Parse("de108fdb-db50-4cd5-aad5-0ea791f04721"); IntegerParameter.Definition i = new IntegerParameter.Definition(null, null); AudioParameter = new AudioParameter("Audio", Id <Parameter> .Parse("3ac8d0ca-c9f6-4e06-b18c-c1366e1af7d3")); BooleanParameter = new BooleanParameter("Boolean", Id <Parameter> .Parse("0e12e8e3-4c95-43a5-a733-d2d1fbbb780c"), "false"); DecimalParameter = new DecimalParameter("Decimal", Id <Parameter> .Parse("765e616a-f165-4053-a15c-14ed593429af"), decimalType, d, "1.0"); DynamicEnumParameter = new DynamicEnumParameter("DynamicEnum", Id <Parameter> .Parse("7c5b019c-79d0-4ef0-b848-0a2c68908f34"), source, dynamicEnumType, "shnae", false); EnumParameter = new EnumParameter("Enum", Id <Parameter> .Parse("e576713b-5d45-48d0-8a4e-661f1fedcafd"), enumeration, enumeration.DefaultValue.ToString()); IntegerParameter = new IntegerParameter("Int", Id <Parameter> .Parse("275d75f3-fe4e-42b1-bfaf-e841ba591999"), integerEnumType, i, "1"); LocalizedStringParameter = new LocalizedStringParameter("Localized stirng", Id <Parameter> .Parse("f332e619-e9a3-421f-9851-d95a00b62da9"), ParameterType.Basic.Parse("4547dbf2-46cc-4c84-ac6e-81ab185575dc")); SetParameter = new SetParameter("Set", Id <Parameter> .Parse("2d6235ea-c8a1-447a-b9d8-692f6329be33"), enumeration, null); StringParameter = new StringParameter("string", Id <Parameter> .Parse("4752d30e-e1ab-47ba-bc15-b2e6ecfa5416")); StringParameter2 = new StringParameter("string2", Id <Parameter> .Parse("dcd4a349-b0a8-4fa3-8989-2d10469b1a17")); if (nodeTypeId == TYPE1) { outputs.Add(new Output(Id <TConnector> .Parse("0956c9d3-c230-49a2-874a-7e3747b58cff"), allConnectorsDefinition, this, null, DummyRules.Instance)); parameters.Add(AudioParameter); parameters.Add(BooleanParameter); parameters.Add(DecimalParameter); parameters.Add(DynamicEnumParameter); parameters.Add(EnumParameter); } else if (nodeTypeId == TYPE2) { outputs.Add(new Output(Id <TConnector> .Parse("da2b4ded-378e-4484-89f0-1328a42f00e3"), allConnectorsDefinition, this, null, DummyRules.Instance)); outputs.Add(new Output(Id <TConnector> .Parse("2bf2ca93-6b81-4a9a-814f-809a8bef332f"), allConnectorsDefinition, this, null, DummyRules.Instance)); parameters.Add(IntegerParameter); parameters.Add(LocalizedStringParameter); parameters.Add(SetParameter); parameters.Add(StringParameter); } else if (nodeTypeId == TYPE3) { outputs.Add(new Output(Id <TConnector> .Parse("c3f67c87-a3fd-428d-90a2-90cb87906eb2"), allConnectorsDefinition, this, null, DummyRules.Instance)); parameters.Add(StringParameter); parameters.Add(StringParameter2); } else { Assert.Fail("Unexpected Id"); } if (parameterData != null) { foreach (var data in parameterData) { parameters.Where(p => p.Id == data.Guid).Single().TryDeserialiseValue(data.Value); } } Connectors = outputs; Parameters = parameters; }