private void InitializeEventLogAndGuards() { var eventSet = new HashSet <WorkEventArgs>() { new WorkEventArgs(5, new DateTime(2019, 5, 13), this.address), new WorkEventArgs(5, new DateTime(2019, 5, 14), this.address), new WorkEventArgs(5, new DateTime(2019, 5, 15), this.address), new WorkEventArgs(5, new DateTime(2019, 5, 16), this.address), }; this.workTracker = new WorkTracker.WorkTracker(this.addressFactory.Create(), this.contractRegistry, this.permissionManager.Address); this.contractRegistry.RegisterContract(this.workTracker); this.ConfigurePermissions(); this.eventLog = new WorkEventLog(30, eventSet, this.workTracker); var addGuard = new AddTrackerGuardAction(string.Empty, this.workTracker.Address, new WeeklyTrackerGuard(this.eventLog)); this.permissionManager.ExecuteAction(addGuard); addGuard = new AddTrackerGuardAction(string.Empty, this.workTracker.Address, new MonthlyTrackerGuard(this.eventLog)); this.permissionManager.ExecuteAction(addGuard); addGuard = new AddTrackerGuardAction(string.Empty, this.workTracker.Address, new FutureDateTrackerGuard()); this.permissionManager.ExecuteAction(addGuard); }
public void AddTrackerGuard() { var guard = new FutureDateTrackerGuard(); var addGuard = new AddTrackerGuardAction(string.Empty, this.workTracker.Address, guard); this.permissionManager.ExecuteAction(addGuard); Assert.Contains(guard, this.workTracker.TrackGuards); }
public void AddTrackerGuard_WhenDuplicate_RemainsSingle() { this.InitializeEventLogAndGuards(); var guard = new FutureDateTrackerGuard(); var addGuard = new AddTrackerGuardAction(string.Empty, this.workTracker.Address, guard); this.permissionManager.ExecuteAction(addGuard); Assert.Equal(3, this.workTracker.TrackGuards.Count); }
protected virtual bool HandleAddTrackerGuard(AddTrackerGuardAction action) { return(!this.TrackGuards.Contains(action.Guard) && this.TrackGuards.Add(action.Guard)); }