コード例 #1
0
        public void DeployWebApp(SiteCreateData siteCreateData, Guid jobInfoId)
        {
            var deployInfo = new DeploySiteInfo(_jobInfoRepository, _hubContextProvider, jobInfoId);

            InitDeployInfo(siteCreateData);
            var wait = 3;

            Thread.Sleep(TimeSpan.FromSeconds(wait));
            deployInfo.RestoreDbCopyFiles = OperationStageState.Completed;
            Thread.Sleep(TimeSpan.FromSeconds(wait));
            //ExtractBinaries(siteCreateData);
            deployInfo.CreateWebApp = OperationStageState.Completed;
            Thread.Sleep(TimeSpan.FromSeconds(wait));
            //ModifyConnectionStrings
            deployInfo.ModifyConfigs = OperationStageState.Completed;
        }
コード例 #2
0
        public void TestMethod1()
        {
            bool messageInvoked = false;
            var  infoRepo       = new JobInfoRepositoryMock();
            var  container      = (new MockContainerConfig((c) => {
                var contextMock = new Mock <IHubContext>();
                var mockClients = new Mock <IHubCallerConnectionContext <dynamic> >();
                dynamic all = new ExpandoObject();
                mockClients.Setup(m => m.All).Returns((ExpandoObject)all);
                contextMock.Setup(context => context.Clients).Returns(mockClients.Object);
                var provider = new Mock <IHubContextProvider>();
                provider.Setup(p => p.GetConnectionContext("TestHub")).Returns(contextMock.Object);
                int counter = 0;
                all.updateSiteState = new Action <Guid>((infoId) => {
                    var info = new DeploySiteInfo(infoRepo, provider.Object, infoId);
                    lock (this)
                    {
                        switch (counter)
                        {
                        case 0:
                            Assert.AreEqual(info.RestoreDbCopyFiles, OperationStageState.Completed);
                            Assert.AreEqual(info.CreateWebApp, OperationStageState.Pending);
                            Assert.AreEqual(info.ModifyConfigs, OperationStageState.Pending);
                            counter++;
                            break;

                        case 1:
                            Assert.AreEqual(info.RestoreDbCopyFiles, OperationStageState.Completed);
                            Assert.AreEqual(info.CreateWebApp, OperationStageState.Completed);
                            Assert.AreEqual(info.ModifyConfigs, OperationStageState.Pending);
                            counter++;
                            break;

                        case 2:
                            Assert.AreEqual(info.RestoreDbCopyFiles, OperationStageState.Completed);
                            Assert.AreEqual(info.CreateWebApp, OperationStageState.Completed);
                            Assert.AreEqual(info.ModifyConfigs, OperationStageState.Completed);
                            break;
                        }
                    }
                });
                c.RegisterInstance(provider.Object);
                c.RegisterType <ISiteDeployProvider, SiteDeployProviderMock>();
                c.RegisterInstance <IJobInfoRepository>(infoRepo);
            })).GetContainer();
            var siteDeployProvider = container.Resolve <ISiteDeployProvider>();
            var data = new SiteCreateData {
                Name = "asdsadsa",
                Db   = new SqlServerInstance {
                    ServerName = "", InstanceName = ""
                },
                UserName = "******"
            };
            OperationInfoBase progressInfo = siteDeployProvider.GetOperationsInfo();

            progressInfo.SignarRHubName  = "TestHub";
            progressInfo.OnStateChanged += (hub, info) => {
                hub.Clients.All.updateSiteState(info.Id);
            };
            var progressJobId = progressInfo.Id;

            infoRepo.Create(progressInfo);
            siteDeployProvider.DeployWebApp(data, progressJobId);
        }