public void WhenAddingEmptyStringThenAddStringToDictionary()
 {
     var dictionary = new WordCountingDictionary();
     dictionary.Add(string.Empty);                        
     
     Assert.That(dictionary.Count, Is.EqualTo(1));
     Assert.That(dictionary[string.Empty], Is.EqualTo(1));
 }
 public void WhenDictionaryContainsKeyAndQueryingByLowerCaseKeyThenThrowException()
 {
     var dictionary = new WordCountingDictionary();
     dictionary.Add("Word1");            
     Assert.Throws<KeyNotFoundException>(() =>
     {
         var count = dictionary["word1"];
     });            
 }
        public void WhenDictionaryContainsKeyAndAddingLowercaseThenAddNewKey()
        {
            var dictionary = new WordCountingDictionary();
            dictionary.Add("Word1");
            var wordCount = dictionary["Word1"];
            dictionary.Add("word1");
            var wordCountAfterAddingLowercase = dictionary["Word1"];

            Assert.That(dictionary.Count, Is.EqualTo(2));
            Assert.That(wordCount, Is.EqualTo(wordCountAfterAddingLowercase));
        }
        public void WhenDictionaryContainsKeyThenIncrementKeyCount()
        {
            var dictionary = new WordCountingDictionary();
            dictionary.Add("Word1");
            var wordCount = dictionary["Word1"];
            dictionary.Add("Word1");
            var incrementedWordCount = dictionary["Word1"];

            Assert.That(dictionary.Count, Is.EqualTo(1));
            Assert.That(wordCount + 1, Is.EqualTo(incrementedWordCount));
        }
        public void WhenDictionaryDoesNotContainKeyThenAddKeyToDictionary()
        {
            var dictionary = new WordCountingDictionary();
            dictionary.Add("Word1");
            dictionary.Add("Word1");
            var keyCount = dictionary.Count();
            dictionary.Add("Word2");
            var newWordKeyCount = dictionary.Count();

            Assert.That(dictionary.Count, Is.EqualTo(2));
            Assert.That(keyCount + 1, Is.EqualTo(newWordKeyCount));
        }
        public void PersistData(WordCountingDictionary inputData)
        {            
            if (inputData == null)
            {
                throw new ArgumentNullException("inputData");
            }

            Console.WriteLine(ConsoleOutputDataPersistorConsts.ReportHeader);

            var sb = new StringBuilder();
            foreach (var pair in inputData)
            {
                sb.AppendLine(string.Format(ConsoleOutputDataPersistorConsts.LineDisplayPattern, pair.Key, pair.Value));
            }                        

            Console.Write(sb.ToString());
        }