public void GenerateFull_Male_FirstNameIsMale()
        {
            // arrange
            var gen = new NameGenerator();

            // act
            var names = gen.GenerateFull(5, Gender.Male).ToList();

            // assert
            Assert.All(names, s =>
            {
                var split = s.Split(" ");
                Assert.Contains(split[0], NameSource.GivenMale);
            });
        }
        public void GenerateFull_Both_ContainsBothMaleAndFemaleNames()
        {
            // arrange
            var gen = new NameGenerator();

            // act
            var names = gen.GenerateFull(50, Gender.Both).ToList();

            // assert
            var firstnames  = names.Select(n => n.Split(" ")[0]);
            var maleNames   = firstnames.Where(fn => NameSource.GivenMale.SingleOrDefault(n => n.Equals(fn)) != null);
            var femaleNames = firstnames.Where(fn => NameSource.GivenFemale.SingleOrDefault(n => n.Equals(fn)) != null);

            Assert.True(maleNames.Any() && femaleNames.Any());
        }
        public void GenerateFull_GeneratesFirstAndLast()
        {
            // arrange
            var gen = new NameGenerator();

            // act
            var names = gen.GenerateFull(5, Gender.Both).ToList();

            // assert
            Assert.All(names, s =>
            {
                var split = s.Split(" ");
                Assert.Equal(2, split.Length);
                Assert.Contains(split[1], NameSource.Surnames);
            });
        }