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); }
protected void CheckCanAccessMember(IEmployer employer, Member member) { _employerMemberViewsCommand.CheckCanAccessMember(_app, employer, _employerMemberViewsQuery.GetProfessionalView(employer, member), MemberAccessReason.Unlock); }