示例#1
0
        protected virtual void LoadServiceAndServiceAgents()
        {
            // add here necessary stuff to the container
            var unityContainer                  = Container.Resolve <IUnityContainer>();
            var canalDirectServiceAgent         = new CanalDirectServiceAgent();
            var configurationDirectServiceAgent = new ConfigurationDirectServiceAgent();
            var canalFlowService                = new CanalFlowService();
            var configurationService            = new ConfigurationService();
            var canalManager          = new CanalManager();
            var configurationLoader   = new CanalConfigurationLoader();
            var sequenceTaskScheduler = new SequenceTaskScheduler();

            unityContainer.RegisterInstance <ICanalServiceAgent>(canalDirectServiceAgent);
            unityContainer.RegisterInstance <IConfigurationServiceAgent>(configurationDirectServiceAgent);
            unityContainer.RegisterInstance <ICanalFlowService>(canalFlowService);
            unityContainer.RegisterInstance <IConfigurationService>(configurationService);
            unityContainer.RegisterInstance <ICanalManager>(canalManager);
            unityContainer.RegisterInstance <ICanalConfigurationLoader>(configurationLoader);
            unityContainer.RegisterInstance(sequenceTaskScheduler);

            // build up everything
            unityContainer.BuildUp(canalDirectServiceAgent);
            unityContainer.BuildUp(configurationDirectServiceAgent);
            unityContainer.BuildUp(canalFlowService);
            unityContainer.BuildUp(configurationService);
            unityContainer.BuildUp(configurationLoader);

            // register for start/connect/etc
        }
        public void SaveAndLoadConfiguration()
        {
            //  Arrange
            CanalManager canalManager = new CanalManager();

            ConfigurationManager.AppSettings[ServerConfigConsts.RelativeModelsLocation] = "ScienceAndMaths";
            CanalConfigurationLoader loader = new CanalConfigurationLoader();

            loader.CanalManager = canalManager;

            Canal canal = new Canal
            {
                Id = "TestConfig"
            };

            canal.CanelEdges.Add(new CanalEdge()
            {
                Id         = "SourceCanal",
                WaterLevel = 2.9
            });

            canal.CanelEdges.Add(new CanalEdge()
            {
                Id = "EndCanal"
            });

            CanalStretch canalStretch = new CanalStretch("stretch1", 602, 20.32, new RectangularSection(5, 0.028, 0));

            canalStretch.FromNode = canal.CanelEdges.First();
            canalStretch.ToNode   = canal.CanelEdges.Last();

            canal.CanalStretches.Add(canalStretch);

            CanalConfiguration canalConfiguration = new CanalConfiguration();

            canalConfiguration.ConfigId = "TestConfig";

            loader.SaveCanalConfiguration(canal);

            loader.LoadCanalConfiguration();

            Assert.IsNotNull(canalManager.Canal);

            Assert.AreEqual(2, canalManager.Canal.CanelEdges.Count);
            Assert.AreEqual(1, canalManager.Canal.CanalStretches.Count);
        }