예제 #1
0
 public void Test42ExistsFaild()
 {
     var deferredValue1 = DeferredValue.Create(() => 352, 12, "Months in year");
     var deferredValue2 = DeferredValue.Create(() => 352, 420, "Answer to the Ultimate Question of Life, The Universe, and Everything");
     var deferredValue3 = DeferredValue.Create(() => 352, 56, "Random int");
     var deferredValues = new[] {deferredValue1, deferredValue2, deferredValue3};
     deferredValues.Wait().ThatNunit(Is.SupersetOf(new[] {42}));
 }
예제 #2
0
 public void Test42ExistsWithTransformation()
 {
     var deferredValue1 = DeferredValue.Create(() => "352", "12", "Months in year");
     var deferredValue2 = DeferredValue.Create(() => "352", "42", "Answer to the Ultimate Question of Life, The Universe, and Everything");
     var deferredValue3 = DeferredValue.Create(() => "352", "56", "Random int");
     var deferredValues = new[] {deferredValue1, deferredValue2, deferredValue3};
     deferredValues.Wait().Transformed(x => Array.ConvertAll(x, int.Parse)).ThatNunit(Is.SupersetOf(new[] {42}));
 }
예제 #3
0
        public void Test42ExistsFaild()
        {
            var deferredValue1 = DeferredValue.Create(() => 352, 12, "Months in year");
            var deferredValue2 = DeferredValue.Create(() => 352, 420, "Answer to the Ultimate Question of Life, The Universe, and Everything");
            var deferredValue3 = DeferredValue.Create(() => 352, 56, "Random int");
            var deferredValues = new[] { deferredValue1, deferredValue2, deferredValue3 };

            deferredValues.Wait().ThatFluent(x => x.Should().Contain(42, "answer is 42"));
        }
예제 #4
0
        private BindingContext()
        {
            InlinePartialTemplates = new CascadeDictionary <string, Action <EncodedTextWriter, BindingContext> >();

            RootDataObject    = new FixedSizeDictionary <ChainSegment, object, ChainSegment.ChainSegmentEqualityComparer>(16, 7, ChainSegment.EqualityComparer);
            ContextDataObject = new FixedSizeDictionary <ChainSegment, object, ChainSegment.ChainSegmentEqualityComparer>(16, 7, ChainSegment.EqualityComparer);
            BlockParamsObject = new FixedSizeDictionary <ChainSegment, object, ChainSegment.ChainSegmentEqualityComparer>(16, 7, ChainSegment.EqualityComparer);

            _objectDescriptor = new DeferredValue <BindingContext, ObjectDescriptor>(this, context => ObjectDescriptor.Create(context.Value, context.Configuration));
        }
예제 #5
0
        public void Test42Single()
        {
            var deferredValue1 = DeferredValue.Create(() => "352", "12", "Months in year");
            var deferredValue2 = DeferredValue.Create(() => "352", "42", "Answer to the Ultimate Question of Life, The Universe, and Everything");
            var deferredValue3 = DeferredValue.Create(() => "352", "56", "Random int");
            var deferredValues = new[] {deferredValue1, deferredValue2, deferredValue3};

            var result = deferredValues.Wait().Single(x => x.Assert(Is.EqualTo("42")), Helper.AssertionConfiguration);
            Assert.That(result, Is.EqualTo("42"));
        }
예제 #6
0
        public void Test42Filtered()
        {
            var deferredValue1 = DeferredValue.Create(() => "352", "12", "Months in year");
            var deferredValue2 = DeferredValue.Create(() => "352", "42", "Answer to the Ultimate Question of Life, The Universe, and Everything");
            var deferredValue3 = DeferredValue.Create(() => "352", "56", "Random int");
            var deferredValues = new[] {deferredValue1, deferredValue2, deferredValue3};

            var result = deferredValues.Wait().Filtered(x => x.Assert(Is.EqualTo("42"))).ThatNunit(Has.Length.EqualTo(1)).GetAsserted();
            Assert.That(result, Is.EqualTo(new[] {"42"}));
        }
예제 #7
0
        private BindingContext()
        {
            InlinePartialTemplates = new CascadeIndex <string, Action <EncodedTextWriter, BindingContext>, StringEqualityComparer>(new StringEqualityComparer(StringComparison.OrdinalIgnoreCase));

            Bag = new CascadeIndex <string, object, StringEqualityComparer>(new StringEqualityComparer(StringComparison.OrdinalIgnoreCase));
            ContextDataObject = new FixedSizeDictionary <ChainSegment, object, ChainSegment.ChainSegmentEqualityComparer>(16, 7, ChainSegment.EqualityComparer);
            BlockParamsObject = new FixedSizeDictionary <ChainSegment, object, ChainSegment.ChainSegmentEqualityComparer>(16, 7, ChainSegment.EqualityComparer);

            Descriptor = new DeferredValue <BindingContext, ObjectDescriptor>(this, context =>
            {
                return(ObjectDescriptor.Create(context.Value));
            });
        }
예제 #8
0
        public void Test42Wrong()
        {
            var deferredValue = DeferredValue.Create(() => 352, 420, "Answer to the Ultimate Question of Life, The Universe, and Everything");

            deferredValue.Wait().ThatFluent(x => x.Should().Be(42, "answer is 42"));
        }
예제 #9
0
        public void Test42WithTransformation()
        {
            var deferredValue = DeferredValue.Create(() => "352", "42", "Answer to the Ultimate Question of Life, The Universe, and Everything");

            deferredValue.Wait().Transformed(int.Parse).ThatFluent(x => x.Should().Be(42, "answer is 42"));
        }
예제 #10
0
 public static void Assert <T>(this DeferredValue <T> valueProvider, IResolveConstraint constraint)
 {
     NUnit.Framework.Assert.That(valueProvider.GetValue(), constraint, valueProvider.GetDescription());
 }
예제 #11
0
 public void Test42WithTransformation()
 {
     var deferredValue = DeferredValue.Create(() => "352", "42", "Answer to the Ultimate Question of Life, The Universe, and Everything");
     deferredValue.Wait().Transformed(int.Parse).ThatNunit(Is.EqualTo(42));
 }
예제 #12
0
 public Context(BindingContext context)
 {
     Value       = context.Value;
     _descriptor = context.ObjectDescriptor;
 }
예제 #13
0
 public void Test42FailedByException()
 {
     var deferredValue = DeferredValue.Create(() => 352, () => throw new Exception(":("), "Answer to the Ultimate Question of Life, The Universe, and Everything");
     deferredValue.Wait().ThatNunit(Is.EqualTo(42));
 }
예제 #14
0
 public void Test42Wrong()
 {
     var deferredValue = DeferredValue.Create(() => 352, 420, "Answer to the Ultimate Question of Life, The Universe, and Everything");
     deferredValue.Wait().ThatNunit(Is.EqualTo(42));
 }
예제 #15
0
 public Context(BindingContext context, object value)
 {
     Value       = value;
     _descriptor = context.ObjectDescriptor;
 }
예제 #16
0
        public void Test42FailedByException()
        {
            var deferredValue = DeferredValue.Create(() => 352, () => throw new Exception(":("), "Answer to the Ultimate Question of Life, The Universe, and Everything");

            deferredValue.Wait().ThatFluent(x => x.Should().Be(42, "answer is 42"));
        }
        private static ref DeferredValue <string[]> DescriptorValueFactory(Type type, ref DeferredValue <string[]> deferredValue)
        {
            deferredValue.Factory = () =>
            {
                var properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance)
                                 .Where(o => o.CanRead && o.GetIndexParameters().Length == 0);
                var fields = type.GetFields(BindingFlags.Public | BindingFlags.Instance);
                return(properties.Cast <MemberInfo>().Concat(fields).Select(o => o.Name).ToArray());
            };

            return(ref deferredValue);
        }