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]);
        }
示例#2
0
        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]);
        }