- all components, componentCfg-s and parameter providers use base classes - less boilerplate code, simpler access to test/procedure parameters from code - CreateTestParams(test), CreateProcedureParams(procedure) methods added - TestBenchSim class is made static, it is not inheritted by any device anymore
103 lines
2.5 KiB
C#
103 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.Xml.Serialization;
|
|
|
|
namespace TBF.BenchControl
|
|
{
|
|
public class TestParamsBase : Generic.ITestParams
|
|
{
|
|
protected Entities.ComponentTest testParamsEntity;
|
|
|
|
public string ComponentName { get { return componentName; } }
|
|
protected string componentName;
|
|
|
|
public Entities.Test Test { get { return test; } }
|
|
protected Entities.Test test;
|
|
|
|
/// <summary>
|
|
/// Parameterless constructor required for serialization
|
|
/// </summary>
|
|
public TestParamsBase()
|
|
{
|
|
InitializeAll();
|
|
}
|
|
|
|
/// <summary> To be overridden </summary>
|
|
public virtual void InitializeAll()
|
|
{
|
|
}
|
|
|
|
/// <summary> To be overridden </summary>
|
|
public virtual void UpdateTestParams(Entities.ComponentTest dbEntity)
|
|
{
|
|
}
|
|
|
|
public void UpdateTestParams(string cmpntName, Entities.Test test)
|
|
{
|
|
/// Search for an existing matching entity
|
|
foreach (var tstPrms in test.MoreParams)
|
|
{
|
|
if (tstPrms.CmpntName.Equals(cmpntName))
|
|
{
|
|
UpdateTestParams(tstPrms);
|
|
return;
|
|
}
|
|
}
|
|
|
|
/// Create a new entity and add it to the list test.MoreParams
|
|
InitializeAll();
|
|
Entities.ComponentTest componentTest = ToDbEntity(cmpntName, test);
|
|
test.MoreParams.Add(componentTest);
|
|
}
|
|
|
|
public TBF.Entities.ComponentTest ToDbEntity(string componentName, Entities.Test test)
|
|
{
|
|
using (var writer = new StringWriter())
|
|
{
|
|
/// Serialize this class with parameters
|
|
(new XmlSerializer(GetType())).Serialize(writer, this);
|
|
|
|
/// Create and return the ComponentTest entity
|
|
TBF.Entities.ComponentTest entity = new TBF.Entities.ComponentTest();
|
|
entity.CmpntName = componentName;
|
|
entity.Parameters = writer.ToString();
|
|
entity.Test = test;
|
|
return entity;
|
|
}
|
|
}
|
|
|
|
public void UpdateDbEntity()
|
|
{
|
|
using (var writer = new StringWriter())
|
|
{
|
|
/// Serialize this class and update the entity
|
|
(new XmlSerializer(GetType())).Serialize(writer, this);
|
|
testParamsEntity.Parameters = writer.ToString();
|
|
testParamsEntity.CmpntName = componentName;
|
|
testParamsEntity.Test = test;
|
|
}
|
|
}
|
|
|
|
public virtual string ParamName(int i) { return string.Empty; }
|
|
|
|
public virtual int ParamsCount() { return 0; }
|
|
|
|
public virtual string ToString(int i) { return string.Empty; }
|
|
|
|
public override string ToString()
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
for (int i = 0; i < ParamsCount(); i++)
|
|
{
|
|
if (i != 0) sb.Append("; ");
|
|
sb.Append(ParamName(i));
|
|
sb.Append("=");
|
|
sb.Append(ToString(i));
|
|
}
|
|
return sb.ToString();
|
|
}
|
|
}
|
|
}
|