public void GetAlertIds(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            int scanId,
            IEnumerable <int> alertsIds)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("alertsIds", new JArray(alertsIds)));

            httpClientMock.SetupApiCall(sut, CallType.View, "alertsIds",
                                        new Parameters
            {
                { "scanId", scanId }
            })
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetAlertIds(scanId);

            // ASSERT
            result.ShouldBeEquivalentTo(alertsIds);
            httpClientMock.Verify();
        }
        public void GetPolicies(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            string scanPolicyName,
            int policyId,
            IEnumerable <Policy> policies)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("policies", JArray.FromObject(policies)));

            httpClientMock.SetupApiCall(sut, CallType.View, "policies",
                                        new Parameters
            {
                { "scanPolicyName", scanPolicyName },
                { "policyId", policyId }
            })
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetPolicies(scanPolicyName, policyId);

            // ASSERT
            result.ShouldBeEquivalentTo(policies);
            httpClientMock.Verify();
        }
        public void ComponentName(
            [Greedy] ActiveScannerComponent sut)
        {
            // ACT
            var result = sut.ComponentName;

            // ASSERT
            result.Should().Be("ascan");
        }
        public void ResumeAllScans(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut)
        {
            // ARRANGE
            httpClientMock.SetupApiCall(sut, CallType.Action, "resumeAllScans")
            .ReturnsOkResult()
            .Verifiable();

            // ACT
            sut.ResumeAllScans();

            // ASSERT
            httpClientMock.Verify();
        }
        public void ClearExcludedFromScan(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut)
        {
            // ARRANGE
            httpClientMock.SetupApiCall(sut, CallType.Action, "clearExcludedFromScan")
            .ReturnsOkResult()
            .Verifiable();

            // ACT
            sut.ClearExcludedFromScan();

            // ASSERT
            httpClientMock.Verify();
        }
        public void GetAttackModeQueue_MinusValue_ReturnsNull(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("attackModeQueue", "-1"));

            httpClientMock.SetupApiCall(sut, CallType.View, "attackModeQueue")
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetAttackModeQueue();

            // ASSERT
            result.Should().NotHaveValue();
            httpClientMock.Verify();
        }
        public void GetOptionRescanInAttackMode(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            bool rescanInAttackMode)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("RescanInAttackMode", $"{rescanInAttackMode}"));

            httpClientMock.SetupApiCall(sut, CallType.View, "optionRescanInAttackMode")
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetOptionRescanInAttackMode();

            // ASSERT
            result.Should().Be(rescanInAttackMode);
            httpClientMock.Verify();
        }
        public void GetOptionThreadPerHost(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            int threadPerHost)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("ThreadPerHost", $"{threadPerHost}"));

            httpClientMock.SetupApiCall(sut, CallType.View, "optionThreadPerHost")
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetOptionThreadPerHost();

            // ASSERT
            result.Should().Be(threadPerHost);
            httpClientMock.Verify();
        }
        public void GetOptionTargetParamsInjectable(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            TargetInjectable targetParamsInjectable)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("TargetParamsInjectable", $"{targetParamsInjectable}"));

            httpClientMock.SetupApiCall(sut, CallType.View, "optionTargetParamsInjectable")
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetOptionTargetParamsInjectable();

            // ASSERT
            result.Should().Be(targetParamsInjectable);
            httpClientMock.Verify();
        }
        public void GetOptionShowAdvancedDialog(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            bool showAdvancedDialog)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("ShowAdvancedDialog", $"{showAdvancedDialog}"));

            httpClientMock.SetupApiCall(sut, CallType.View, "optionShowAdvancedDialog")
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetOptionShowAdvancedDialog();

            // ASSERT
            result.Should().Be(showAdvancedDialog);
            httpClientMock.Verify();
        }
        public void SetOptionDefaultPolicy(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            string value)
        {
            // ARRANGE
            httpClientMock.SetupApiCall(sut, CallType.Action, "setOptionDefaultPolicy",
                                        new Parameters
            {
                { "String", value }
            })
            .ReturnsOkResult()
            .Verifiable();

            // ACT
            sut.SetOptionDefaultPolicy(value);

            // ASSERT
            httpClientMock.Verify();
        }
        public void GetOptionPromptToClearFinishedScans(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            bool promptToClearFinishScans)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("PromptToClearFinishedScans", $"{promptToClearFinishScans}"));

            httpClientMock.SetupApiCall(sut, CallType.View, "optionPromptToClearFinishedScans")
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetOptionPromptToClearFinishedScans();

            // ASSERT
            result.Should().Be(promptToClearFinishScans);
            httpClientMock.Verify();
        }
        public void GetOptionMaxScansInUI(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            int maxScansInUI)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("MaxScansInUI", $"{maxScansInUI}"));

            httpClientMock.SetupApiCall(sut, CallType.View, "optionMaxScansInUI")
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetOptionMaxScansInUI();

            // ASSERT
            result.Should().Be(maxScansInUI);
            httpClientMock.Verify();
        }
        public void SetOptionShowAdvancedDialog(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            bool value)
        {
            // ARRANGE
            httpClientMock.SetupApiCall(sut, CallType.Action, "setOptionShowAdvancedDialog",
                                        new Parameters
            {
                { "Boolean", value }
            })
            .ReturnsOkResult()
            .Verifiable();

            // ACT
            sut.SetOptionShowAdvancedDialog(value);

            // ASSERT
            httpClientMock.Verify();
        }
        public void GetScans(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            IEnumerable <ActiveScan> scans)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("scans", JArray.FromObject(scans)));

            httpClientMock.SetupApiCall(sut, CallType.View, "scans")
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetScans();

            // ASSERT
            result.ShouldBeEquivalentTo(scans);
            httpClientMock.Verify();
        }
        public void GetOptionDelayInMilliseconds(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            int delayInMilliseconds)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("DelayInMs", $"{delayInMilliseconds}"));

            httpClientMock.SetupApiCall(sut, CallType.View, "optionDelayInMs")
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetOptionDelayInMs();

            // ASSERT
            result.Should().Be(delayInMilliseconds);
            httpClientMock.Verify();
        }
        public void GetOptionAttackPolicy(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            string attackPolicy)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("AttackPolicy", $"{attackPolicy}"));

            httpClientMock.SetupApiCall(sut, CallType.View, "optionAttackPolicy")
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetOptionAttackPolicy();

            // ASSERT
            result.Should().Be(attackPolicy);
            httpClientMock.Verify();
        }
        public void SetOptionThreadPerHost(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            int value)
        {
            // ARRANGE
            httpClientMock.SetupApiCall(sut, CallType.Action, "setOptionThreadPerHost",
                                        new Parameters
            {
                { "Integer", value }
            })
            .ReturnsOkResult()
            .Verifiable();

            // ACT
            sut.SetOptionThreadPerHost(value);

            // ASSERT
            httpClientMock.Verify();
        }
        public void SetEnabledPolicies(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            IEnumerable <int> policyIds)
        {
            // ARRANGE
            httpClientMock.SetupApiCall(sut, CallType.Action, "setEnabledPolicies",
                                        new Parameters
            {
                { "ids", policyIds.ToString(",") }
            })
            .ReturnsOkResult()
            .Verifiable();

            // ACT
            sut.SetEnabledPolicies(policyIds);

            // ASSERT
            httpClientMock.Verify();
        }
        public void Resume(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            int scanId)
        {
            // ARRANGE
            httpClientMock.SetupApiCall(sut, CallType.Action, "resume",
                                        new Parameters
            {
                { "scanId", scanId }
            })
            .ReturnsOkResult()
            .Verifiable();

            // ACT
            sut.Resume(scanId);

            // ASSERT
            httpClientMock.Verify();
        }
        public void GetExcludedFromScan(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            IEnumerable <string> excludedFromScan)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("excludedFromScan", new JArray(excludedFromScan)));

            httpClientMock.SetupApiCall(sut, CallType.View, "excludedFromScan")
            .Returns(json.ToString())
            .Verifiable();

            // ACT
            var result = sut.GetExcludedFromScan();

            // ASSERT
            result.ShouldBeEquivalentTo(excludedFromScan);
            httpClientMock.Verify();
        }
        public void RemoveScanPolicy(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            string scanPolicyName)
        {
            // ARRANGE
            httpClientMock.SetupApiCall(sut, CallType.Action, "removeScanPolicy",
                                        new Parameters
            {
                { "scanPolicyName", scanPolicyName }
            })
            .ReturnsOkResult()
            .Verifiable();

            // ACT
            sut.RemoveScanPolicy(scanPolicyName);

            // ASSERT
            httpClientMock.Verify();
        }
        public void ExcludeFromScan(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            string regexPattern)
        {
            // ARRANGE
            httpClientMock.SetupApiCall(sut, CallType.Action, "excludeFromScan",
                                        new Parameters
            {
                { "regex", regexPattern }
            })
            .ReturnsOkResult()
            .Verifiable();

            // ACT
            sut.ExcludeFromScan(regexPattern);

            // ASSERT
            httpClientMock.Verify();
        }
        public void GetOptionExcludedParamList(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            IEnumerable <string> excludedParamList)
        {
            // ARRANGE
            var json = new JObject(
                new JProperty("ExcludedParamList", excludedParamList.ToJsonStringList()));

            httpClientMock.SetupApiCall(sut, CallType.View, "optionExcludedParamList")
            .Returns(json.ToString())
            .Verifiable();

            // ACT
#pragma warning disable CS0618 // Type or member is obsolete
            var result = sut.GetOptionExcludedParamList();
#pragma warning restore CS0618 // Type or member is obsolete

            // ASSERT
            result.ShouldBeEquivalentTo(excludedParamList);
            httpClientMock.Verify();
        }
        public void SetScannerAlertThreshold(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            int scannerId,
            AlertThreshold alertThreshold,
            string scanPolicyName)
        {
            // ARRANGE
            httpClientMock.SetupApiCall(sut, CallType.Action, "setScannerAlertThreshold",
                                        new Parameters
            {
                { "id", scannerId },
                { "alertThreshold", alertThreshold },
                { "scanPolicyName", scanPolicyName }
            })
            .ReturnsOkResult()
            .Verifiable();

            // ACT
            sut.SetScannerAlertThreshold(scannerId, alertThreshold, scanPolicyName);

            // ASSERT
            httpClientMock.Verify();
        }
        public void SetScannerAttackStrength(
            [Frozen] Mock <IHttpClient> httpClientMock,
            [Greedy] ActiveScannerComponent sut,
            int policyId,
            AttackStrength attackStrength,
            string scanPolicyName)
        {
            // ARRANGE
            httpClientMock.SetupApiCall(sut, CallType.Action, "setScannerAttackStrength",
                                        new Parameters
            {
                { "id", policyId },
                { "attackStrength", attackStrength },
                { "scanPolicyName", scanPolicyName }
            })
            .ReturnsOkResult()
            .Verifiable();

            // ACT
            sut.SetScannerAttackStrength(policyId, attackStrength, scanPolicyName);

            // ASSERT
            httpClientMock.Verify();
        }