public void multi_route_test() { // arrange var mockDefinition = new Mock<IPipeDefinition>(); mockDefinition.SetupGet(e => e.Operations).Returns(new[] { new RoutedOper( (injector, input) => (int) input*100, (injector, input) => (int) input == 4), new RoutedOper( (injector, input) => (int) input*1000, (injector, input) => (int) input == 3), new Oper((injector, input) => (int) input*10) }); mockDefinition.SetupGet(e => e.Closed).Returns(true); var compiler = new RouterCompiler(mockDefinition.Object); // act var fn = compiler.Compile(); // assert Assert.That(GetRoutedValue(fn, 4), Is.EqualTo(400)); Assert.That(GetRoutedValue(fn, 2), Is.EqualTo(20)); Assert.That(GetRoutedValue(fn, 3), Is.EqualTo(3000)); }
public void verify_throws_on_unclosed_composition() { // arrange var mockDefinition = new Mock<IPipeDefinition>(); mockDefinition.SetupGet(e => e.Closed).Returns(false); var compiler = new RouterCompiler(mockDefinition.Object); // act & assert Assert.Throws<MismatchedClosingTypeDeclarationException>( () => compiler.Compile()); }