public void InvalidSqlInstanceProductMode() { string settingsFileName = string.Format("{0}\\Settings.xml", m_TempPath); SettingsManager settingsManager = new SettingsManager(settingsFileName); settingsManager.ServiceGuid = s_TestServiceGuid; StackHashContextSettings settings = settingsManager.CreateNewContextSettings(); settings.ErrorIndexSettings.Type = ErrorIndexType.SqlExpress; settings.ErrorIndexSettings.Name = "TestIndex"; settings.ErrorIndexSettings.Folder = m_TempPath; settings.SqlSettings.ConnectionString = "Data Source=(local)\\INVALIDEXPRESS;Integrated Security=True"; settings.IsActive = true; // Force an attempt to activate. string licenseFileName = string.Format("{0}\\License.bin", m_TempPath); LicenseManager licenseManager = new LicenseManager(licenseFileName, s_TestServiceGuid); licenseManager.SetLicense(s_LicenseId); ScriptManager scriptManager = new ScriptManager(m_ScriptPath); IDebugger debugger = new Windbg(); ControllerContext context = new ControllerContext(settings, scriptManager, debugger, settingsManager, false, StackHashTestData.Default, licenseManager); Assert.AreEqual(false, context.IsActive); Assert.AreEqual(StackHashServiceErrorCode.SqlConnectionError, context.Status.CurrentError); Assert.AreNotEqual(null, context.Status.LastContextException); context.Dispose(); }
public void ActivateOk() { string settingsFileName = string.Format("{0}\\ServiceSettings.xml", m_TempPath); SettingsManager settingsManager = new SettingsManager(settingsFileName); settingsManager.ServiceGuid = s_TestServiceGuid; StackHashContextSettings settings = settingsManager.CreateNewContextSettings(); settings.ErrorIndexSettings.Folder = m_TempPath; settings.ErrorIndexSettings.Name = "TestIndex"; settings.ErrorIndexSettings.Type = ErrorIndexType.Xml; string licenseFileName = string.Format("{0}\\License.bin", m_TempPath); LicenseManager licenseManager = new LicenseManager(licenseFileName, s_TestServiceGuid); licenseManager.SetLicense(s_LicenseId); ScriptManager scriptManager = new ScriptManager(m_ScriptPath); IDebugger debugger = new Windbg(); ControllerContext context = new ControllerContext(settings, scriptManager, debugger, settingsManager, true, StackHashTestData.Default, licenseManager); Assert.AreEqual(false, context.IsActive); Assert.AreEqual(null, context.WinQualSyncTimerTask); // Hook up to receive admin events. context.AdminReports += new EventHandler <AdminReportEventArgs>(this.OnAdminReport); StackHashClientData clientData = new StackHashClientData(Guid.NewGuid(), "Mark", 24); context.Activate(clientData, false); // Wait for the activation event. m_ActivationAdminEvent.WaitOne(3000); Assert.AreEqual(1, m_AllReports.Count); Assert.AreEqual(clientData.ApplicationGuid, m_AllReports[0].Report.ClientData.ApplicationGuid); Assert.AreEqual(clientData.ClientId, m_AllReports[0].Report.ClientData.ClientId); Assert.AreEqual(clientData.ClientName, m_AllReports[0].Report.ClientData.ClientName); Assert.AreEqual(clientData.ClientRequestId, m_AllReports[0].Report.ClientData.ClientRequestId); Assert.AreEqual(0, m_AllReports[0].Report.ContextId); Assert.AreNotEqual(null, m_AllReports[0].Report.Description); Assert.AreNotEqual(null, m_AllReports[0].Report.Message); Assert.AreEqual(StackHashAdminOperation.ContextStateChanged, m_AllReports[0].Report.Operation); Assert.AreEqual(StackHashServiceErrorCode.NoError, m_AllReports[0].Report.ServiceErrorCode); Assert.AreEqual(null, m_AllReports[0].Report.LastException); Assert.AreEqual(null, m_AllReports[0].Report.LastException); Assert.AreEqual(StackHashAdminOperation.ContextStateChanged, m_AllReports[0].Report.Operation); StackHashContextStateAdminReport contextChanged = m_AllReports[0].Report as StackHashContextStateAdminReport; Assert.AreEqual(true, contextChanged.IsActivationAttempt); Assert.AreEqual(true, contextChanged.IsActive); Assert.AreEqual(true, context.IsActive); Assert.AreNotEqual(null, context.WinQualSyncTimerTask); context.Dispose(); }
public void WinQualSyncRunsOnTimer() { string settingsFileName = string.Format("{0}\\ServiceSettings.xml", m_TempPath); SettingsManager settingsManager = new SettingsManager(settingsFileName); settingsManager.ServiceGuid = s_TestServiceGuid; StackHashContextSettings settings = settingsManager.CreateNewContextSettings(); settings.ErrorIndexSettings.Folder = m_TempPath; settings.ErrorIndexSettings.Name = "TestIndex"; settings.ErrorIndexSettings.Type = ErrorIndexType.Xml; ScriptManager scriptManager = new ScriptManager(m_ScriptPath); IDebugger debugger = new Windbg(); string licenseFileName = string.Format("{0}\\License.bin", m_TempPath); LicenseManager licenseManager = new LicenseManager(licenseFileName, s_TestServiceGuid); licenseManager.SetLicense(s_LicenseId); // Make sure the correct winqual login details are used. settings.WinQualSettings.UserName = "******"; settings.WinQualSettings.Password = "******"; settings.WinQualSyncSchedule = new ScheduleCollection(); Schedule schedule = new Schedule(); schedule.DaysOfWeek = Schedule.EveryDay; schedule.Period = SchedulePeriod.Daily; DateTime now = DateTime.Now; // Must use local time. DateTime syncTime = now.AddSeconds(5); schedule.Time = new ScheduleTime(syncTime.Hour, syncTime.Minute, syncTime.Second); settings.WinQualSyncSchedule.Add(schedule); ControllerContext context = new ControllerContext(settings, scriptManager, debugger, settingsManager, true, StackHashTestData.Default, licenseManager); context.AdminReports += new EventHandler<AdminReportEventArgs>(this.OnAdminReport); try { context.Activate(); Assert.AreEqual(true, m_WinQualSyncEvent.WaitOne(8000)); Assert.AreEqual(true, m_AnalyzeEvent.WaitOne(5000)); Assert.AreEqual(1, m_SyncCount); Assert.AreEqual(1, m_AnalyzeCount); context.Deactivate(); Assert.AreEqual(false, context.IsActive); Assert.AreEqual(null, context.WinQualSyncTimerTask); } finally { context.AdminReports -= new EventHandler<AdminReportEventArgs>(this.OnAdminReport); context.Dispose(); } }
void IProtocol.Handle(TcpSocket.TcpSocketAsyncEventArgs e, byte[] data) { HttpRequest Request = e.UserToken as HttpRequest; if (Request == null) { Request = HttpParser.ParseRequest(data); } else { HttpParser.ParseContent(Request, data, 0, data.Length); } // ******************************************* // // КОСТЫЛЬ?!?!?!?! // ******************************************* // if (Request.IsContentContinueRead) { e.UserToken = Request; return; } e.UserToken = null; // ******************************************* // // END КОСТЫЛЬ?!?!?!?! // ******************************************* // IControllerContext context = new ControllerContext(Request); try { string dpasKey; if (!context.Request.Cookies.TryGetValue("dpas", out dpasKey)) { dpasKey = Guid.NewGuid().ToString(); context.Response.Cookies.Add("dpas", dpasKey); } context.SetState(dpasKey); if (!RequestMvcHandle(context)) { RequestHandle(context); } } catch (Exception ex) { RequestError(context, ex, HttpStatusCode.InternalServerError); } SendResponse(e, context); if (!context.Request.Header.IsSupportShouldKeepAlive) { _server.CloseConnection(e); } context.Dispose(); }
public void ConstructorInactivePlaintextPassword() { string settingsFileName = string.Format("{0}\\Settings.xml", m_TempPath); SettingsManager settingsManager = new SettingsManager(settingsFileName); settingsManager.ServiceGuid = s_TestServiceGuid; StackHashContextSettings settings = settingsManager.CreateNewContextSettings(); settings.WinQualSettings.Password = "******"; settingsManager.SetContextSettings(settings, false); string licenseFileName = string.Format("{0}\\License.bin", m_TempPath); LicenseManager licenseManager = new LicenseManager(licenseFileName, s_TestServiceGuid); licenseManager.SetLicense(s_LicenseId); ScriptManager scriptManager = new ScriptManager(m_ScriptPath); IDebugger debugger = new Windbg(); ControllerContext context = new ControllerContext(settings, scriptManager, debugger, settingsManager, true, StackHashTestData.Default, licenseManager); Assert.AreEqual(false, context.IsActive); Assert.AreEqual(null, context.WinQualSyncTimerTask); String password = settings.WinQualSettings.Password; Assert.AreEqual(password, settingsManager.CurrentSettings.ContextCollection[0].WinQualSettings.Password); // Reload to make sure the settings file was updated too. settingsManager = new SettingsManager(settingsFileName); settingsManager.ServiceGuid = s_TestServiceGuid; Assert.AreEqual(password, settingsManager.CurrentSettings.ContextCollection[0].WinQualSettings.Password); String [] lines = File.ReadAllLines(settingsFileName); foreach (String line in lines) { Assert.AreEqual(false, line.Contains(settings.WinQualSettings.Password)); } context.Dispose(); }
public void ConstructorInactive() { string settingsFileName = string.Format("{0}\\Settings.xml", m_TempPath); SettingsManager settingsManager = new SettingsManager(settingsFileName); settingsManager.ServiceGuid = s_TestServiceGuid; StackHashContextSettings settings = settingsManager.CreateNewContextSettings(); string licenseFileName = string.Format("{0}\\License.bin", m_TempPath); LicenseManager licenseManager = new LicenseManager(licenseFileName, s_TestServiceGuid); licenseManager.SetLicense(s_LicenseId); ScriptManager scriptManager = new ScriptManager(m_ScriptPath); IDebugger debugger = new Windbg(); ControllerContext context = new ControllerContext(settings, scriptManager, debugger, settingsManager, true, StackHashTestData.Default, licenseManager); Assert.AreEqual(false, context.IsActive); Assert.AreEqual(null, context.WinQualSyncTimerTask); context.Dispose(); }
public void ChangeParamsWhileActive() { string settingsFileName = string.Format("{0}\\ServiceSettings.xml", m_TempPath); SettingsManager settingsManager = new SettingsManager(settingsFileName); settingsManager.ServiceGuid = s_TestServiceGuid; StackHashContextSettings settings = settingsManager.CreateNewContextSettings(); settings.ErrorIndexSettings.Folder = m_TempPath; settings.ErrorIndexSettings.Name = "TestIndex"; settings.ErrorIndexSettings.Type = ErrorIndexType.Xml; ScriptManager scriptManager = new ScriptManager(m_ScriptPath); IDebugger debugger = new Windbg(); settings.WinQualSettings.UserName = "******"; settings.WinQualSettings.Password = "******"; settings.WinQualSyncSchedule = new ScheduleCollection(); Schedule schedule = new Schedule(); schedule.Period = SchedulePeriod.Daily; schedule.DaysOfWeek = Schedule.EveryDay; DateTime now = DateTime.Now; // Must get local time. DateTime syncTime = now.AddSeconds(100); schedule.Time = new ScheduleTime(syncTime.Hour, syncTime.Minute, syncTime.Second); settings.WinQualSyncSchedule.Add(schedule); string licenseFileName = string.Format("{0}\\License.bin", m_TempPath); LicenseManager licenseManager = new LicenseManager(licenseFileName, s_TestServiceGuid); licenseManager.SetLicense(s_LicenseId); ControllerContext context = new ControllerContext(settings, scriptManager, debugger, settingsManager, true, StackHashTestData.Default, licenseManager); context.AdminReports += new EventHandler<AdminReportEventArgs>(this.OnAdminReport); try { context.Activate(); // Create and delete some new context settings - should have no effect. StackHashContextSettings settings2 = settingsManager.CreateNewContextSettings(); settingsManager.RemoveContextSettings(settings2.Id, true); // Change the existing active context. settings2.Id = 0; settings2.ErrorIndexSettings.Folder = m_TempPath; settings2.ErrorIndexSettings.Name = "TestIndex"; settings2.ErrorIndexSettings.Type = ErrorIndexType.Xml; settings2.WinQualSettings.UserName = "******"; settings2.WinQualSettings.Password = "******"; settings2.WinQualSyncSchedule = new ScheduleCollection(); schedule = new Schedule(); schedule.Period = SchedulePeriod.Hourly; schedule.DaysOfWeek = Schedule.EveryDay; now = DateTime.Now; syncTime = now.AddSeconds(5); schedule.Time = new ScheduleTime(syncTime.Hour, syncTime.Minute, syncTime.Second); settings2.WinQualSyncSchedule.Add(schedule); context.UpdateSettings(settings2); // Wait for the timer to expire. Assert.AreEqual(true, m_WinQualSyncEvent.WaitOne(10000)); Assert.AreEqual(true, m_AnalyzeEvent.WaitOne(10000)); Assert.AreEqual(1, m_SyncCount); Assert.AreEqual(1, m_AnalyzeCount); context.Deactivate(); Assert.AreEqual(false, context.IsActive); Assert.AreEqual(null, context.WinQualSyncTimerTask); } finally { context.AdminReports -= new EventHandler<AdminReportEventArgs>(this.OnAdminReport); context.Dispose(); } }