Пример #1
0
        public override PathDescriptor BuildLaunchUrl(ABTestCase abTest, EnvironmentConnection environmentConnection)
        {
            var launchConfiguration = _preloaderSetup.GetLaunchConfigurationBuilder(SkinCode);

            var configData = launchConfiguration.Build(abTest, environmentConnection);

            return(BuildBaseUrl(abTest) +
                   new PathDescriptor($"bin/application/ViewActual.html?entrancemode=1&navigationplanid=-1&languageid=en&brandid={SkinCode.BrandId}&skinid={SkinCode.SkinId}&isdebugmode=1&isSelectedDebugHost=0&GRSState=LATEST&GRSAdditionalState=LATEST&GRSGameTechnology=DEFAULT&CommunicationType=socketProxy&Environment={environmentConnection.Name}&preloaderSetupPath=preloader_setup.json&configData={configData}"));
        }
Пример #2
0
        public override PathDescriptor BuildLaunchUrl(ABTestCase abTest, EnvironmentConnection environmentConnection)
        {
            string abTestingOverridePathUrlParameter = abTest?.GetOverrideParameterPathUrlParameter();


#warning I might need to do something with languageid parameter

            //var antiCacheKey = new Random().Next();
            //antiCacheKey ={ antiCacheKey}&

            return(BuildBaseUrl(abTest) +
                   new PathDescriptor($"bin/application/ViewActual.html?navigationplanid=-1&languageid=en&brandid={SkinCode.BrandId}&skinid={SkinCode.SkinId}{abTestingOverridePathUrlParameter}"));
        }
Пример #3
0
        public string Build(ABTestCase abTest, EnvironmentConnection environmentConnection)
        {
            JObject jObject = new JObject();

            jObject.Add(new JProperty(nameof(theme), JValue.CreateString(theme)));
#warning defaultSkin and languageId are obsolete since 7.42
            jObject.Add(new JProperty(nameof(defaultSkin), JValue.CreateString(defaultSkin)));
            jObject.Add(new JProperty(nameof(languageId), JValue.CreateString(languageId)));

            jObject.Add(new JProperty(nameof(brand), JValue.CreateString(brand)));
            jObject.Add(new JProperty(nameof(skin), JValue.CreateString(skin)));
            jObject.Add(new JProperty(nameof(lang), JValue.CreateString(lang)));



            foreach (var configurationFile in _configurationFiles)
            {
                jObject.Add(CreateConfigurationFileProperty(configurationFile.Key, ApplyAbTestCase(abTest, configurationFile.Value)));
            }

            jObject.Add(CreateConfigurationFileProperty("environmentPath", ApplyAbTestCase(abTest, environmentConnection.ConfigurationFilePath)));

            return(HttpUtility.UrlEncode(jObject.ToString()));
        }
Пример #4
0
        public IFiddlerOverrideProvider GetSocketsSetupOverrideProvider(BrandEntity brand, SkinEntity skin, EnvironmentConnection environmentConnection)
        {
            if (environmentConnection == null)
            {
                throw new ArgumentNullException(nameof(environmentConnection));
            }
            var environmentConfigurationFilePath = GetClientUrlBuilder(brand, skin).BuildBaseUrl(null) + environmentConnection.ConfigurationFilePath;

            return(new JsonSocketsSetupOverrideProvider(environmentConfigurationFilePath,
                                                        _serviceLocator.GetInstance <IMainProxyAdapter>().Port));
        }
        public void WorkflowExecuted_Where_ExecutionStatusCallBackRegisteredAndDataListMergeRequested_Expected_DataMergedInAndOutOfWorkflow()
        {
            //
            // Create a reset event which is used to wait for callbacks form the server
            //
            ManualResetEventSlim resetEvent = new ManualResetEventSlim(false);

            //
            // Setup MEF context
            //
            ImportService.CurrentContext = CompositionInitializer.DefaultInitialize();

            //
            // Setup test data
            //
            ErrorResultTO errors = new ErrorResultTO();
            Guid callBackID = Guid.NewGuid();
            string serviceName = "wizardtest";

            IBinaryDataList dataList = Dev2BinaryDataListFactory.CreateDataList();

            string error;
            dataList.TryCreateScalarTemplate("", "testvalue", "", true, out error);
            dataList.TryCreateScalarValue("321", "testvalue", out error);

            DataListMergeOpsTO dataListMergeOpsTO = new DataListMergeOpsTO(dataList.UID);

            ServiceLocator serviceLocator = new ServiceLocator();
            ImportService.SatisfyImports(serviceLocator);

            //
            // Connect to the server
            //
            IEnvironmentConnection conn = new EnvironmentConnection();
            conn.Address = new Uri(ServerSettings.DsfAddress);
            conn.Connect();

            IEventAggregator eventAggregator = ImportService.GetExportValue<IEventAggregator>();
            IFrameworkSecurityContext securityContext = ImportService.GetExportValue<IFrameworkSecurityContext>();
            IEnvironmentConnection environmentConnection = ImportService.GetExportValue<IEnvironmentConnection>();

            IEnvironmentModel environment = new EnvironmentModel(eventAggregator, securityContext, environmentConnection);
            environment.EnvironmentConnection = conn;

            //
            // Write the datalist to the server over the datalist channel
            //
            conn.DataListChannel.WriteDataList(dataList.UID, dataList, errors);

            //
            // Add an execution callback, the action of this call back will set the reset event allowing the test to continue
            //
            conn.ExecutionChannel.AddExecutionStatusCallback(callBackID, new Action<ExecutionStatusCallbackMessage>(m =>
            {
                if (m.MessageType == ExecutionStatusCallbackMessageType.CompletedCallback)
                {
                    resetEvent.Set();
                }
            }));

            //
            // Get endpoint to query and make request to server
            //
            Uri enpoint = serviceLocator.GetEndpoint(WizardEndpointGenerationStrategyProvider.ServiceWithDataListMergeAndExecutionCallBackKey, new Tuple<string, IEnvironmentModel, DataListMergeOpsTO, Guid>(serviceName, environment, dataListMergeOpsTO, callBackID));

            WebRequest wr = WebRequest.Create(enpoint);
            WebResponse wrsp = wr.GetResponse();
            Stream s = wrsp.GetResponseStream();
            StreamReader sr = new StreamReader(s);
            string payload = sr.ReadToEnd();

            //
            // Wait for completed callback
            //
            resetEvent.Wait(10000);

            //
            // Get datalist from the server
            //
            IBinaryDataList resultDataList = conn.DataListChannel.ReadDatalist(dataList.UID, errors);

            //
            // Clean up
            //
            conn.Disconnect();

            IBinaryDataListEntry testValueEntry;
            resultDataList.TryGetEntry("testvalue", out testValueEntry, out error);

            IBinaryDataListEntry inValueEntry;
            resultDataList.TryGetEntry("invalue", out inValueEntry, out error);

            string expected = "123|321";
            string actual = testValueEntry.FetchScalar().TheValue + "|" + inValueEntry.FetchScalar().TheValue;

            Assert.AreEqual(expected, actual);
        }
Пример #6
0
        public void WorkflowExecuted_Where_ExecutionStatusCallBackRegisteredAndDataListMergeRequested_Expected_DataMergedInAndOutOfWorkflow()
        {
            //
            // Create a reset event which is used to wait for callbacks form the server
            //
            ManualResetEventSlim resetEvent = new ManualResetEventSlim(false);

            //
            // Setup MEF context
            //
            ImportService.CurrentContext = CompositionInitializer.DefaultInitialize();

            //
            // Setup test data
            //
            ErrorResultTO errors      = new ErrorResultTO();
            Guid          callBackID  = Guid.NewGuid();
            string        serviceName = "wizardtest";

            IBinaryDataList dataList = Dev2BinaryDataListFactory.CreateDataList();

            string error;

            dataList.TryCreateScalarTemplate("", "testvalue", "", true, out error);
            dataList.TryCreateScalarValue("321", "testvalue", out error);

            DataListMergeOpsTO dataListMergeOpsTO = new DataListMergeOpsTO(dataList.UID);

            ServiceLocator serviceLocator = new ServiceLocator();

            ImportService.SatisfyImports(serviceLocator);

            //
            // Connect to the server
            //
            IEnvironmentConnection conn = new EnvironmentConnection();

            conn.Address = new Uri(ServerSettings.DsfAddress);
            conn.Connect();

            IEventAggregator          eventAggregator       = ImportService.GetExportValue <IEventAggregator>();
            IFrameworkSecurityContext securityContext       = ImportService.GetExportValue <IFrameworkSecurityContext>();
            IEnvironmentConnection    environmentConnection = ImportService.GetExportValue <IEnvironmentConnection>();

            IEnvironmentModel environment = new EnvironmentModel(eventAggregator, securityContext, environmentConnection);

            environment.EnvironmentConnection = conn;

            //
            // Write the datalist to the server over the datalist channel
            //
            conn.DataListChannel.WriteDataList(dataList.UID, dataList, errors);

            //
            // Add an execution callback, the action of this call back will set the reset event allowing the test to continue
            //
            conn.ExecutionChannel.AddExecutionStatusCallback(callBackID, new Action <ExecutionStatusCallbackMessage>(m =>
            {
                if (m.MessageType == ExecutionStatusCallbackMessageType.CompletedCallback)
                {
                    resetEvent.Set();
                }
            }));

            //
            // Get endpoint to query and make request to server
            //
            Uri enpoint = serviceLocator.GetEndpoint(WizardEndpointGenerationStrategyProvider.ServiceWithDataListMergeAndExecutionCallBackKey, new Tuple <string, IEnvironmentModel, DataListMergeOpsTO, Guid>(serviceName, environment, dataListMergeOpsTO, callBackID));

            WebRequest   wr      = WebRequest.Create(enpoint);
            WebResponse  wrsp    = wr.GetResponse();
            Stream       s       = wrsp.GetResponseStream();
            StreamReader sr      = new StreamReader(s);
            string       payload = sr.ReadToEnd();

            //
            // Wait for completed callback
            //
            resetEvent.Wait(10000);

            //
            // Get datalist from the server
            //
            IBinaryDataList resultDataList = conn.DataListChannel.ReadDatalist(dataList.UID, errors);

            //
            // Clean up
            //
            conn.Disconnect();

            IBinaryDataListEntry testValueEntry;

            resultDataList.TryGetEntry("testvalue", out testValueEntry, out error);

            IBinaryDataListEntry inValueEntry;

            resultDataList.TryGetEntry("invalue", out inValueEntry, out error);

            string expected = "123|321";
            string actual   = testValueEntry.FetchScalar().TheValue + "|" + inValueEntry.FetchScalar().TheValue;

            Assert.AreEqual(expected, actual);
        }
Пример #7
0
        public IFiddlerOverrideProvider GetSocketsSetupOverrideProvider(BrandEntity brand, SkinEntity skin, EnvironmentConnection environmentConnection)
        {
            var clientUrlBuilder = GetClientUrlBuilder(brand, skin);

            return(new XmlSocketsSetupOverrideProvider(clientUrlBuilder.BuildBaseUrl(null) + new PathDescriptor("setups/socket_setup.xml"),
                                                       _serviceLocator.GetInstance <IMainProxyAdapter>().Port));
        }
Пример #8
0
 public abstract PathDescriptor BuildLaunchUrl(ABTestCase abTest, EnvironmentConnection environmentConnection);
Пример #9
0
 /// <summary>
 /// 初始化一个新的<c>RmsDbContext</c>实例
 /// </summary>
 /// <param name="nameOrConnectionString">数据库的连接名</param>
 public RmsDbContext(string nameOrConnectionString)
     : base(EnvironmentConnection.GetDbConnectionName(nameOrConnectionString))
 {
 }