public static CatNamesByOwnerGender SortCatNames(CatNamesByOwnerGender catNamesWithOwnerGender)
 {
     foreach (string gender in catNamesWithOwnerGender.Keys)
     {
         catNamesWithOwnerGender[gender].Sort();
     }
     return(catNamesWithOwnerGender);
 }
Exemple #2
0
        public void ShouldFormatWhenNullObjectIsPassed()
        {
            string expected = "<html><body>data missing...</body></html>";
            CatNamesByOwnerGender viewModel = new CatNamesByOwnerGender();

            viewModel = null;
            string actual = HTMLProcessor.FormatHTML(viewModel);

            Assert.AreEqual(expected, actual);
        }
Exemple #3
0
        private string ProcessResults(List <PetOwner> owners)
        {
            owners = PetProcessor.RemoveOwnersWithoutPets(owners);
            owners = PetProcessor.GetOwnersByPetType(owners, Pets.cat);

            CatNamesByOwnerGender catNamesViewModel = CatProcessor.LoadCatNamesByOwnerGender(owners);

            catNamesViewModel = CatProcessor.SortCatNames(catNamesViewModel);

            return(HTMLProcessor.FormatHTML(catNamesViewModel));
        }
Exemple #4
0
        public void ShouldFormatWhenNonNullObjectIsPassed()
        {
            string expected = "<html><body><h5>a</h5><ul><li>apple</li><li>apricots</li></ul></body></html>";
            CatNamesByOwnerGender viewModel = new CatNamesByOwnerGender();

            viewModel.Add("a", new List <string> {
                "apple", "apricots"
            });
            string actual = HTMLProcessor.FormatHTML(viewModel);

            Assert.AreEqual(expected, actual);
        }
        public void ShouldReturnCatNamesOnlyWhenMixTypeProvided()
        {
            List <PetOwner> actualList = new List <PetOwner> {
                new PetOwner {
                    Gender = "male",
                    Pets   = new List <Pet> {
                        new Pet {
                            Name = "Jacky", Type = "Dog"
                        }
                    }
                },
                new PetOwner {
                    Gender = "female",
                    Pets   = new List <Pet> {
                        new Pet {
                            Name = "Rock", Type = "Dog"
                        },
                        new Pet {
                            Name = "Ket", Type = "Cat"
                        }
                    }
                },
                new PetOwner {
                    Gender = "unspecified",
                    Pets   = new List <Pet> {
                        new Pet {
                            Name = "Raty", Type = "Cat"
                        },
                        new Pet {
                            Name = "Stone", Type = "Horse"
                        }
                    }
                }
            };

            CatNamesByOwnerGender expected = new CatNamesByOwnerGender();

            expected.Add("female", new List <string> {
                "Ket"
            });
            expected.Add("unspecified", new List <string> {
                "Raty"
            });

            CatNamesByOwnerGender actual = CatProcessor.LoadCatNamesByOwnerGender(actualList);

            Assert.AreEqual(expected["female"].Count, actual["female"].Count);
            Assert.AreEqual(expected["unspecified"].Count, actual["unspecified"].Count);
            // TODO: Add object comparison
        }
        public static CatNamesByOwnerGender LoadCatNamesByOwnerGender(List <PetOwner> catOwners)
        {
            CatNamesByOwnerGender catNamesWithOwnerGender = new CatNamesByOwnerGender();

            foreach (PetOwner catOwner in catOwners)
            {
                if (catNamesWithOwnerGender.ContainsKey(catOwner.Gender))
                {
                    catNamesWithOwnerGender[catOwner.Gender].AddRange(catOwner.Pets.Where(pet => pet.Type.ToLowerInvariant() == Pets.cat).Select(pet => pet.Name).ToList());
                }
                else
                {
                    catNamesWithOwnerGender.Add(catOwner.Gender, catOwner.Pets.Where(pet => pet.Type.ToLowerInvariant() == Pets.cat).Select(pet => pet.Name).ToList());
                }
            }
            return(catNamesWithOwnerGender);
        }
Exemple #7
0
        public static string FormatHTML(CatNamesByOwnerGender sortedCatNamesByOwnerGender)
        {
            string resultantHtml = "<html><body>data missing...</body></html>";

            if (sortedCatNamesByOwnerGender != null)
            {
                StringBuilder htmlBody = new StringBuilder();
                foreach (string gender in sortedCatNamesByOwnerGender.Keys)
                {
                    htmlBody.Append($"<h5>{gender}</h5>");
                    htmlBody.Append("<ul>");
                    sortedCatNamesByOwnerGender[gender].ForEach(catName => htmlBody.Append($"<li>{catName}</li>"));
                    htmlBody.Append("</ul>");
                }
                resultantHtml = $"<html><body>{htmlBody}</body></html>";
            }
            return(resultantHtml);
        }
        public void ShouldSortCatNamesInTheObject()
        {
            CatNamesByOwnerGender expected = new CatNamesByOwnerGender();

            expected.Add("fruits", new List <string> {
                "apple", "banana", "kiwi"
            });

            CatNamesByOwnerGender viewModel = new CatNamesByOwnerGender();

            viewModel.Add("fruits", new List <string> {
                "banana", "kiwi", "apple"
            });

            CatNamesByOwnerGender actual = CatProcessor.SortCatNames(viewModel);

            CollectionAssert.AreEqual(expected["fruits"], actual["fruits"]);
        }