using System; using System.Collections.Generic; using UnityEngine; namespace UnityEditor.TestTools.CodeCoverage { [Serializable] internal class CoverageEventDataImplementation { [SerializeField] private SessionMode m_CoverageSessionMode; [SerializeField] private List m_CoverageSessionResultPaths; public void StartSession(SessionMode coverageSessionMode) { m_CoverageSessionMode = coverageSessionMode; m_CoverageSessionResultPaths = new List(); } public void AddSessionResultPath(string path) { if (m_CoverageSessionResultPaths != null) { m_CoverageSessionResultPaths.Add(path); } } public SessionMode CoverageSessionMode { get { return m_CoverageSessionMode; } } public List CoverageSessionResultPaths { get { return m_CoverageSessionResultPaths; } } } [Serializable] internal class CoverageEventData : ScriptableSingleton { [SerializeField] private CoverageEventDataImplementation m_CoverageEventDataImplementation = null; protected CoverageEventData() : base() { m_CoverageEventDataImplementation = new CoverageEventDataImplementation(); } public void StartSession(SessionMode coverageSessionMode) { m_CoverageEventDataImplementation.StartSession(coverageSessionMode); } public void AddSessionResultPath(string path) { m_CoverageEventDataImplementation.AddSessionResultPath(path); } public SessionEventInfo GetCoverageSessionInfo() { SessionEventInfo info = new SessionEventInfo(m_CoverageEventDataImplementation.CoverageSessionMode, m_CoverageEventDataImplementation.CoverageSessionResultPaths); return info; } } }