Exemple #1
0
        protected override void Context()
        {
            base.Context();
            _simulation = A.Fake <Simulation>().WithId("sim");
            _chart1     = A.Fake <ISimulationAnalysis>();
            _chart2     = A.Fake <ISimulationAnalysis>();
            var chartMetaData1 = new SimulationChartMetaData {
                Content = { Data = Encoding.UTF8.GetBytes("chart1") }
            };
            var chartMetaData2 = new SimulationChartMetaData {
                Content = { Data = Encoding.UTF8.GetBytes("chart2") }
            };

            _allCharts.Add(chartMetaData1);
            _allCharts.Add(chartMetaData2);
            A.CallTo(() => _serializationManager.Deserialize <ISimulationAnalysis>(chartMetaData1.Content.Data, null)).Returns(_chart1);
            A.CallTo(() => _serializationManager.Deserialize <ISimulationAnalysis>(chartMetaData2.Content.Data, null)).Returns(_chart2);
            A.CallTo(() => _simulationChartQuery.ResultFor(_simulation.Id)).Returns(_allCharts);
        }
        public override void GlobalContext()
        {
            base.GlobalContext();
            _projectMetaData = new ProjectMetaData {
                Name = "Project"
            };
            _simulationMetaData = new SimulationMetaData {
                Id = "Id", SimulationMode = SimulationMode.Individual, Name = "Sim"
            };
            _simulationChartMetaData = new SimulationChartMetaData {
                Id = "Chart", Name = "Chart"
            };
            _simulationMetaData.Charts.Add(_simulationChartMetaData);
            _projectMetaData.AddBuildingBlock(_simulationMetaData);

            //save project once
            using (var session = _sessionFactory.OpenSession())
                using (var transaction = session.BeginTransaction())
                {
                    session.Save(_projectMetaData);
                    transaction.Commit();
                }

            //then delete chart to simulation lazy loading
            _simulationMetaData.Charts.Clear();
            _simulationMetaData.Content.Data = null;
            _simulationMetaData.IsLoaded.ShouldBeFalse();

            //update project again. The charts should not be clear
            using (var session = _sessionFactory.OpenSession())
                using (var transaction = session.BeginTransaction())
                {
                    var projectMetaData = session.CreateCriteria <ProjectMetaData>().List <ProjectMetaData>().First();
                    projectMetaData.UpdateFrom(_projectMetaData, session);
                    transaction.Commit();
                }
        }
 public virtual void AddChart(SimulationChartMetaData chart)
 {
     Charts.Add(chart);
 }
Exemple #4
0
 private ISimulationAnalysis mapFrom(SimulationChartMetaData chart)
 {
     return(_serializationManager.Deserialize <ISimulationAnalysis>(chart.Content.Data));
 }