DemoBlazeAutomation / POM / Helper / ProductHelper.cs
ProductHelper.cs
Raw
using DemoBlazeAutomation.POM.Input;
using DemoBlazeAutomation.POM.Models;
using RazorEngine.Compilation.ImpromptuInterface.InvokeExt;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TechTalk.SpecFlow.Configuration.JsonConfig;

namespace DemoBlazeAutomation.POM.Helper
{
    /// <summary>
    /// Clase Auxiliar contiene métodos de parseo (desde transformar los elementos de ui a webelements y de webelement a obj c#) que serán usados en HomePage.
    /// </summary>
    public static class ProductHelper
    {
        /// <summary>
        /// Transforma una lista de Productos UI (IWebelements) en una lista de ProductWebElements
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public static IList<ProductWebElement> Parse(IList<IWebElement> list) => list.Select(product => new ProductWebElement(product)).ToList();

        /// <summary>
        /// Transforma una lista de IWebelements en una lista de ProductModels
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public static IList <ProductModel> Parse(IList<ProductWebElement> list) => list.Select(product => Parse(product)).ToList();
        
        /// <summary>
        /// Transforma un producto en formato WebElement en un objeto c Sharp
        /// </summary>
        /// <param name="element"></param>
        /// <returns></returns>
        public static ProductModel Parse(ProductWebElement element)
        {
            var priceCleaned= decimal.Parse(element.Price.Replace("$","").Trim());     // Elimina espacios en blanco y el signo de dólar al principio si lo hay

            return new ProductModel(element.Name, price: priceCleaned, element.Description);
        }
    }
}