internal DerDieDasData(string dataToParse, IArticleFactory articleFactory) { ParamValidator.EnsureParametersAreValid(new NullValidatorWithValue<IArticleFactory>(() => articleFactory, articleFactory)); ParamValidator.EnsureParametersAreValid(new StringValidatorWithValue(() => dataToParse, dataToParse)); var dataParsed = dataToParse.Split(new[]{','}, StringSplitOptions.RemoveEmptyEntries); if (dataParsed.Length != 3) throw new InvalidDataException(string.Format("Invalid data to parse: {0}", dataToParse)); _article = articleFactory.CreateArticle(dataParsed[0]); _verb = dataParsed[1].Trim(); _verbPlural = dataParsed[2].Trim(); }