private IEnumerable <MetadataObjectContext> GetMetadataContexts(
            IKey baseKey,
            IList <IFastMemberWithValues> dependendArguments,
            object[][] ctorValuesCollections,
            IReadOnlyList <int> sortedToUnsorted,
            ITestDataGenerator testDataGenerator)
        {
            var dependendArgumentMapping = new List <Tuple <int, IKey> >();

            for (var i = 0; i < dependendArguments.Count; i++)
            {
                var argument      = dependendArguments[i];
                var argumentKey   = baseKey.CreateKey(argument);
                var argumentIndex = sortedToUnsorted[i];

                dependendArgumentMapping.Add(new Tuple <int, IKey> (argumentIndex, argumentKey));
            }

            foreach (var valueCollection in ctorValuesCollections)
            {
                var context = new MetadataObjectContext(testDataGenerator);
                foreach (var dependendArgument in dependendArgumentMapping)
                {
                    context.Add(dependendArgument.Item2, valueCollection[dependendArgument.Item1]);
                }

                yield return(context);
            }
        }
Exemplo n.º 2
0
 public IEnumerable <IFastMemberWithValues> Sort(IEnumerable <IFastMemberWithValues> members, IKey baseKey)
 {
     return
         (members.Select(m => new { Key = baseKey.CreateKey(m), Value = m })
          .OrderBy(keyValue => GetIndexForKey(keyValue.Key))
          .Select(keyValue => keyValue.Value));
 }
Exemplo n.º 3
0
        private IEnumerable <MetadataObjectContext> GetMetadataContexts(
            IKey baseKey,
            IEnumerable <IFastMemberWithValues> dependendMembers,
            IList <object> instances)
        {
            var instanceToContext = new Dictionary <object, MetadataObjectContext>();

            foreach (var member in dependendMembers)
            {
                var memberKey = baseKey.CreateKey(member);
                foreach (var instance in instances)
                {
                    if (!instanceToContext.ContainsKey(instance))
                    {
                        instanceToContext[instance] = new MetadataObjectContext(this);
                    }

                    instanceToContext[instance].Add(memberKey, member.GetValue(instance));
                }
            }

            return(instanceToContext.Select(i => i.Value));
        }