public void TestPartialRebuild(string testName, State.UIRebuildType rebuildType, Func <VSGraphModel, IAction> getAction) { var action = getAction(GraphModel); Store.Dispatch(new RefreshUIAction(UpdateFlags.All)); Store.Update(); State state = Store.GetState(); // save state to watch UI re-building state // good enough for tests #pragma warning disable 612 Store.DispatchDynamicSlow(action); #pragma warning restore 612 Store.Update(); Assert.That(state.lastActionUIRebuildType, Is.EqualTo(rebuildType)); }
static object[] MakeActionSetup <T, TAction>( List <T> modelList, int numModels, Func <VSGraphModel, int, T> makeModel, Func <VSGraphModel, TAction> getAction, State.UIRebuildType rebuildType = State.UIRebuildType.Partial) where T : IGraphElementModel where TAction : IAction { Func <VSGraphModel, TAction> f = graphModel => { modelList.Capacity = numModels + 1; modelList.Clear(); for (int i = 0; i < numModels; i++) { modelList.Add(makeModel(graphModel, i)); } return(getAction(graphModel)); }; return(new object[] { typeof(T).Name, rebuildType, f }); }
static object[] MakeActionTest <T>(Func <VSGraphModel, T> getAction, State.UIRebuildType rebuildType = State.UIRebuildType.Partial) where T : IAction { return(new object[] { typeof(T).Name, rebuildType, getAction }); }
static object[] MakeActionTest <T>(T action, State.UIRebuildType rebuildType = State.UIRebuildType.Partial) where T : IAction { Func <VSGraphModel, IAction> setupFunc = model => action; return(new object[] { typeof(T).Name, rebuildType, setupFunc }); }
static object[] MakeEdgeActionSetup <TAction>(TestContext ctx, int numEdges, Func <VSGraphModel, TAction> getAction, State.UIRebuildType rebuildType = State.UIRebuildType.Partial) where TAction : IAction { Func <VSGraphModel, TAction> f = graphModel => { ctx.InputPorts.Capacity = numEdges; ctx.OutputPorts.Capacity = numEdges; ctx.InputPorts.Clear(); ctx.OutputPorts.Clear(); for (int i = 0; i < numEdges; i++) { ConstantNodeModel c = (ConstantNodeModel)graphModel.CreateConstantNode("Const" + i, typeof(int).GenerateTypeHandle(graphModel.Stencil), Vector2.zero); UnaryOperatorNodeModel op = graphModel.CreateUnaryOperatorNode(UnaryOperatorKind.Minus, Vector2.zero); ctx.InputPorts.Add(op.InputPort as PortModel); ctx.OutputPorts.Add(c.OutputPort as PortModel); } return(getAction(graphModel)); }; return(new object[] { typeof(TAction).Name, rebuildType, f }); }