public void FunctionKeyValueMapper()
        {
            Func <string, int, int> mapper = (k, v) => k.Length;
            var wrap = new WrappedKeyValueMapper <string, int, int>(mapper);

            Assert.AreEqual(4, wrap.Apply("test", 12));
        }
        private ProcessorGraphNode <K, V> InternalSelectKey <KR>(IKeyValueMapper <K, V, KR> mapper, string named = null)
        {
            var name = new Named(named).OrElseGenerateWithPrefix(this.builder, KEY_SELECT_NAME);

            WrappedKeyValueMapper <K, V, KeyValuePair <KR, V> > internalMapper =
                new WrappedKeyValueMapper <K, V, KeyValuePair <KR, V> >(
                    (key, value) => new KeyValuePair <KR, V>(mapper.Apply(key, value), value));

            KStreamMap <K, V, KR, V>   kStreamMap          = new KStreamMap <K, V, KR, V>(internalMapper);
            ProcessorParameters <K, V> processorParameters = new ProcessorParameters <K, V>(kStreamMap, name);

            return(new ProcessorGraphNode <K, V>(name, processorParameters));
        }