Esempio n. 1
0
        public void UpdatePointOutputChain_HasParent_OutputCalculatedViaStrategy()
        {
            var value = "test2";
            var eid   = 1;
            var point = A.Fake <IPoint>();

            A.CallTo(() => point.Eid).Returns(eid);
            var parentValue = "test4";
            var eid2        = 2;
            var parentPoint = A.Fake <IPoint>();

            var parentEquationValue = "1+1";
            var parentEquation      = new PointEquation(5, parentEquationValue);

            var correctOutput = "output";

            var parentRelations = new List <Tuple <IPoint, PointEquation> >
            {
                new Tuple <IPoint, PointEquation>(parentPoint, parentEquation)
            };

            A.CallTo(() => _underlyingDirectedGraph.GetParentRelationOf(point))
            .Returns(parentRelations);
            A.CallTo(() => _equationCalculateStrategy.CalculateEquation(point, parentRelations)).Returns(correctOutput);


            _pointUpdateStrategy.UpdatePointOutputChain(point);

            A.CallToSet(() => point.Output).To(correctOutput).MustHaveHappened();
        }
Esempio n. 2
0
        public void DeleteEquation_AllowsReadding()
        {
            var eid      = 1;
            var equation = new PointEquation(eid, "");

            _pointGraph.AddEquation(equation);
            _pointGraph.DeleteEquation(equation);
            _pointGraph.AddEquation(equation);
        }
Esempio n. 3
0
        public void GetEquation_ValidEid_ReturnsCorrectEquation()
        {
            var eid      = 1;
            var equation = new PointEquation(eid, null);

            _pointGraph.AddEquation(equation);

            _pointGraph.GetEquation(eid).Should().Be(equation);
        }
Esempio n. 4
0
        public void AddEquation_AddTwice_ThrowsException()
        {
            var eid      = 1;
            var equation = new PointEquation(eid, "");

            _pointGraph.AddEquation(equation);

            Assert.Throws(typeof(ArgumentException), () => _pointGraph.AddEquation(equation));
        }
Esempio n. 5
0
        public void GetPoint_EidEquation_ReturnsNull()
        {
            var eid      = 1;
            var equation = new PointEquation(eid, null);

            _pointGraph.AddEquation(equation);

            _pointGraph.GetPoint(eid).Should().BeNull();
        }
Esempio n. 6
0
 public void AddEquationRelationship(IPoint from, IPoint to, PointEquation equation)
 {
     if (!(_uniqueEidConstrainer[from.Eid] is IPoint) || !(_uniqueEidConstrainer[to.Eid] is IPoint) || !(_uniqueEidConstrainer[equation.Eid] is PointEquation))
     {
         throw new KeyNotFoundException();
     }
     _graph.AddDirectedEdge(from, to, equation);
     to.Update();
 }
Esempio n. 7
0
        public void GetEquationByValue_ValidString_ReturnsCorrectEquation()
        {
            var eid      = 1;
            var equ      = "1+1";
            var equation = new PointEquation(eid, equ);

            _pointGraph.AddEquation(equation);

            _pointGraph.GetEquationByValue(equ).Should().Be(equation);
        }
Esempio n. 8
0
        public void AddPoint_InsertEquationEid_ThrowsException()
        {
            var eid   = 1;
            var point = A.Fake <IPoint>();

            A.CallTo(() => point.Eid).Returns(eid);
            var equation = new PointEquation(eid, "");

            _pointGraph.AddEquation(equation);

            Assert.Throws(typeof(ArgumentException), () => _pointGraph.AddPoint(point));
        }
Esempio n. 9
0
        public void AddEquationRelationship_ToDoesntExist_ThrowsException()
        {
            int fromEid     = 0;
            int toEid       = 1;
            int equationEid = 2;
            var fromPoint   = A.Fake <IPoint>();

            A.CallTo(() => fromPoint.Eid).Returns(fromEid);
            var toPoint = A.Fake <IPoint>();

            A.CallTo(() => fromPoint.Eid).Returns(toEid);
            var equation = new PointEquation(equationEid, null);

            _pointGraph.AddPoint(fromPoint);
            _pointGraph.AddEquation(equation);

            Assert.Throws(typeof(KeyNotFoundException), () => _pointGraph.AddEquationRelationship(fromPoint, toPoint, equation));
        }
Esempio n. 10
0
        public void AddEquationRelationship_InsertsIntoUnderlyingGraph()
        {
            int fromEid     = 0;
            int toEid       = 1;
            int equationEid = 2;
            var fromPoint   = A.Fake <IPoint>();

            A.CallTo(() => fromPoint.Eid).Returns(fromEid);
            var toPoint = A.Fake <IPoint>();

            A.CallTo(() => fromPoint.Eid).Returns(toEid);
            var equation = new PointEquation(equationEid, null);

            _pointGraph.AddPoint(fromPoint);
            _pointGraph.AddPoint(toPoint);
            _pointGraph.AddEquation(equation);

            _pointGraph.AddEquationRelationship(fromPoint, toPoint, equation);

            A.CallTo(() => _underlyingDirectedGraph.AddDirectedEdge(fromPoint, toPoint, equation)).MustHaveHappened();
        }
Esempio n. 11
0
        public void AddEquationRelationship_RaisesToPointUpdated()
        {
            int fromEid     = 0;
            int toEid       = 1;
            int equationEid = 2;
            var fromPoint   = A.Fake <IPoint>();

            A.CallTo(() => fromPoint.Eid).Returns(fromEid);
            var toPoint = A.Fake <IPoint>();

            A.CallTo(() => fromPoint.Eid).Returns(toEid);
            var equation = new PointEquation(equationEid, null);

            _pointGraph.AddPoint(fromPoint);
            _pointGraph.AddPoint(toPoint);
            _pointGraph.AddEquation(equation);
            toPoint.MonitorEvents();

            _pointGraph.AddEquationRelationship(fromPoint, toPoint, equation);

            A.CallTo(() => toPoint.Update()).MustHaveHappened();
        }
Esempio n. 12
0
 public void DeleteEquationRelationship(IPoint from, IPoint to, PointEquation equation)
 {
     _graph.RemoveDirectedEdge(from, to, equation);
 }
Esempio n. 13
0
 public void DeleteEquation(PointEquation equation)
 {
     _uniqueEidConstrainer.Remove(equation.Eid);
 }
Esempio n. 14
0
 public void AddEquation(PointEquation equation)
 {
     _uniqueEidConstrainer.Add(equation.Eid, equation);
 }