示例#1
0
        public void LoadAndRestoreCurrentRuntimeTestAsync()
        {
            AssemblyServiceRepository assManRepo = GetTestRepo(nameof(LoadAndRestoreCurrentRuntimeTestAsync));
            DaoRepository             fileRepo   = new DaoRepository()
            {
                Database = assManRepo.Database
            };

            fileRepo.AddTypes(typeof(ChunkedFileDescriptor),
                              typeof(ChunkDataDescriptor),
                              typeof(ChunkData));
            fileRepo.EnsureDaoAssemblyAndSchema();
            FileService fmSvc = new FileService(fileRepo);

            AssemblyService          svc    = new AssemblyService(DataSettings.Current, fmSvc, assManRepo, DefaultConfigurationApplicationNameProvider.Instance);
            ProcessRuntimeDescriptor prd1   = svc.CurrentProcessRuntimeDescriptor;
            ProcessRuntimeDescriptor prd2   = svc.CurrentProcessRuntimeDescriptor;
            ProcessRuntimeDescriptor byName = assManRepo.OneProcessRuntimeDescriptorWhere(c => c.ApplicationName == prd1.ApplicationName);

            OutLineFormat("AppName: {0}", ConsoleColor.Cyan, prd1.ApplicationName);
            Expect.AreEqual(prd1.Cuid, prd2.Cuid);
            Expect.AreEqual(prd1.Cuid, byName.Cuid);
            bool?fired = false;

            svc.RuntimeRestored += (o, a) =>
            {
                fired = true;
                OutLine(((ProcessRuntimeDescriptorEventArgs)a).DirectoryPath);
            };
            svc.RestoreApplicationRuntime(byName.ApplicationName, $".\\{nameof(LoadAndRestoreCurrentRuntimeTestAsync)}");
            Expect.IsTrue(fired.Value);
        }