Implements a Tokenizer, that makes it possible to Tokenize a CSV line using fixed length columns.
Inheritance: ITokenizer
        public void Tokenize_With_Preprocess_ToUppercase_Postprocess_Trim_Test()
        {
            // Defines the Columns of a File:
            ColumnDefinition[] columns = new[] {
                new FixedLengthTokenizer.ColumnDefinition(0, 10),
                new FixedLengthTokenizer.ColumnDefinition(10, 20),
            };

            // The Postprocessing Function on the Column value:
            Preprocessor preprocessor = new Preprocessor(s => s.ToUpperInvariant());
            Postprocessor postprocessor = new Postprocessor(s => s.Trim());

            // The Original Tokenizer, which tokenizes the line:
            ITokenizer decoratedTokenizer = new FixedLengthTokenizer(columns);

            ITokenizer tokenizer = new TokenizerProcessingDecorator(decoratedTokenizer, preprocessor, postprocessor);

            string input = new StringBuilder()
                .AppendLine(" Philipp   Wagner   ")
                .ToString();

            string[] result = tokenizer.Tokenize(input);

            Assert.AreEqual("PHILIPP", result[0]);
            Assert.AreEqual("WAGNER", result[1]);
        }
        public void Tokenize_Line_Test()
        {
            var columns = new[] {
                new FixedLengthTokenizer.ColumnDefinition(0, 10),
                new FixedLengthTokenizer.ColumnDefinition(10, 20),
            };

            var tokenizer = new FixedLengthTokenizer(columns);

            var input = new StringBuilder()
                .AppendLine("Philipp   Wagner    ")
                .ToString();

            var result = tokenizer.Tokenize(input);

            Assert.AreEqual("Philipp   ", result[0]);
            Assert.AreEqual("Wagner    ", result[1]);
        }