public void TestCreateNodeCommand() { // Create the command in completely unpredictable states. These // states should properly be serialized and deserialized across // two instances of the same command. // Guid nodeId = Guid.NewGuid(); string name = randomizer.Next().ToString(); double x = randomizer.NextDouble() * 1000; double y = randomizer.NextDouble() * 1000; bool defaultPos = randomizer.Next(2) == 0; bool transfPos = randomizer.Next(2) == 0; var cmdOne = new DynCmd.CreateNodeCommand( nodeId, name, x, y, defaultPos, transfPos); var cmdTwo = DuplicateAndCompare(cmdOne); Assert.AreEqual(cmdOne.NodeId, cmdTwo.NodeId); Assert.AreEqual(cmdOne.NodeName, cmdTwo.NodeName); Assert.AreEqual(cmdOne.X, cmdTwo.X, 0.000001); Assert.AreEqual(cmdOne.Y, cmdTwo.Y, 0.000001); Assert.AreEqual(cmdOne.DefaultPosition, cmdTwo.DefaultPosition); Assert.AreEqual(cmdOne.TransformCoordinates, cmdTwo.TransformCoordinates); // A RecordableCommand should be created in "recording mode" by default, // and only deserialized commands should be marked as "in playback mode". Assert.AreEqual(false, cmdOne.IsInPlaybackMode); Assert.AreEqual(true, cmdTwo.IsInPlaybackMode); }
public void Defect_MAGN_3599() { // Create the initial code block node. var codeBlockNode = CreateCodeBlockNode(); UpdateCodeBlockNodeContent(codeBlockNode, @"Circle.ByCenterPointRadius(pt,5)"); // Create the Point.Origin node. var nodeGuid = Guid.NewGuid(); var command = new DynCmd.CreateNodeCommand( nodeGuid, "Point.Origin", 0, 0, true, false); ViewModel.ExecuteCommand(command); var workspace = ViewModel.Model.CurrentWorkspace; var pointOriginNode = workspace.NodeFromWorkspace <DSFunction>(nodeGuid); // Connect the two nodes ConnectorModel connector = ConnectorModel.Make(workspace, pointOriginNode, codeBlockNode, 0, 0, PortType.INPUT); workspace.Connectors.Add(connector); Assert.AreEqual(1, codeBlockNode.InPortData.Count); // Update the code block node UpdateCodeBlockNodeContent(codeBlockNode, "pt = Point.ByCoordinates(0,0,0);\nCircle.ByCenterPointRadius(pt,5)"); Assert.AreEqual(0, codeBlockNode.InPortData.Count); }
private CodeBlockNodeModel CreateCodeBlockNode() { var nodeGuid = Guid.NewGuid(); var command = new DynCmd.CreateNodeCommand( nodeGuid, "Code Block", 0, 0, true, false); Controller.DynamoViewModel.ExecuteCommand(command); var workspace = Controller.DynamoModel.CurrentWorkspace; var cbn = workspace.NodeFromWorkspace <CodeBlockNodeModel>(nodeGuid); Assert.IsNotNull(cbn); return(cbn); }
private CodeBlockNodeModel CreateCodeBlockNode() { var nodeGuid = Guid.NewGuid(); var command = new DynCmd.CreateNodeCommand( nodeGuid, "Code Block", 0, 0, true, false); Controller.DynamoViewModel.ExecuteCommand(command); var workspace = Controller.DynamoModel.CurrentWorkspace; var cbn = workspace.NodeFromWorkspace<CodeBlockNodeModel>(nodeGuid); Assert.IsNotNull(cbn); return cbn; }
public void Defect_MAGN_3599() { // Create the initial code block node. var codeBlockNode = CreateCodeBlockNode(); UpdateCodeBlockNodeContent(codeBlockNode, @"Circle.ByCenterPointRadius(pt,5)"); // Create the Point.Origin node. var nodeGuid = Guid.NewGuid(); var command = new DynCmd.CreateNodeCommand( nodeGuid, "Point.Origin", 0, 0, true, false); ViewModel.ExecuteCommand(command); var workspace = ViewModel.Model.CurrentWorkspace; var pointOriginNode = workspace.NodeFromWorkspace<DSFunction>(nodeGuid); // Connect the two nodes ConnectorModel connector = ConnectorModel.Make(workspace, pointOriginNode, codeBlockNode, 0, 0, PortType.INPUT); workspace.Connectors.Add(connector); Assert.AreEqual(1, codeBlockNode.InPortData.Count); // Update the code block node UpdateCodeBlockNodeContent(codeBlockNode, "pt = Point.ByCoordinates(0,0,0);\nCircle.ByCenterPointRadius(pt,5)"); Assert.AreEqual(0, codeBlockNode.InPortData.Count); }
public void Defect_MAGN_3580() { // Create the initial code block node. var codeBlockNode0 = CreateCodeBlockNode(); UpdateCodeBlockNodeContent(codeBlockNode0, @"true;"); // Create the watch node. var nodeGuid = Guid.NewGuid(); var command = new DynCmd.CreateNodeCommand( nodeGuid, "Watch", 0, 0, true, false); ViewModel.ExecuteCommand(command); var workspace = ViewModel.Model.CurrentWorkspace; var watchNode = workspace.NodeFromWorkspace<Watch>(nodeGuid); // Connect the two nodes ConnectorModel connector0 = ConnectorModel.Make(workspace, codeBlockNode0, watchNode, 0, 0, PortType.INPUT); workspace.Connectors.Add(connector0); // Run Assert.DoesNotThrow(() => ViewModel.Model.RunExpression()); // Update the code block node UpdateCodeBlockNodeContent(codeBlockNode0, @"truuuue;"); // Check Assert.AreEqual(1, codeBlockNode0.InPortData.Count); // Create the second code block node var codeBlockNode1 = CreateCodeBlockNode(); UpdateCodeBlockNodeContent(codeBlockNode1, @"false;"); // Connect the two code block nodes ConnectorModel connector1 = ConnectorModel.Make(workspace, codeBlockNode1, codeBlockNode0, 0, 0, PortType.INPUT); workspace.Connectors.Add(connector1); // Run Assert.DoesNotThrow(() => ViewModel.Model.RunExpression()); UpdateCodeBlockNodeContent(codeBlockNode0, @"true;"); // Check Assert.AreEqual(0, codeBlockNode0.InPortData.Count); // Run Assert.DoesNotThrow(() => ViewModel.Model.RunExpression()); // Delete the first code block node List<ModelBase> nodes = new List<ModelBase>(); nodes.Add(codeBlockNode0); ViewModel.Model.DeleteModelInternal(nodes); // Undo workspace.Undo(); }
public void Defect_MAGN_3580() { // Create the initial code block node. var codeBlockNode0 = CreateCodeBlockNode(); UpdateCodeBlockNodeContent(codeBlockNode0, @"true;"); // Create the watch node. var nodeGuid = Guid.NewGuid(); var command = new DynCmd.CreateNodeCommand( nodeGuid, "Watch", 0, 0, true, false); ViewModel.ExecuteCommand(command); var workspace = ViewModel.Model.CurrentWorkspace; var watchNode = workspace.NodeFromWorkspace <Watch>(nodeGuid); // Connect the two nodes ConnectorModel connector0 = ConnectorModel.Make(workspace, codeBlockNode0, watchNode, 0, 0, PortType.INPUT); workspace.Connectors.Add(connector0); // Run Assert.DoesNotThrow(() => ViewModel.Model.RunExpression()); // Update the code block node UpdateCodeBlockNodeContent(codeBlockNode0, @"truuuue;"); // Check Assert.AreEqual(1, codeBlockNode0.InPortData.Count); // Create the second code block node var codeBlockNode1 = CreateCodeBlockNode(); UpdateCodeBlockNodeContent(codeBlockNode1, @"false;"); // Connect the two code block nodes ConnectorModel connector1 = ConnectorModel.Make(workspace, codeBlockNode1, codeBlockNode0, 0, 0, PortType.INPUT); workspace.Connectors.Add(connector1); // Run Assert.DoesNotThrow(() => ViewModel.Model.RunExpression()); UpdateCodeBlockNodeContent(codeBlockNode0, @"true;"); // Check Assert.AreEqual(0, codeBlockNode0.InPortData.Count); // Run Assert.DoesNotThrow(() => ViewModel.Model.RunExpression()); // Delete the first code block node List <ModelBase> nodes = new List <ModelBase>(); nodes.Add(codeBlockNode0); ViewModel.Model.DeleteModelInternal(nodes); // Undo workspace.Undo(); }