コード例 #1
0
 public override void Destroy(TestContext ctx)
 {
     parameters = null;
     current    = null;
     index      = -1;
     base.Destroy(ctx);
 }
コード例 #2
0
        public override void Initialize(TestContext ctx)
        {
            base.Initialize(ctx);

            if (Node.Parameter != null)
            {
                var value = Clone(Host.Deserialize(Node.Parameter));
                current = new ParameterSourceValue(this, Node.Parameter, value);
                hasNext = true;
                return;
            }

            ITestParameterSource <T> instance;

            if (UseFixtureInstance)
            {
                instance = (ITestParameterSource <T>)GetFixtureInstance().Instance;
            }
            else if (SourceInstance != null)
            {
                instance = SourceInstance;
            }
            else
            {
                throw new InternalErrorException();
            }

            parameters = new List <Tuple <ITestParameter, T> > ();
            foreach (var value in instance.GetParameters(ctx, Filter))
            {
                var parameter = Host.Serialize(value);
                parameters.Add(new Tuple <ITestParameter, T> (parameter, value));
            }

            index = 0;
        }
コード例 #3
0
        public override bool MoveNext(TestContext ctx)
        {
            if (!HasNext())
            {
                return(false);
            }

            if (parameters != null)
            {
                var value = Clone(parameters [index].Item2);
                current = new ParameterSourceValue(this, parameters [index].Item1, value);
                index++;
                return(true);
            }
            else
            {
                if (!hasNext)
                {
                    return(false);
                }
                hasNext = false;
                return(true);
            }
        }