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(); }
public void DeleteEquation_AllowsReadding() { var eid = 1; var equation = new PointEquation(eid, ""); _pointGraph.AddEquation(equation); _pointGraph.DeleteEquation(equation); _pointGraph.AddEquation(equation); }
public void GetEquation_ValidEid_ReturnsCorrectEquation() { var eid = 1; var equation = new PointEquation(eid, null); _pointGraph.AddEquation(equation); _pointGraph.GetEquation(eid).Should().Be(equation); }
public void AddEquation_AddTwice_ThrowsException() { var eid = 1; var equation = new PointEquation(eid, ""); _pointGraph.AddEquation(equation); Assert.Throws(typeof(ArgumentException), () => _pointGraph.AddEquation(equation)); }
public void GetPoint_EidEquation_ReturnsNull() { var eid = 1; var equation = new PointEquation(eid, null); _pointGraph.AddEquation(equation); _pointGraph.GetPoint(eid).Should().BeNull(); }
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(); }
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); }
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)); }
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)); }
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(); }
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(); }
public void DeleteEquationRelationship(IPoint from, IPoint to, PointEquation equation) { _graph.RemoveDirectedEdge(from, to, equation); }
public void DeleteEquation(PointEquation equation) { _uniqueEidConstrainer.Remove(equation.Eid); }
public void AddEquation(PointEquation equation) { _uniqueEidConstrainer.Add(equation.Eid, equation); }