public void Given_builder_has_built_When_adding_handler_Then_it_fails()
        {
            var builder = new MatchBuilder(new DummyCompiler <object>());

            builder.Match <object>(_ => { });
            builder.Build();

            //As we have built, no more handlers should be accepted
            Assert.Throws <InvalidOperationException>(() => ((Action)(() => builder.Match <string>(_ => { })))());
            Assert.Throws <InvalidOperationException>(() => ((Action)(() => builder.MatchAny(_ => { })))());
        }
Example #2
0
        public IMatch Import(string input)
        {
            TextReader      r = new StringReader(input);
            TextFieldParser p = new TextFieldParser(r);

            p.Delimiters = new[] { "," };
            p.HasFieldsEnclosedInQuotes = true;
            string[] fields = p.ReadFields();
            if (fields == null || fields.Length != _propertyMap.Length)
            {
                throw new ArgumentException(string.Format("CSV line contains incorrect number of expected fields: Expected {0} but contains {1}", _propertyMap.Length, fields != null ? fields.Length : 0));
            }
            IMatchBuilder builder = new MatchBuilder().WithSeason(_season).WithMode(_mode).WithPerspective(_perspective);

            for (int i = 0; i < fields.Length; i++)
            {
                builder = _propertyMap[i](builder, fields[i]);
            }
            return(builder.Build());
        }
        private void TestSignature <T>(Action <MatchBuilder <T> > build1, Action <MatchBuilder <T> > build2, bool signaturesShouldMatch)
        {
            var compiler1 = new DummyCompiler <T>();
            var compiler2 = new DummyCompiler <T>();
            var builder1  = new MatchBuilder <T>(compiler1);
            var builder2  = new MatchBuilder <T>(compiler2);

            build1(builder1);
            build2(builder2);
            builder1.Build();
            builder2.Build();
            var signature1 = compiler1.Signature;
            var signature2 = compiler2.Signature;

            if (signaturesShouldMatch)
            {
                Assert.Equal(signature1, signature2);
            }
            else
            {
                Assert.NotEqual(signature1, signature2);
            }
        }
Example #4
0
 private PartialAction <object> BuildNewReceiveHandler(MatchBuilder matchBuilder)
 {
     return(matchBuilder.Build());
 }