public void Input_propery_data_automatically_flows_to_child_operations_when_consumed_in_parent_operation(object output)
        {
            var outputOperation = new FakeOutputOperation <object> {
                OutputValue = output
            };
            var childInputOperation  = new TestPropertyInputOperation();
            var parentInputOperation = new TestPropertyInputOperation(childInputOperation);
            var sut = new FakeOperation(outputOperation, parentInputOperation);

            sut.Execute();

            Assert.Equal(outputOperation.OutputValue, childInputOperation.Input);
        }
        public void Data_flows_between_child_operations_from_property_input_and_output(object data)
        {
            var inputOperation  = new TestPropertyInputOperation();
            var outputOperation = new TestPropertyOutputOperation(inputOperation)
            {
                Output = data
            };
            var sut = new FakeOperation(outputOperation, inputOperation);

            sut.Execute();

            Assert.Equal(data, outputOperation.Output);
            Assert.Equal(data, inputOperation.Input);
        }