### Question:
BehaviourManagerImpl implements BehaviourManager { @Override public void normalBehaviourDetected(Class<? extends Event> eventClass, Track track) { if (getEventRaised(eventClass, track)) { int score = getEventScore(eventClass, track); if (score < LOWER_EVENT_SCORE_THRESHOLD) { score++; if (score == LOWER_EVENT_SCORE_THRESHOLD) { fireLowerEvent(eventClass, track); removeEventRaised(eventClass, track); removeEventScore(eventClass, track); setEventCertaintyOnCurrentPositionReport(eventClass, track); } else { setEventScore(eventClass, track, score); setEventRaised(eventClass, track, true); setEventCertaintyOnCurrentPositionReport(eventClass, track); LOG.debug("fireMaintainEvent (normal) - " + track.getMmsi() + " - " + eventClass); fireMaintainEvent(eventClass, track); } } } else { setEventScore(eventClass, track, 0); setEventCertaintyOnCurrentPositionReport(eventClass, track); } } @Inject  BehaviourManagerImpl(EventEmittingTracker trackingService); @Override void abnormalBehaviourDetected(Class<? extends Event> eventClass, Track track, Track... otherTracks); @Override void normalBehaviourDetected(Class<? extends Event> eventClass, Track track); @Override void trackStaleDetected(Class<? extends Event> eventClass, Track track); @Override void registerSubscriber(Object subscriber); @Override EventCertainty getEventCertaintyAtCurrentPosition(Class<? extends Event> eventClass, Track track); @Subscribe @SuppressWarnings("unused") void listen(DeadEvent event); static String getEventRaisedKey(Class<? extends Event> eventClass); static String getScoreKey(Class<? extends Event> eventClass); static String getEventCertaintyKey(Class<? extends Event> eventClass);  }### Answer:
@Test public void noCogEventRaisedForPurelyNormalBehaviour() { for (int i=0; i<1000; i++) { behaviourManager.normalBehaviourDetected(CourseOverGroundEvent.class, track); assertEquals(0, testSubscriber.numAbnormalEventRaise); assertEquals(0, testSubscriber.numAbnormalEventMaintain); assertEquals(0, testSubscriber.numAbnormalEventLower); } }