public void FromAgentOptionsThrows_Both()
        {
            var agentOptions = new AgentOptions
            {
                ApplicationId           = _processId,
                ApplicationStartCommand = _startCmd
            };

            Assert.Throws <ArgumentException>(() => DebuggerOptions.FromAgentOptions(agentOptions));
        }
        public void FromAgentOptions()
        {
            var agentOptions = new AgentOptions
            {
                ApplicationId = _processId,
            };
            var options = DebuggerOptions.FromAgentOptions(agentOptions);

            Assert.False(options.PropertyEvaluation);
            Assert.False(options.MethodEvaluation);
            Assert.Null(options.ApplicationStartCommand);
            Assert.Equal(_processId, options.ApplicationId);
            Assert.StartsWith(Constants.PipeName, options.PipeName);
        }
        public void FromAgentOptions_ConditionEval()
        {
            var agentOptions = new AgentOptions
            {
                ApplicationStartCommand = _startCmd,
                MethodEvaluation        = true
            };
            var options = DebuggerOptions.FromAgentOptions(agentOptions);

            Assert.False(options.PropertyEvaluation);
            Assert.True(options.MethodEvaluation);
            Assert.Null(options.ApplicationId);
            Assert.Equal(_startCmd, options.ApplicationStartCommand);
            Assert.StartsWith(Constants.PipeName, options.PipeName);
        }
        public void ToString_StartCommand()
        {
            var agentOptions = new AgentOptions
            {
                ApplicationStartCommand = _startCmd,
            };
            var options       = DebuggerOptions.FromAgentOptions(agentOptions);
            var optionsString = options.ToString();

            Assert.Contains($"{DebuggerOptions.PipeNameOption}={Constants.PipeName}", optionsString);
            Assert.Contains($"{DebuggerOptions.ApplicationStartCommandOption}=\"{_startCmd}\"", optionsString);
            Assert.DoesNotContain(DebuggerOptions.PropertyEvaluationOption, optionsString);
            Assert.DoesNotContain(DebuggerOptions.MethodEvaluationOption, optionsString);
            Assert.DoesNotContain(DebuggerOptions.ApplicationIdOption, optionsString);
        }
        public void ToString_ApplicationId()
        {
            var agentOptions = new AgentOptions
            {
                ApplicationId      = _processId,
                PropertyEvaluation = true,
                MethodEvaluation   = true,
            };
            var options       = DebuggerOptions.FromAgentOptions(agentOptions);
            var optionsString = options.ToString();

            Assert.Contains($"{DebuggerOptions.PipeNameOption}={Constants.PipeName}", optionsString);
            Assert.Contains($"{DebuggerOptions.ApplicationIdOption}={_processId}", optionsString);
            Assert.Contains($"{DebuggerOptions.PropertyEvaluationOption}", optionsString);
            Assert.Contains($"{DebuggerOptions.MethodEvaluationOption}", optionsString);
            Assert.DoesNotContain(DebuggerOptions.ApplicationStartCommandOption, optionsString);
        }
 public void FromAgentOptionsThrows_None() =>
 Assert.Throws <ArgumentException>(() => DebuggerOptions.FromAgentOptions(new AgentOptions()));