public void GetMemberByNamesReturnsNullIfNotFound()
        {
            var helper = Substitute.For<IMemberHelper>();

            var memberDao = new MemberDao(helper);

            var firstName = "first";
            var lastName = "last";

            memberDao.MemberList = new List<IMember>
            {
                Substitute.For<IMember>(),
                Substitute.For<IMember>(),
            };

            var list = memberDao.FindMembersByNames(firstName, lastName);

            Assert.NotNull(list); // Shouldn't be null, should be an empty collection.
            Assert.Empty(list);
        }
        public void GetMemberByNamesReturnsEmptyCollectionIfNotFound()
        {
            IMemberHelper helper = new MemberHelper();
            IMemberDAO dao = new MemberDao(helper);

            var firstName = "first";
            var lastName = "last";
            var contactPhone = "contactPhone";
            var emailAddress = "emailAddress";

            var member = dao.AddMember(firstName, lastName, contactPhone, emailAddress);

            for (int i = 0; i < 10; i++)
            {
                dao.AddMember("Test", "Test", "test phone", "test email");
            }

            var result = dao.FindMembersByNames("Jim", "Tulip");

            Assert.Empty(result);
        }
        public void CanGetMemberByNames()
        {
            var helper = Substitute.For<IMemberHelper>();

            var memberDao = new MemberDao(helper);

            var firstName = "first";
            var lastName = "last";
            var contactPhone = "phone";
            var emailAddress = "email address";

            memberDao.MemberList = new List<IMember>
            {
                Substitute.For<IMember>(),
                Substitute.For<Member>(firstName, lastName, contactPhone, emailAddress, 2),
                Substitute.For<IMember>(),
                Substitute.For<Member>(firstName, "Foo", contactPhone, emailAddress, 4),
            };

            var member = memberDao.FindMembersByNames(firstName, lastName).Single();

            Assert.NotNull(member);

            Assert.Equal(2, member.ID);
            Assert.Equal(firstName, member.FirstName);
            Assert.Equal(lastName, member.LastName);
            Assert.Equal(contactPhone, member.ContactPhone);
            Assert.Equal(emailAddress, member.EmailAddress);
        }
        public void CanGetMemberByNames()
        {
            IMemberHelper helper = new MemberHelper();
            IMemberDAO dao = new MemberDao(helper);

            var firstName = "first";
            var lastName = "last";
            var contactPhone = "contactPhone";
            var emailAddress = "emailAddress";

            var member = dao.AddMember(firstName, lastName, contactPhone, emailAddress);

            for (int i = 0; i < 10; i++)
            {
                dao.AddMember("Test", "Test", "test phone", "test email");
            }

            var result = dao.FindMembersByNames(member.FirstName, member.LastName);

            var singleResult = result.Single(); // Test there should only be one result and get it.

            Assert.Equal(member, singleResult);
        }