public virtual void AddData(SequenceResultData sequenceResult) { Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(sequenceResult); string cmd = SqlCommandFactory.CreateInsertCmd(DataBaseItemNames.SequenceTableName, columnToValue); ExecuteWriteCommand(cmd); }
private void PrintSequenceResults(StreamWriter sw, string runtimeHash, int sessionId) { IList <SequenceResultData> sequenceResultList = _dataMaintainer.GetSequenceResults(runtimeHash, sessionId); //List中循环每个sequence SequenceResultData teardownResult = sequenceResultList.FirstOrDefault(item => item.SequenceIndex == CommonConst.TeardownIndex); sequenceResultList.Remove(teardownResult); sequenceResultList.Add(teardownResult); foreach (SequenceResultData sequenceResult in sequenceResultList) { WriteRecord(sw, 2, "SequenceName", sequenceResult.Name); WriteRecord(sw, 2, "SequenceDescription", sequenceResult.Description); WriteRecord(sw, 2, "SequenceIndex", sequenceResult.SequenceIndex.ToString()); WriteRecord(sw, 2, "SequenceResult", sequenceResult.Result.ToString()); WriteRecord(sw, 2, "StartTime", sequenceResult.StartTime.ToString(DateFormat)); WriteRecord(sw, 2, "EndTime", sequenceResult.EndTime.ToString(DateFormat)); WriteRecord(sw, 2, "ElapsedTime", (sequenceResult.ElapsedTime / 1000).ToString(DoubleFormat)); if (sequenceResult.Result == Runtime.RuntimeState.Failed && null != sequenceResult.FailInfo) { WriteRecord(sw, 2, "FailedInfo", sequenceResult.FailInfo.Message); WriteRecord(sw, 2, "FailedStack", sequenceResult.FailStack); } PrintRuntimeStatus(sw, runtimeHash, sessionId, sequenceResult.SequenceIndex); sw.WriteLine(); } }
public virtual IList <SequenceResultData> GetSequenceResults(string runtimeHash, int sessionId) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.SessionIdColumn}={sessionId}"; string cmd = SqlCommandFactory.CreateQueryCmd(filter, DataBaseItemNames.SequenceTableName); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { List <SequenceResultData> resultDatas = new List <SequenceResultData>(10); while (dataReader.Read()) { SequenceResultData sequenceResultData = new SequenceResultData(); DataModelMapper.ReadToObject(dataReader, sequenceResultData); resultDatas.Add(sequenceResultData); } return(resultDatas); } }
public virtual void UpdateData(SequenceResultData sequenceResult) { SequenceResultData lastSequenceResult = InternalGetSequenceResultData(sequenceResult.RuntimeHash, sequenceResult.Session, sequenceResult.SequenceIndex); Dictionary <string, string> lastSequenceValues = DataModelMapper.GetColumnValueMapping(lastSequenceResult); Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(sequenceResult); string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{sequenceResult.RuntimeHash}' AND {DataBaseItemNames.SessionIdColumn}={sequenceResult.Session} AND {DataBaseItemNames.SequenceIndexColumn}={sequenceResult.SequenceIndex}"; string cmd = SqlCommandFactory.CreateUpdateCmd(DataBaseItemNames.SequenceTableName, lastSequenceValues, columnToValue, filter); ExecuteWriteCommand(cmd); }
protected SequenceResultData InternalGetSequenceResultData(string runtimeHash, int sessionId, int sequenceIndex) { string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.SessionIdColumn}={sessionId} AND " + $"{DataBaseItemNames.SequenceIndexColumn}={sequenceIndex}"; string cmd = SqlCommandFactory.CreateQueryCmd(filter, DataBaseItemNames.SequenceTableName); using (DbDataReader dataReader = ExecuteReadCommand(cmd)) { SequenceResultData sequenceResultData = null; if (dataReader.Read()) { sequenceResultData = new SequenceResultData(); DataModelMapper.ReadToObject(dataReader, sequenceResultData); } return(sequenceResultData); } }
private static SequenceResultData CreateSequenceResult(int instanceId, int sessionid, int sequence) { SequenceResultData sequenceResult = new SequenceResultData() { RuntimeHash = $"RuntimeHash{instanceId}", Name = $"Session{sessionid}", Description = $"InstanceDescription{sessionid}", Session = sessionid, SequenceIndex = sequence, Result = RuntimeState.Success, StartTime = DateTime.Now - new TimeSpan(0, 0, 1, 1), EndTime = DateTime.Now - new TimeSpan(0, 0, 0, 1), ElapsedTime = 10000, FailInfo = null, FailStack = "" }; return(sequenceResult); }
public SequenceStateHandle(int session, ISequence sequence, StateManageContext stateManageContext) { this.Session = session; this._sequence = sequence; this.SequenceIndex = sequence.Index; this.State = RuntimeState.Idle; this._eventDispatcher = stateManageContext.EventDispatcher; this._stateManageContext = stateManageContext; this.BlockedTime = TimeSpan.Zero; this._blockedStart = DateTime.MaxValue; this.RunStack = CallStack.GetEmptyStack(session, sequence.Index); _sequenceTestResult = this._stateManageContext.GetSequenceResults(Session, SequenceIndex); _sequenceResultData = new SequenceResultData() { Name = sequence.Name, Description = sequence.Description, StartTime = DateTime.MaxValue, EndTime = DateTime.MaxValue, CoroutineId = -1, ElapsedTime = 0, RuntimeHash = stateManageContext.RuntimeHash, FailInfo = null, Result = RuntimeState.Idle, FailStack = null, Session = session, SequenceIndex = sequence.Index, }; _stateManageContext.DatabaseProxy.WriteData(_sequenceResultData); _statusData = new RuntimeStatusData() { RuntimeHash = _stateManageContext.RuntimeHash, Sequence = this.SequenceIndex, Session = Session, Stack = string.Empty, Time = CurrentTime, ElapsedTime = this.ElapsedTime.TotalMilliseconds, Result = StepResult.NotAvailable, WatchData = null, StatusIndex = -1 }; }
public ResultManagerTest() { #region 创建并初始化假的TestFlowRunner, 将创建的DataMaintainer赋予它 Type runnerType = typeof(TestflowRunner); //默认options TestflowRunnerOptions option = new TestflowRunnerOptions(); //创建假的TestFlowRunner FakeTestflowRunner fakeTestflowRunner = new FakeTestflowRunner(option); Type intType = typeof(int); //用反射将获取private fieldInfo,然后赋值fake FieldInfo fieldInfo = runnerType.GetField("_runnerInst", BindingFlags.Static | BindingFlags.NonPublic); fieldInfo.SetValue(null, fakeTestflowRunner); _dataMaintainer = new DataMaintainer.DataMaintainer(); fakeTestflowRunner.SetDataMaintainer(_dataMaintainer); fakeTestflowRunner.Initialize(); #endregion _resultManager = new ResultManager.ResultManager(); #region 用此类里的方法创建测试用数据 _testInstanceData1 = CreateTestInstance(1); _sessionResultData11 = CreateSessionResult(1, 1); _sequenceResultData111 = CreateSequenceResult(1, 1, 1); _sequenceResultData112 = CreateSequenceResult(1, 1, 2); _runtimeStatusData1111 = CreateRuntimeStatusData(1, 1, 1, 1); _runtimeStatusData1112 = CreateRuntimeStatusData(1, 1, 2, 2); _sessionResultData12 = CreateSessionResult(1, 2); _sequenceResultData121 = CreateSequenceResult(1, 2, 1); _sequenceResultData122 = CreateSequenceResult(1, 2, 2); _runtimeStatusData1211 = CreateRuntimeStatusData(1, 2, 1, 3); _runtimeStatusData1212 = CreateRuntimeStatusData(1, 2, 2, 4); _performanceStatus111 = CreatePerformanceData(1, 1, 1); _performanceStatus112 = CreatePerformanceData(1, 1, 2); _performanceStatus121 = CreatePerformanceData(1, 2, 3); _performanceStatus122 = CreatePerformanceData(1, 2, 4); _testInstanceData2 = CreateTestInstance(2); _sessionResultData21 = CreateSessionResult(2, 1); _sequenceResultData211 = CreateSequenceResult(2, 1, 1); _sequenceResultData212 = CreateSequenceResult(2, 1, 2); _runtimeStatusData2111 = CreateRuntimeStatusData(2, 1, 1, 1); _runtimeStatusData2112 = CreateRuntimeStatusData(2, 1, 2, 2); _sessionResultData22 = CreateSessionResult(2, 2); _sequenceResultData221 = CreateSequenceResult(2, 2, 1); _sequenceResultData222 = CreateSequenceResult(2, 2, 2); _runtimeStatusData2211 = CreateRuntimeStatusData(2, 2, 1, 3); _runtimeStatusData2212 = CreateRuntimeStatusData(2, 2, 2, 4); _performanceStatus211 = CreatePerformanceData(2, 1, 1); _performanceStatus212 = CreatePerformanceData(2, 1, 2); _performanceStatus221 = CreatePerformanceData(2, 2, 3); _performanceStatus222 = CreatePerformanceData(2, 2, 4); #endregion #region 初始化_dataMaintainer // 只有DesigntimeInitialize可以删掉记录 _dataMaintainer.DesigntimeInitialize(); // 删除记录 _dataMaintainer.DeleteTestInstance($"RuntimeHash='{_testInstanceData1.RuntimeHash}'"); _dataMaintainer.DeleteTestInstance($"RuntimeHash='{_testInstanceData2.RuntimeHash}'"); // 只有RuntimeInitialize可以新增记录 _dataMaintainer.RuntimeInitialize(); #endregion #region 添加数据到数据库 _dataMaintainer.AddData(_testInstanceData1); _dataMaintainer.AddData(_sessionResultData11); _dataMaintainer.AddData(_sequenceResultData111); _dataMaintainer.AddData(_sequenceResultData112); _dataMaintainer.AddData(_sessionResultData12); _dataMaintainer.AddData(_sequenceResultData121); _dataMaintainer.AddData(_sequenceResultData122); _dataMaintainer.AddData(_runtimeStatusData1211); _dataMaintainer.AddData(_runtimeStatusData1212); _dataMaintainer.AddData(_runtimeStatusData1111); _dataMaintainer.AddData(_runtimeStatusData1112); _dataMaintainer.AddData(_performanceStatus111); _dataMaintainer.AddData(_performanceStatus112); _dataMaintainer.AddData(_performanceStatus121); _dataMaintainer.AddData(_performanceStatus122); _dataMaintainer.AddData(_testInstanceData2); _dataMaintainer.AddData(_sessionResultData21); _dataMaintainer.AddData(_sequenceResultData211); _dataMaintainer.AddData(_sequenceResultData212); _dataMaintainer.AddData(_sessionResultData22); _dataMaintainer.AddData(_sequenceResultData221); _dataMaintainer.AddData(_sequenceResultData222); _dataMaintainer.AddData(_runtimeStatusData2211); _dataMaintainer.AddData(_runtimeStatusData2212); _dataMaintainer.AddData(_runtimeStatusData2111); _dataMaintainer.AddData(_runtimeStatusData2112); _dataMaintainer.AddData(_performanceStatus211); _dataMaintainer.AddData(_performanceStatus212); _dataMaintainer.AddData(_performanceStatus221); _dataMaintainer.AddData(_performanceStatus222); #endregion }
public void WriteData(SequenceResultData result) { _dataMaintainer.AddData(result); }
public void UpdateData(SequenceResultData result) { _dataMaintainer.UpdateData(result); }
public void WriteData(SequenceResultData result) { // TODO }
public void UpdateData(SequenceResultData result) { // TODO }
public override void UpdateData(SequenceResultData sequenceResult) { throw new System.InvalidOperationException(); }
public DataMaintainTest() { Type runnerType = typeof(TestflowRunner); TestflowRunnerOptions option = new TestflowRunnerOptions(); FakeTestflowRunner fakeTestflowRunner = new FakeTestflowRunner(option); Type intType = typeof(int); FieldInfo fieldInfo = runnerType.GetField("_runnerInst", BindingFlags.Static | BindingFlags.NonPublic); fieldInfo.SetValue(null, fakeTestflowRunner); fakeTestflowRunner.SetLogService(null); _dataMaintainer = new DataMaintainer.DataMaintainer(); ModuleConfigData moduleConfigData = new ModuleConfigData(); moduleConfigData.InitExtendProperties(); _dataMaintainer.ApplyConfig(moduleConfigData); _testInstanceData1 = CreateTestInstance(1); _sessionResultData11 = CreateSessionResult(1, 1); _sequenceResultData111 = CreateSequenceResult(1, 1, 1); _sequenceResultData112 = CreateSequenceResult(1, 1, 2); _runtimeStatusData1111 = CreateRuntimeStatusData(1, 1, 1, 1); _runtimeStatusData1112 = CreateRuntimeStatusData(1, 1, 2, 2); _sessionResultData12 = CreateSessionResult(1, 2); _sequenceResultData121 = CreateSequenceResult(1, 2, 1); _sequenceResultData122 = CreateSequenceResult(1, 2, 2); _runtimeStatusData1211 = CreateRuntimeStatusData(1, 2, 1, 3); _runtimeStatusData1212 = CreateRuntimeStatusData(1, 2, 2, 4); _performanceStatus111 = CreatePerformanceData(1, 1, 1); _performanceStatus112 = CreatePerformanceData(1, 1, 2); _performanceStatus121 = CreatePerformanceData(1, 2, 3); _performanceStatus122 = CreatePerformanceData(1, 2, 4); _testInstanceData2 = CreateTestInstance(2); _sessionResultData21 = CreateSessionResult(2, 1); _sequenceResultData211 = CreateSequenceResult(2, 1, 1); _sequenceResultData212 = CreateSequenceResult(2, 1, 2); _runtimeStatusData2111 = CreateRuntimeStatusData(2, 1, 1, 1); _runtimeStatusData2112 = CreateRuntimeStatusData(2, 1, 2, 2); _sessionResultData22 = CreateSessionResult(2, 2); _sequenceResultData221 = CreateSequenceResult(2, 2, 1); _sequenceResultData222 = CreateSequenceResult(2, 2, 2); _runtimeStatusData2211 = CreateRuntimeStatusData(2, 2, 1, 3); _runtimeStatusData2212 = CreateRuntimeStatusData(2, 2, 2, 4); _performanceStatus211 = CreatePerformanceData(2, 1, 1); _performanceStatus212 = CreatePerformanceData(2, 1, 2); _performanceStatus221 = CreatePerformanceData(2, 2, 3); _performanceStatus222 = CreatePerformanceData(2, 2, 4); // 只有DesigntimeInitialize可以删掉记录 _dataMaintainer.DesigntimeInitialize(); // 删除记录 _dataMaintainer.DeleteTestInstance($"RuntimeHash='{_testInstanceData1.RuntimeHash}'"); _dataMaintainer.DeleteTestInstance($"RuntimeHash='{_testInstanceData2.RuntimeHash}'"); // 只有RuntimeInitialize可以新增记录 _dataMaintainer.RuntimeInitialize(); _dataMaintainer.AddData(_testInstanceData1); _dataMaintainer.AddData(_sessionResultData11); _dataMaintainer.AddData(_sequenceResultData111); _dataMaintainer.AddData(_sequenceResultData112); _dataMaintainer.AddData(_sessionResultData12); _dataMaintainer.AddData(_sequenceResultData121); _dataMaintainer.AddData(_sequenceResultData122); _dataMaintainer.AddData(_runtimeStatusData1211); _dataMaintainer.AddData(_runtimeStatusData1212); _dataMaintainer.AddData(_runtimeStatusData1111); _dataMaintainer.AddData(_runtimeStatusData1112); _dataMaintainer.AddData(_performanceStatus111); _dataMaintainer.AddData(_performanceStatus112); _dataMaintainer.AddData(_performanceStatus121); _dataMaintainer.AddData(_performanceStatus122); _dataMaintainer.AddData(_testInstanceData2); _dataMaintainer.AddData(_sessionResultData21); _dataMaintainer.AddData(_sequenceResultData211); _dataMaintainer.AddData(_sequenceResultData212); _dataMaintainer.AddData(_sessionResultData22); _dataMaintainer.AddData(_sequenceResultData221); _dataMaintainer.AddData(_sequenceResultData222); _dataMaintainer.AddData(_runtimeStatusData2211); _dataMaintainer.AddData(_runtimeStatusData2212); _dataMaintainer.AddData(_runtimeStatusData2111); _dataMaintainer.AddData(_runtimeStatusData2112); _dataMaintainer.AddData(_performanceStatus211); _dataMaintainer.AddData(_performanceStatus212); _dataMaintainer.AddData(_performanceStatus221); _dataMaintainer.AddData(_performanceStatus222); }
public void ReadSequence() { _dataMaintainer.RuntimeInitialize(); _sequenceResultData111.FailStack = "1_1_2"; _dataMaintainer.UpdateData(_sequenceResultData111); _sequenceResultData112.FailStack = "1_1_2"; _dataMaintainer.UpdateData(_sequenceResultData112); _sequenceResultData121.FailStack = "1_1_2"; _dataMaintainer.UpdateData(_sequenceResultData121); _sequenceResultData122.FailStack = "1_1_2"; _dataMaintainer.UpdateData(_sequenceResultData122); _sequenceResultData211.FailStack = "1_1_2"; _dataMaintainer.UpdateData(_sequenceResultData211); _sequenceResultData212.FailStack = "1_1_2"; _dataMaintainer.UpdateData(_sequenceResultData212); _sequenceResultData221.FailStack = "1_1_2"; _dataMaintainer.UpdateData(_sequenceResultData221); _sequenceResultData222.FailStack = "1_1_2"; _dataMaintainer.UpdateData(_sequenceResultData222); _dataMaintainer.DesigntimeInitialize(); IList <SequenceResultData> sequenceResultDatas1 = _dataMaintainer.GetSequenceResults(_testInstanceData1.RuntimeHash, 1); Assert.IsTrue(AreEqauls(_sequenceResultData111, sequenceResultDatas1[0])); Assert.IsTrue(AreEqauls(_sequenceResultData112, sequenceResultDatas1[1])); IList <SequenceResultData> sequenceResultDatas2 = _dataMaintainer.GetSequenceResults(_testInstanceData1.RuntimeHash, 2); Assert.IsTrue(AreEqauls(_sequenceResultData121, sequenceResultDatas2[0])); Assert.IsTrue(AreEqauls(_sequenceResultData122, sequenceResultDatas2[1])); IList <SequenceResultData> sequenceResultDatas3 = _dataMaintainer.GetSequenceResults(_testInstanceData2.RuntimeHash, 1); Assert.IsTrue(AreEqauls(_sequenceResultData211, sequenceResultDatas3[0])); Assert.IsTrue(AreEqauls(_sequenceResultData212, sequenceResultDatas3[1])); IList <SequenceResultData> sequenceResultDatas4 = _dataMaintainer.GetSequenceResults(_testInstanceData2.RuntimeHash, 2); Assert.IsTrue(AreEqauls(_sequenceResultData221, sequenceResultDatas4[0])); Assert.IsTrue(AreEqauls(_sequenceResultData222, sequenceResultDatas4[1])); SequenceResultData sequenceResultData = _dataMaintainer.GetSequenceResult(_sequenceResultData111.RuntimeHash, _sequenceResultData111.Session, _sequenceResultData111.SequenceIndex); Assert.IsTrue(AreEqauls(_sequenceResultData111, sequenceResultData)); sequenceResultData = _dataMaintainer.GetSequenceResult(_sequenceResultData112.RuntimeHash, _sequenceResultData112.Session, _sequenceResultData112.SequenceIndex); Assert.IsTrue(AreEqauls(_sequenceResultData112, sequenceResultData)); sequenceResultData = _dataMaintainer.GetSequenceResult(_sequenceResultData121.RuntimeHash, _sequenceResultData121.Session, _sequenceResultData121.SequenceIndex); Assert.IsTrue(AreEqauls(_sequenceResultData121, sequenceResultData)); sequenceResultData = _dataMaintainer.GetSequenceResult(_sequenceResultData122.RuntimeHash, _sequenceResultData122.Session, _sequenceResultData122.SequenceIndex); Assert.IsTrue(AreEqauls(_sequenceResultData122, sequenceResultData)); sequenceResultData = _dataMaintainer.GetSequenceResult(_sequenceResultData211.RuntimeHash, _sequenceResultData211.Session, _sequenceResultData211.SequenceIndex); Assert.IsTrue(AreEqauls(_sequenceResultData211, sequenceResultData)); sequenceResultData = _dataMaintainer.GetSequenceResult(_sequenceResultData212.RuntimeHash, _sequenceResultData212.Session, _sequenceResultData212.SequenceIndex); Assert.IsTrue(AreEqauls(_sequenceResultData212, sequenceResultData)); sequenceResultData = _dataMaintainer.GetSequenceResult(_sequenceResultData221.RuntimeHash, _sequenceResultData221.Session, _sequenceResultData221.SequenceIndex); Assert.IsTrue(AreEqauls(_sequenceResultData221, sequenceResultData)); sequenceResultData = _dataMaintainer.GetSequenceResult(_sequenceResultData222.RuntimeHash, _sequenceResultData222.Session, _sequenceResultData222.SequenceIndex); Assert.IsTrue(AreEqauls(_sequenceResultData222, sequenceResultData)); }
public void UpdateData(SequenceResultData sequenceResult) { _databaseProxy.UpdateData(sequenceResult); }
public void AddData(SequenceResultData sequenceResult) { _databaseProxy.AddData(sequenceResult); }