示例#1
0
        public void TestDailyLimit()
        {
            var employer = CreateEmployer();

            // Access up to the daily limit.

            Member           member;
            Tuple <int, int> counts;

            for (var index = 0; index < DailyLimit; ++index)
            {
                member = CreateMember(index);

                // Check the counts.

                counts = _repository.GetMemberAccessCounts(employer.Id, member.Id, new[] { GetAccessReason() });
                Assert.AreEqual(index, counts.Item1);
                Assert.AreEqual(index, counts.Item2);

                _employerMemberViewsCommand.CheckCanAccessMember(_app, employer, _employerMemberViewsQuery.GetProfessionalView(employer, member), GetAccessReason());
                _employerMemberViewsCommand.AccessMember(_app, employer, _employerMemberViewsQuery.GetProfessionalView(employer, member), GetAccessReason());
            }

            // Go one more.

            member = CreateMember(DailyLimit);

            counts = _repository.GetMemberAccessCounts(employer.Id, member.Id, new[] { GetAccessReason() });
            Assert.AreEqual(DailyLimit, counts.Item1);
            Assert.AreEqual(DailyLimit, counts.Item2);

            try
            {
                _employerMemberViewsCommand.CheckCanAccessMember(_app, employer, _employerMemberViewsQuery.GetProfessionalView(employer, member), GetAccessReason());
                Assert.Fail();
            }
            catch (TooManyAccessesException)
            {
            }

            try
            {
                _employerMemberViewsCommand.AccessMember(_app, employer, _employerMemberViewsQuery.GetProfessionalView(employer, member), GetAccessReason());
                Assert.Fail();
            }
            catch (TooManyAccessesException)
            {
            }
        }
        public void TestHasBeenAccessed()
        {
            var employer0 = CreateEmployer(0);

            _allocationsCommand.CreateAllocation(new Allocation {
                CreditId = _creditsQuery.GetCredit <ContactCredit>().Id, OwnerId = employer0.Id
            });
            var employer1 = CreateEmployer(1, employer0.Organisation);

            var member = CreateMember(0);
            var view   = _employerMemberViewsQuery.GetProfessionalView(employer0, member);

            _employerMemberViewsCommand.CheckCanAccessMember(_app, employer0, view, MemberAccessReason.MessageSent);
            _employerMemberViewsCommand.AccessMember(_app, employer0, view, MemberAccessReason.MessageSent);

            TestFlag(employer0, member.Id, true, v => v.HasBeenAccessed);
            TestFlag(employer1, member.Id, false, v => v.HasBeenAccessed);
        }
 void IEmployerMemberContactsCommand.CheckCanContactMember(ChannelApp app, IEmployer employer, ProfessionalView view)
 {
     _employerMemberViewsCommand.CheckCanAccessMember(app, employer, view, MemberAccessReason.MessageSent);
 }
示例#4
0
 protected void CheckCanAccessMember(IEmployer employer, Member member)
 {
     _employerMemberViewsCommand.CheckCanAccessMember(_app, employer, _employerMemberViewsQuery.GetProfessionalView(employer, member), MemberAccessReason.Unlock);
 }