Ejemplo n.º 1
0
        // Identify the types needed to produce content for Factories
        private List <Type> GatherFactoryInputs(List <DiscoverableFactory> factories)
        {
            List <Type> testInputTypes = new List <Type>();

            foreach (DiscoverableFactory factory in factories)
            {
                List <Type> factoryInputTypes = DiscoverableInputHelper.GetFactoryInputTypes(factory.GetType());
                HomelessTestHelpers.Merge(testInputTypes, factoryInputTypes);
            }
            return(testInputTypes);
        }
Ejemplo n.º 2
0
        //Identify all the types needed to perform actions
        private List <Type> GetActionInputs(List <Type> actions)
        {
            List <Type> actionInputs = new List <Type>();

            foreach (Type t in actions)
            {
                List <Type> inputTypes = DiscoverableInputHelper.GetFactoryInputTypes(t);
                foreach (Type type in inputTypes)
                {
                    if (!actionInputs.Contains(type))
                    {
                        actionInputs.Add(type);
                    }
                }
            }
            return(actionInputs);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Initializes the state object against the state Payload.
        /// </summary>
        /// <param name="stateData"></param>
        public void Initialize(IStatePayload stateData)
        {
            ConvenienceStressStatePayload payload = (ConvenienceStressStatePayload)stateData;

            string windowXamlPaths = payload.WindowXamlPaths;

            if (!String.IsNullOrEmpty(windowXamlPaths))
            {
                windowXamls = windowXamlPaths.Split(new char[] { ',' });
            }

            contentXaml = payload.ContentXamlPath;

            constraintsTable = new ConstraintsTable(payload.ConstraintsTablePath);

            actionTypes = TypeListReader.ParseTypeList(payload.ActionsPath, typeof(DiscoverableAction));
            factoryPool = new FactoryPool(payload.FactoriesPath, DiscoverableInputHelper.GetFactoryInputTypes(actionTypes), constraintsTable);
            constraintsTable.VerifyConstraints(actionTypes);
            memoryLimit = payload.MemoryLimit;
        }
Ejemplo n.º 4
0
        public List <Type> CheckConstraints(Type t)
        {
            List <Type> types = new List <Type>();

            foreach (PropertyDescriptor prop in DiscoverableInputHelper.GetInputProperties(t))
            {
                Trace.WriteLine(String.Format("[ConstraintsTable] Checking Property Constraint {0} on {1}.", prop.Name, t));
                Type inputType = prop.PropertyType;
                if (prop.Attributes.Contains(InputAttribute.CreateFromConstraints))
                {
                    ConstrainedDataSource datasource = Get(TargetTypeAttribute.FindTarget(t), prop.Name);
                    if (null == datasource)
                    {
                        throw new InvalidOperationException("Missing constraint entry for" + t + " property: " + prop.Name);
                    }
                    else
                    {
                        datasource.Validate();
                    }
                }
            }
            return(types);
        }