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(_ => { })))()); }
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); } }
private PartialAction <object> BuildNewReceiveHandler(MatchBuilder matchBuilder) { return(matchBuilder.Build()); }