Skv.cs 2.67 KB
/* Skatteverkets plugins
   (C) Skatteverket Svenska STATEN!!!
   */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.WebTesting;
using System.ComponentModel;
using System.Text.RegularExpressions;

namespace LIL_VSTT_Plugins
{
    [DisplayName("Validera Header")]
    [Description("(C) Mårten\r\nValiderar att en header har ett visst värde i svaret.")]
    public class ValidateHeader : ValidationRule
    {
        [DisplayName("Header Namn"), DefaultValue(""), Description("Namnet på headern i svaret")]
        public string HeaderName { get; set; }

        [DisplayName("Värde"), DefaultValue(""), Description("Värdet som headern ska ha")]
        public string HeaderValue { get; set; }

        public override void Validate(object sender, ValidationEventArgs e)
        {
            e.IsValid = false;
            e.Message = "Default triggades. False! Check the code!!";
            if (e.Response.Headers[HeaderName] == HeaderValue)
            {
                e.IsValid = true;
                e.Message = "Hittade header " + HeaderName + " med värde " + HeaderValue;
            } else
            {
                e.IsValid = false;
                e.Message = "Hittande ingen header med namnet " + HeaderName + " och värdet " + HeaderValue;
            }
        }
    }

    [DisplayName("Validate Response URL")]
    [Description("(C) Mårten\r\nValiderar att en Response URL har ett visst värde eller inte.")]
    public class ValidateResponseURL : ValidationRule
    {
        Regex rxRegExp = null;

        [DisplayName("Regular expression"), DefaultValue(""), Description("Uttrycket som ska matcha Response URL")]
        public string strRegExp { get; set; }

        [DisplayName("Pass if found"), DefaultValue(false), Description("Om uttrycket matchar ska testet failas eller inte?")]
        public bool boolPassIfFound { get; set; }

        public override void Validate(object sender, ValidationEventArgs e)
        {
            e.IsValid = false;
            e.Message = "Default triggades. False! Check the code!!";

            if (rxRegExp == null)
            {
                rxRegExp = new Regex(strRegExp);
            }
            if (rxRegExp.IsMatch(e.Response.ResponseUri.AbsoluteUri))
            {
                e.IsValid = boolPassIfFound;
                e.Message = "" + e.Response.ResponseUri.AbsoluteUri + " matchade  uttrycket!";
            }
            else
            {
                e.IsValid = !boolPassIfFound;
                e.Message = "" + e.Response.ResponseUri.AbsoluteUri + " matchade inte uttrycket!";
            }

        }

    }

 }