public async Task MethodCall_WithLayerStack() { var testList = new List <string>(); var layer1 = new TestLayer_Append("foo", testList); var layer2 = new TestLayer_Append("bar", testList); transportBuilder.SetLayerStackProvider(new LayerStackProvider <Dummy>(layer1, layer2)); await DefaultSetup(new CalculatorService(), 1); const int first = 91; const int second = 23; int addResult = first + second; var calculatorProxy = new CalculatorProxy <SimpleInMemConnection>(connections[0]); var input = new PairedInput { First = first, Second = second }; var request = new Message <PairedInput>(input); IMessage <Output> addResponse = await calculatorProxy.AddAsync(request, System.Threading.CancellationToken.None); Output addOutput = addResponse.Payload.Deserialize(); Assert.AreEqual(addResult, addOutput.Result); Assert.AreEqual(8, testList.Count); Assert.AreEqual(layer1.value, testList[0]); Assert.AreEqual(testList[0] + layer2.value, testList[1]); Assert.AreEqual(testList[1] + layer2.value, testList[2]); Assert.AreEqual(testList[2] + layer1.value, testList[3]); Assert.AreEqual(layer1.value, testList[4]); Assert.AreEqual(testList[4] + layer2.value, testList[5]); Assert.AreEqual(testList[5] + layer2.value, testList[6]); Assert.AreEqual(testList[6] + layer1.value, testList[7]); }
public async Task MethodCall_WithLayerStack() { var testList = new List<string>(); var layer1 = new TestLayer_Append("foo", testList); var layer2 = new TestLayer_Append("bar", testList); transportBuilder.SetLayerStackProvider(new LayerStackProvider<Dummy>(LoggerTests.BlackHole, layer1, layer2)); await DefaultSetup(new CalculatorService(), 1); const int first = 91; const int second = 23; int addResult = first + second; var calculatorProxy = new CalculatorProxy<SimpleInMemConnection>(connections[0]); var input = new PairedInput { First = first, Second = second }; var request = new Message<PairedInput>(input); IMessage<Output> addResponse = await calculatorProxy.AddAsync(request, System.Threading.CancellationToken.None); Output addOutput = addResponse.Payload.Deserialize(); Assert.AreEqual(addResult, addOutput.Result); Assert.AreEqual(8, testList.Count); Assert.AreEqual(layer1.value, testList[0]); Assert.AreEqual(testList[0] + layer2.value, testList[1]); Assert.AreEqual(testList[1] + layer2.value, testList[2]); Assert.AreEqual(testList[2] + layer1.value, testList[3]); Assert.AreEqual(layer1.value, testList[4]); Assert.AreEqual(testList[4] + layer2.value, testList[5]); Assert.AreEqual(testList[5] + layer2.value, testList[6]); Assert.AreEqual(testList[6] + layer1.value, testList[7]); }