/// <summary> /// Constructs a new instance of <see cref="DefaultProcessExecutor" />. /// </summary> /// <param name="concurrencyService">An implementation of <see cref="IConcurrencyService" />.</param> /// <param name="processRunner">An implementation of <see cref="IProcessRunner" />.</param> /// <param name="executionTokenGenerator">An implementation of <see cref="IExecutionTokenGenerator" /> used to generate execution tokens.</param> /// <param name="logger">The logger.</param> public DefaultProcessExecutor( IConcurrencyService concurrencyService, IProcessRunner processRunner, IExecutionTokenGenerator executionTokenGenerator, ILogger <DefaultProcessExecutor> logger) { _concurrencyService = concurrencyService ?? throw new ArgumentNullException(nameof(concurrencyService)); _processRunner = processRunner ?? throw new ArgumentNullException(nameof(processRunner)); _executionTokenGenerator = executionTokenGenerator ?? throw new ArgumentNullException(nameof(executionTokenGenerator)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public void GenerateToken_skips_inner_generator_if_token_is_not_null([Frozen] TokenOptions options, [Frozen] IExecutionTokenGenerator inner, FixedTokenExecutionTokenGeneratorAdapter sut, ProcessStartInfo startInfo, string token) { options.Token = token; _ = sut.GenerateToken(startInfo); Mock.Get(inner).Verify(p => p.GenerateToken(It.IsAny <ProcessStartInfo>()), Times.Never); }
public void GenerateToken_forwards_to_inner_generator_if_token_is_null([Frozen] TokenOptions options, [Frozen] IExecutionTokenGenerator inner, FixedTokenExecutionTokenGeneratorAdapter sut, ProcessStartInfo startInfo) { options.Token = null; _ = sut.GenerateToken(startInfo); Mock.Get(inner).Verify(p => p.GenerateToken(startInfo)); }
public void GenerateToken_returns_from_inner_generator_if_token_is_null([Frozen] TokenOptions options, [Frozen] IExecutionTokenGenerator inner, FixedTokenExecutionTokenGeneratorAdapter sut, ProcessStartInfo startInfo, string token) { Mock.Get(inner).Setup(p => p.GenerateToken(It.IsAny <ProcessStartInfo>())).Returns(token); options.Token = null; var result = sut.GenerateToken(startInfo); Assert.That(result, Is.EqualTo(token)); }
/// <summary> /// Constructs an adapter used to override the token generation process if a token is specified. /// </summary> /// <param name="inner">The adaptee.</param> /// <param name="options">The fixed token, if available.</param> public FixedTokenExecutionTokenGeneratorAdapter(IExecutionTokenGenerator inner, IOptions <TokenOptions> options) { _inner = inner ?? throw new ArgumentNullException(nameof(inner)); _options = options?.Value ?? throw new ArgumentNullException(nameof(options)); }