using System;

namespace QC.QsprTestObjects.Tests.Base;

public class TestRuntimeAttributes
{
	private bool rightClickTest;

	private bool failed;

	private bool exception;

	private bool skipped;

	private StopOnErrorTypes stopOnError;

	private PostConditionActions postConditionAction;

	private bool testRan;

	private bool tool;

	private DateTime testStartTime = DateTime.Now;

	private bool hasPassedOnce;

	private bool hasFailedOnce;

	private int? currentLoopIteration = null;

	private int? maxLoopIteration = null;

	private bool stopLoop;

	public bool TestRan
	{
		get
		{
			return testRan;
		}
		set
		{
			testRan = value;
		}
	}

	public bool RightClickTest
	{
		get
		{
			return rightClickTest;
		}
		set
		{
			rightClickTest = value;
		}
	}

	public bool Failed
	{
		get
		{
			return failed;
		}
		set
		{
			failed = value;
		}
	}

	public bool Exception
	{
		get
		{
			return exception;
		}
		set
		{
			exception = value;
		}
	}

	public bool Skipped
	{
		get
		{
			return skipped;
		}
		set
		{
			skipped = value;
		}
	}

	public StopOnErrorTypes StopOnError
	{
		get
		{
			return stopOnError;
		}
		set
		{
			stopOnError = value;
		}
	}

	public bool Tool
	{
		get
		{
			return tool;
		}
		set
		{
			tool = value;
		}
	}

	public PostConditionActions PostConditionAction
	{
		get
		{
			return postConditionAction;
		}
		set
		{
			postConditionAction = value;
		}
	}

	public bool StopLoop
	{
		get
		{
			return stopLoop;
		}
		set
		{
			stopLoop = value;
		}
	}

	public DateTime TestStartTime
	{
		get
		{
			return testStartTime;
		}
		set
		{
			testStartTime = value;
		}
	}

	public DateTime TestStopTime { get; set; }

	public bool HasPassedOnce
	{
		get
		{
			return hasPassedOnce;
		}
		set
		{
			hasPassedOnce = value;
		}
	}

	public bool HasFailedOnce
	{
		get
		{
			return hasFailedOnce;
		}
		set
		{
			hasFailedOnce = value;
		}
	}

	public int? CurrentLoopIteration
	{
		get
		{
			return currentLoopIteration;
		}
		set
		{
			currentLoopIteration = value;
		}
	}

	public int? MaxLoopIteration
	{
		get
		{
			return maxLoopIteration;
		}
		set
		{
			maxLoopIteration = value;
		}
	}

	public void Reset()
	{
		rightClickTest = false;
		failed = false;
		exception = false;
		tool = false;
		stopOnError = StopOnErrorTypes.None;
		postConditionAction = PostConditionActions.None;
		testRan = false;
		stopLoop = false;
	}

	public void ResetLoopStateInfo()
	{
		hasFailedOnce = false;
		hasPassedOnce = false;
		currentLoopIteration = null;
		maxLoopIteration = null;
	}
}
