public async Task SetTempCompAsync_SendValidRequest() { //Arrange string commandName = "tempcomp"; string tempCompParameterName = "TempComp"; bool tempCompParameterValue = true; IRestRequest sentRequest = null; var commandSenderMock = new Mock <ICommandSender>(); commandSenderMock .Setup(x => x.ExecuteRequestAsync <CommandResponse>(It.IsAny <string>(), It.IsAny <RestRequest>())) .Callback((string baseUrl, IRestRequest request) => sentRequest = request) .Returns(Task.FromResult(new CommandResponse())); var focuser = new Focuser(_deviceConfiguration, commandSenderMock.Object); //Act await focuser.SetTempCompAsync(tempCompParameterValue); //Assert Assert.Equal(Method.PUT, sentRequest.Method); AssertCommonParameters(sentRequest.Parameters, _deviceConfiguration, commandName); AssertParameter(sentRequest.Parameters, tempCompParameterName, tempCompParameterValue); }