public async Task GetPeopleByNames_Should_Call_IPersonRepository_GetPeopleByNames()
        {
            PersonServiceMock mock = PersonServiceMock.Create();

            IList <string> peopleList = new List <string>()
            {
                "Uğur Atar", "Onur Aykaç", "Deniz Özgen"
            };

            mock.PersonRepository
            .Setup(repository => repository.GetPeopleByNames(It.Is <IList <string> >(list => list.Any(p => peopleList.Contains(p)))))
            .ReturnsAsync(() => new List <Person>()
            {
                new Person()
                {
                    Id = 1, Name = "Uğur Atar"
                },
                new Person()
                {
                    Id = 2, Name = "Onur Aykaç"
                },
                new Person()
                {
                    Id = 3, Name = "Deniz Özgen"
                }
            });

            IEnumerable <Person> people = await mock.GetPeopleByNames(peopleList);

            mock.PersonRepository.Verify(repository => repository.GetPeopleByNames(It.IsAny <IList <string> >()), Times.Once);
            Assert.NotNull(people);
            Assert.Equal(people.Count(), peopleList.Count);
        }
        public async Task GetPeopleByNames_Should_Throw_ArgumentNullException_If_Name_Is_Null()
        {
            PersonServiceMock mock = PersonServiceMock.Create();

            IList <string> names = null;

            await Assert.ThrowsAsync <ArgumentNullException>(() => mock.GetPeopleByNames(names));

            mock.PersonRepository.Verify(repository => repository.GetPeopleByNames(It.IsAny <IList <string> >()), Times.Never);
        }