public void SelectedElement_SetElement_ExpectPropertyChangedEventRaised()
        {
            //Arrange
            var problemViewModel = new ProblemViewModel();
            var node1            = problemViewModel.AddNode();
            var node2            = problemViewModel.AddNode();
            var elementViewModel = problemViewModel.AddBarElement(node1, node2);

            problemViewModel.SelectedElement = null;

            var checker = new PropertyChangedEventChecker(problemViewModel);

            //Act
            problemViewModel.SelectedElement = elementViewModel;

            //Assert
            Assert.That(checker.PropertiesRaised, Is.EqualTo(new[]
            {
                "SelectedNode",
                "SelectedElement",
                "SelectedForce",
                "SelectedMaterial",
                "AvailableNodesForSelectedForces",
                "AvailableOriginNodesForSelectedElements",
                "AvailableDestinationNodesForSelectedElements"
            }));
        }
        public void Execute(object parameter)
        {
            _problemViewModel.AddBarElement(_newElementViewModel.OriginNode, _newElementViewModel.DestinationNode);

            _newElementViewModel.OriginNode      = null;
            _newElementViewModel.DestinationNode = null;
        }
        public void AddBarElement_EmptyProblem_ExpectNewElementIsSelectedElement()
        {
            //Arrange
            var problemViewModel = new ProblemViewModel();
            var node1            = problemViewModel.AddNode();
            var node2            = problemViewModel.AddNode();

            //Act
            var elementViewModel = problemViewModel.AddBarElement(node1, node2);

            //Assert
            Assert.That(problemViewModel.SelectedElement, Is.EqualTo(elementViewModel));
        }
        public void DeleteSelectedElement_SelectedElement_ExpectSelectedElementIsNull()
        {
            //Arrange
            var problemViewModel = new ProblemViewModel();
            var node1            = problemViewModel.AddNode();
            var node2            = problemViewModel.AddNode();
            var elementViewModel = problemViewModel.AddBarElement(node1, node2);

            //Act
            problemViewModel.DeleteSelectedElement();

            //Assert
            Assert.That(problemViewModel.SelectedElement, Is.Null);
        }
        public void DeleteSelectedElement_NullSelectedElement_ExpectNothingHappened()
        {
            //Arrange
            var problemViewModel = new ProblemViewModel();
            var node1            = problemViewModel.AddNode();
            var node2            = problemViewModel.AddNode();
            var elementViewModel = problemViewModel.AddBarElement(node1, node2);

            problemViewModel.SelectedElement = null;

            //Act
            //Assert
            Assert.DoesNotThrow(() => problemViewModel.DeleteSelectedElement());
        }
        public void SelectedElement_SetNullElement_ExpetNodeIsSelectedIsFalse()
        {
            //Arrange
            var problemViewModel = new ProblemViewModel();
            var node1            = problemViewModel.AddNode();
            var node2            = problemViewModel.AddNode();
            var elementViewModel = problemViewModel.AddBarElement(node1, node2);

            //Act
            problemViewModel.SelectedElement = null;

            //Assert
            Assert.That(elementViewModel.IsSelected, Is.False);
        }
        public void AddBarElement_EmptyProblem_ExpectNewElementAddedToElementsCollection()
        {
            //Arrange
            var problemViewModel = new ProblemViewModel();
            var node1            = problemViewModel.AddNode();
            var node2            = problemViewModel.AddNode();

            //Act
            var elementViewModel = problemViewModel.AddBarElement(node1, node2);

            //Assert
            var elementContained = problemViewModel.Elements.Contains(elementViewModel);

            Assert.That(elementContained, Is.True);
        }
        public void DeleteSelectedElement_SelectedElement_ExpectElementRemovedFromCollection()
        {
            //Arrange
            var problemViewModel = new ProblemViewModel();
            var node1            = problemViewModel.AddNode();
            var node2            = problemViewModel.AddNode();
            var elementViewModel = problemViewModel.AddBarElement(node1, node2);

            //Act
            problemViewModel.DeleteSelectedElement();

            //Assert
            var containsElement = problemViewModel.Elements.Contains(elementViewModel);

            Assert.That(containsElement, Is.False);
        }
        public void SelectedElement_SetElement_ExpectOtherPropertiesAreNull()
        {
            //Arrange
            var problemViewModel = new ProblemViewModel();
            var node1            = problemViewModel.AddNode();
            var node2            = problemViewModel.AddNode();
            var elementViewModel = problemViewModel.AddBarElement(node1, node2);

            problemViewModel.SelectedElement = null;

            //Act
            problemViewModel.SelectedElement = elementViewModel;

            //Assert
            Assert.That(problemViewModel.SelectedNode, Is.Null);
            Assert.That(problemViewModel.SelectedForce, Is.Null);
            Assert.That(problemViewModel.SelectedMaterial, Is.Null);
        }
        public void SelectedElement_ElementUnselectedAndElementNodesChanged_ExpectPropertyChangedEventRaised()
        {
            //Arrange
            var problemViewModel = new ProblemViewModel();
            var node1            = problemViewModel.AddNode();
            var node2            = problemViewModel.AddNode();
            var elementViewModel = problemViewModel.AddBarElement(node1, node2);

            problemViewModel.SelectedElement = null;

            var checker = new PropertyChangedEventChecker(problemViewModel);

            //Act
            elementViewModel.Origin.X = 100;

            //Assert
            Assert.That(checker.PropertiesRaised, Is.EqualTo(new[]
            {
                "ProblemCalculationViewModel"
            }));
        }
        public void SelectedElement_SelectedElementDestinationNodeChanged_ExpectPropertyChangedEventRaised()
        {
            //Arrange
            var problemViewModel = new ProblemViewModel();
            var node1            = problemViewModel.AddNode();
            var node2            = problemViewModel.AddNode();
            var elementViewModel = problemViewModel.AddBarElement(node1, node2);

            problemViewModel.SelectedElement = null;

            problemViewModel.SelectedElement = elementViewModel;
            var checker = new PropertyChangedEventChecker(problemViewModel);

            //Act
            elementViewModel.Destination.X = 100;

            //Assert
            Assert.That(checker.PropertiesRaised, Is.EqualTo(new[]
            {
                "AvailableOriginNodesForSelectedElements",
                "ProblemCalculationViewModel"
            }));
        }
        private ProblemViewModel SetupScenario()
        {
            var problemViewModel = new ProblemViewModel();

            #region nodeSetup

            var node1 = problemViewModel.AddNode();
            var node2 = problemViewModel.AddNode();
            var node3 = problemViewModel.AddNode();
            var node4 = problemViewModel.AddNode();
            var node5 = problemViewModel.AddNode();
            var node6 = problemViewModel.AddNode();
            var node7 = problemViewModel.AddNode();
            var node8 = problemViewModel.AddNode();

            node1.X        = 0;
            node1.Y        = 1;
            node1.Z        = 0;
            node1.IsXFixed = false;
            node1.IsYFixed = false;
            node1.IsZFixed = true;

            node2.X        = 0;
            node2.Y        = 0;
            node2.Z        = 0;
            node2.IsXFixed = true;
            node2.IsYFixed = true;
            node2.IsZFixed = true;

            node3.X        = 1;
            node3.Y        = 1;
            node3.Z        = 0;
            node3.IsXFixed = false;
            node3.IsYFixed = false;
            node3.IsZFixed = false;

            node4.X        = 1;
            node4.Y        = 0;
            node4.Z        = 0;
            node4.IsXFixed = false;
            node4.IsYFixed = true;
            node4.IsZFixed = true;

            node5.X        = 0;
            node5.Y        = 0;
            node5.Z        = 1;
            node5.IsXFixed = false;
            node5.IsYFixed = false;
            node5.IsZFixed = false;

            node6.X        = 1;
            node6.Y        = 0;
            node6.Z        = 1;
            node6.IsXFixed = false;
            node6.IsYFixed = false;
            node6.IsZFixed = false;

            node7.X        = 1;
            node7.Y        = 1;
            node7.Z        = 1;
            node7.IsXFixed = false;
            node7.IsYFixed = false;
            node7.IsZFixed = false;

            node8.X        = 0;
            node8.Y        = 1;
            node8.Z        = 1;
            node8.IsXFixed = false;
            node8.IsYFixed = false;
            node8.IsZFixed = false;

            #endregion

            #region forceSetup

            var force = problemViewModel.AddForce(node7);
            force.ApplicationVectorX = 1;

            #endregion

            #region elementSetup

            var element1  = problemViewModel.AddBarElement(node1, node2);
            var element2  = problemViewModel.AddBarElement(node3, node1);
            var element3  = problemViewModel.AddBarElement(node4, node3);
            var element4  = problemViewModel.AddBarElement(node2, node4);
            var element5  = problemViewModel.AddBarElement(node5, node6);
            var element6  = problemViewModel.AddBarElement(node6, node7);
            var element7  = problemViewModel.AddBarElement(node7, node8);
            var element8  = problemViewModel.AddBarElement(node8, node5);
            var element9  = problemViewModel.AddBarElement(node5, node2);
            var element10 = problemViewModel.AddBarElement(node4, node6);
            var element11 = problemViewModel.AddBarElement(node3, node7);
            var element12 = problemViewModel.AddBarElement(node8, node1);
            var element13 = problemViewModel.AddBarElement(node5, node7);
            var element14 = problemViewModel.AddBarElement(node7, node4);
            var element15 = problemViewModel.AddBarElement(node4, node1);
            var element16 = problemViewModel.AddBarElement(node1, node5);
            var element17 = problemViewModel.AddBarElement(node7, node1);
            var element18 = problemViewModel.AddBarElement(node4, node5);

            element1.CrossSectionArea  = 3.14E-06;
            element2.CrossSectionArea  = 3.14E-06;
            element3.CrossSectionArea  = 3.14E-06;
            element4.CrossSectionArea  = 3.14E-06;
            element5.CrossSectionArea  = 3.14E-06;
            element6.CrossSectionArea  = 3.14E-06;
            element7.CrossSectionArea  = 3.14E-06;
            element8.CrossSectionArea  = 3.14E-06;
            element9.CrossSectionArea  = 3.14E-06;
            element10.CrossSectionArea = 3.14E-06;
            element11.CrossSectionArea = 3.14E-06;
            element12.CrossSectionArea = 3.14E-06;
            element13.CrossSectionArea = 3.14E-06;
            element14.CrossSectionArea = 3.14E-06;
            element15.CrossSectionArea = 3.14E-06;
            element16.CrossSectionArea = 3.14E-06;
            element17.CrossSectionArea = 3.14E-06;
            element18.CrossSectionArea = 3.14E-06;

            #endregion

            #region materialSetup

            var material = problemViewModel.Materials.Single();
            material.YoungsModulus = 2.1E11;

            #endregion

            return(problemViewModel);
        }
Esempio n. 13
0
        private void SetupProblemViewModel(ProblemViewModel problemViewModel)
        {
            var node1 = problemViewModel.AddNode();
            var node2 = problemViewModel.AddNode();
            var node3 = problemViewModel.AddNode();
            var node4 = problemViewModel.AddNode();

            #region Node properties

            node2.IsXFixed = true;
            node3.IsYFixed = true;
            node4.IsZFixed = true;

            node1.X = 1;
            node2.X = 2;
            node3.X = 3;
            node4.X = 4;

            node1.Y = 11;
            node2.Y = 12;
            node3.Y = 13;
            node4.Y = 14;

            node1.Z = 21;
            node2.Z = 22;
            node3.Z = 23;
            node4.Z = 24;

            #endregion

            var element1 = problemViewModel.AddBarElement(node1, node2);
            var element2 = problemViewModel.AddBarElement(node2, node3);
            var element3 = problemViewModel.AddBarElement(node3, node4);

            var force = problemViewModel.AddForce(node1);

            force.ApplicationVectorX = 100;
            force.ApplicationVectorY = 200;
            force.ApplicationVectorZ = 300;

            var material1 = element1.Material;
            var material2 = problemViewModel.AddMaterial();
            var material3 = problemViewModel.AddMaterial();
            var material4 = problemViewModel.AddMaterial();

            #region Material properties

            material1.Name = "Aluminum1";
            material2.Name = "Aluminum2";
            material3.Name = "Aluminum3";
            material4.Name = "Aluminum4";

            material1.YoungsModulus = 1;
            material2.YoungsModulus = 12;
            material3.YoungsModulus = 123;
            material4.YoungsModulus = 1234;

            #endregion

            element1.Material = material2;
            element2.Material = material3;
            element3.Material = material4;

            #region Element properties

            element1.CrossSectionArea = 101;
            element2.CrossSectionArea = 202;
            element3.CrossSectionArea = 303;

            #endregion
        }