Beispiel #1
0
        public void ReadSession()
        {
            _dataMaintainer.DesigntimeInitialize();

            IList <SessionResultData> sessionResultDatas1 = _dataMaintainer.GetSessionResults(_testInstanceData1.RuntimeHash);

            Assert.IsTrue(AreEqauls(_sessionResultData11, sessionResultDatas1[0]));
            Assert.IsTrue(AreEqauls(_sessionResultData12, sessionResultDatas1[1]));

            IList <SessionResultData> sessionResultDatas2 = _dataMaintainer.GetSessionResults(_testInstanceData2.RuntimeHash);

            Assert.IsTrue(AreEqauls(_sessionResultData21, sessionResultDatas2[0]));
            Assert.IsTrue(AreEqauls(_sessionResultData22, sessionResultDatas2[1]));

            SessionResultData sessionResultData1 = _dataMaintainer.GetSessionResult(_sessionResultData11.RuntimeHash, _sessionResultData11.Session);

            Assert.IsTrue(AreEqauls(_sessionResultData11, sessionResultData1));

            SessionResultData sessionResultData2 = _dataMaintainer.GetSessionResult(_sessionResultData12.RuntimeHash, _sessionResultData12.Session);

            Assert.IsTrue(AreEqauls(_sessionResultData12, sessionResultData2));

            SessionResultData sessionResultData3 = _dataMaintainer.GetSessionResult(_sessionResultData21.RuntimeHash, _sessionResultData21.Session);

            Assert.IsTrue(AreEqauls(_sessionResultData21, sessionResultData3));

            SessionResultData sessionResultData4 = _dataMaintainer.GetSessionResult(_sessionResultData22.RuntimeHash, _sessionResultData22.Session);

            Assert.IsTrue(AreEqauls(_sessionResultData22, sessionResultData4));
        }
Beispiel #2
0
        public virtual void AddData(SessionResultData sessionResult)
        {
            Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(sessionResult);
            string cmd = SqlCommandFactory.CreateInsertCmd(DataBaseItemNames.SessionTableName, columnToValue);

            ExecuteWriteCommand(cmd);
        }
Beispiel #3
0
        public virtual void UpdateData(SessionResultData sessionResult)
        {
            SessionResultData           lastSessionResult = InternalGetSessionResult(sessionResult.RuntimeHash, sessionResult.Session);
            Dictionary <string, string> lastSessionValues = DataModelMapper.GetColumnValueMapping(lastSessionResult);

            Dictionary <string, string> columnToValue = DataModelMapper.GetColumnValueMapping(sessionResult);

            string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{sessionResult.RuntimeHash}' AND {DataBaseItemNames.SessionIdColumn}={sessionResult.Session}";
            string cmd    = SqlCommandFactory.CreateUpdateCmd(DataBaseItemNames.SessionTableName, lastSessionValues,
                                                              columnToValue, filter);

            ExecuteWriteCommand(cmd);
        }
Beispiel #4
0
        protected SessionResultData InternalGetSessionResult(string runtimeHash, int sessionId)
        {
            string filter =
                $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}' AND {DataBaseItemNames.SessionIdColumn}={sessionId}";
            string cmd = SqlCommandFactory.CreateQueryCmd(filter, DataBaseItemNames.SessionTableName);

            using (DbDataReader dataReader = ExecuteReadCommand(cmd))
            {
                SessionResultData sessionResultData = null;
                if (dataReader.Read())
                {
                    sessionResultData = new SessionResultData();
                    DataModelMapper.ReadToObject(dataReader, sessionResultData);
                }
                return(sessionResultData);
            }
        }
Beispiel #5
0
        public virtual IList <SessionResultData> GetSessionResults(string runtimeHash)
        {
            string filter = $"{DataBaseItemNames.RuntimeIdColumn}='{runtimeHash}'";
            List <SessionResultData> resultDatas = new List <SessionResultData>(10);

            string cmd = SqlCommandFactory.CreateQueryCmd(filter, DataBaseItemNames.SessionTableName);

            using (DbDataReader dataReader = ExecuteReadCommand(cmd))
            {
                while (dataReader.Read())
                {
                    SessionResultData sessionResultData = new SessionResultData();
                    DataModelMapper.ReadToObject(dataReader, sessionResultData);
                    resultDatas.Add(sessionResultData);
                }
                return(resultDatas);
            }
        }
Beispiel #6
0
        private static SessionResultData CreateSessionResult(int instanceId, int sessionid)
        {
            SessionResultData sessionResultData = new SessionResultData()
            {
                RuntimeHash  = $"RuntimeHash{instanceId}",
                Name         = $"Session{sessionid}",
                Description  = $"InstanceDescription{sessionid}",
                Session      = sessionid,
                SequenceHash = $"SequenceHash{instanceId}_{sessionid}",
                StartTime    = DateTime.Now - new TimeSpan(0, 0, 1, 1),
                EndTime      = DateTime.Now - new TimeSpan(0, 0, 0, 1),
                ElapsedTime  = 10000,
                State        = RuntimeState.Over,
                FailedInfo   = null
            };

            return(sessionResultData);
        }
        private void InitializeBasicInfo(int session, ISequenceFlowContainer sequenceData)
        {
            // 配置基本信息
            this._sequenceData    = sequenceData;
            this.Session          = session;
            this.RuntimeHash      = _stateManageContext.GlobalInfo.RuntimeHash;
            this.State            = RuntimeState.NotAvailable;
            this._eventDispatcher = _stateManageContext.EventDispatcher;

            this.StartGenTime = DateTime.MaxValue;
            this.EndGenTime   = DateTime.MaxValue;
            this.StartTime    = DateTime.MaxValue;
            this.EndTime      = DateTime.MaxValue;
            this.CurrentTime  = DateTime.MaxValue;
            this.ElapsedTime  = TimeSpan.Zero;

            // 获取测试结果对象和生成信息对象
            _testResults    = _stateManageContext.GetSessionResults(Session);
            _generationInfo = _stateManageContext.GetGenerationInfo(Session);
            _sessionResults = new SessionResultData()
            {
                Name         = SequenceData.Name,
                Description  = SequenceData.Description,
                RuntimeHash  = _stateManageContext.RuntimeHash,
                Session      = this.Session,
                SequenceHash = (sequenceData is ISequenceGroup) ? ((ISequenceGroup)sequenceData).Info.Hash : string.Empty,
                State        = RuntimeState.NotAvailable,
                FailedInfo   = string.Empty
            };
            _performanceStatus = new PerformanceStatus()
            {
                RuntimeHash = _stateManageContext.RuntimeHash,
                Session     = this.Session,
            };

            _stateManageContext.DatabaseProxy.WriteData(_sessionResults);
        }
Beispiel #8
0
 public void UpdateData(SessionResultData result)
 {
     _dataMaintainer.UpdateData(result);
 }
Beispiel #9
0
 public void WriteData(SessionResultData result)
 {
     _dataMaintainer.AddData(result);
 }
Beispiel #10
0
 public void UpdateData(SessionResultData result)
 {
     // TODO
 }
Beispiel #11
0
 public void WriteData(SessionResultData result)
 {
     // TODO
 }
Beispiel #12
0
        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);
        }
Beispiel #13
0
 public void UpdateData(SessionResultData sessionResult)
 {
     _databaseProxy.UpdateData(sessionResult);
 }
Beispiel #14
0
 public void AddData(SessionResultData sessionResult)
 {
     _databaseProxy.AddData(sessionResult);
 }
Beispiel #15
0
        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
        }
Beispiel #16
0
 public override void UpdateData(SessionResultData sessionResult)
 {
     throw new System.InvalidOperationException();
 }