public void CommunicationMonitor_HearthBeat() { var testDp = new TestDp(DatabaseStorage.CreateEmpty()); var messageProvider = new DefaultMessageProvider(new MessageSenderManager()); var missingEntityHandler = new MissingEntityHandler(); var messagingOptions = Options.Create(new MessagingOptions() { CommunicationMonitorRunningPeriodInSeconds = 1 }); var securitySystem = new SecuritySystem(testDp, messageProvider, missingEntityHandler, new SecurityConfiguration(), messagingOptions.Value); var dataHandler = new DataHandler(testDp, messagingOptions); var communicationMonitor = new CommunicationMonitor(dataHandler, messagingOptions); var activityHistory = new SecurityActivityHistoryController(); var securityActivityQueue = new SecurityActivityQueue(securitySystem, communicationMonitor, dataHandler, activityHistory); // ACTION var communicationMonitorAcc = new ObjectAccessor(communicationMonitor); communicationMonitorAcc.Invoke("Timer_Elapsed"); // ASSERT Assert.IsTrue(testDp.IsCleanupSecurityActivitiesCalled); Assert.IsTrue(testDp.IsGetLastSecurityActivityIdCalled); }
//UNDONE: get configuration through IOptions and register SecuritySystem as a service. public SecuritySystem(ISecurityDataProvider dataProvider, IMessageProvider messageProvider, IMissingEntityHandler missingEntityHandler, SecurityConfiguration configuration, MessagingOptions messagingOptions) { Configuration = configuration; MessagingOptions = messagingOptions; dataProvider.ActivitySerializer = new ActivitySerializer(this); DataHandler = new DataHandler(dataProvider, Options.Create(messagingOptions)); ActivityHistory = new SecurityActivityHistoryController(); DataProvider = dataProvider; MessageProvider = messageProvider; MessageSenderManager = messageProvider.MessageSenderManager; MissingEntityHandler = missingEntityHandler; SystemUser = new SecuritySystemUser(configuration.SystemUserId); }