public void ProcessSetVariableValueResponse() { // Arrange const int commandId = 3; var resultFactoryMock = new Mock<IEvaluationResultFactory>(); resultFactoryMock.Setup(factory => factory.Create(It.IsAny<INodeVariable>())) .Returns(() => new NodeEvaluationResult(0, null, null, null, null, null, NodeExpressionType.None, null)); var stackFrame = new NodeStackFrame(0); const string variableName = "port"; const int handle = 40; var setVariableValueCommand = new SetVariableValueCommand(commandId, resultFactoryMock.Object, stackFrame, variableName, handle); // Act setVariableValueCommand.ProcessResponse(SerializationTestData.GetSetVariableValueResponse()); // Assert Assert.AreEqual(commandId, setVariableValueCommand.Id); Assert.IsNotNull(setVariableValueCommand.Result); resultFactoryMock.Verify(factory => factory.Create(It.IsAny<INodeVariable>()), Times.Once); }
public void CreateSetVariableValueCommand() { // Arrange const int commandId = 3; const int frameId = 1; var resultFactoryMock = new Mock<IEvaluationResultFactory>(); var stackFrame = new NodeStackFrame(frameId); const string variableName = "port"; const int handle = 40; // Act var setVariableValueCommand = new SetVariableValueCommand(commandId, resultFactoryMock.Object, stackFrame, variableName, handle); // Assert Assert.AreEqual(commandId, setVariableValueCommand.Id); Assert.AreEqual( string.Format("{{\"command\":\"setVariableValue\",\"seq\":{0},\"type\":\"request\",\"arguments\":{{\"name\":\"{1}\",\"newValue\":{{\"handle\":{2}}},\"scope\":{{\"frameNumber\":{3},\"number\":0}}}}}}", commandId, variableName, handle, frameId), setVariableValueCommand.ToString()); }
internal async Task<NodeEvaluationResult> SetVariableValueAsync( NodeStackFrame stackFrame, string name, string value, CancellationToken cancellationToken = new CancellationToken()) { DebugWriteCommand("Set Variable Value"); // Create a new value var evaluateValueCommand = new EvaluateCommand(CommandId, _resultFactory, value, stackFrame); await _client.SendRequestAsync(evaluateValueCommand, cancellationToken).ConfigureAwait(false); int handle = evaluateValueCommand.Result.Handle; // Set variable value var setVariableValueCommand = new SetVariableValueCommand(CommandId, _resultFactory, stackFrame, name, handle); await _client.SendRequestAsync(setVariableValueCommand, cancellationToken).ConfigureAwait(false); return setVariableValueCommand.Result; }