@Test public void noAlertWhenTwoForSameNetworkAndEmail() { EmailFraudDetectionBolt bolt = new EmailFraudDetectionBolt(); BasicOutputCollector collector = mock(BasicOutputCollector.class); bolt.execute(tupleMockSimple(), collector); bolt.execute(tupleMockSimple(), collector); verifyZeroInteractions(collector); }
@Test public void raiseAlertWhenTwoForDifferentNetworkAndSameEmail() { EmailFraudDetectionBolt bolt = new EmailFraudDetectionBolt(); BasicOutputCollector collector = mock(BasicOutputCollector.class); bolt.execute(tupleMockSimple(), collector); bolt.execute(tupleMockWithDifferentNetworkAddress(), collector); Object alert = "ALERT: fraud detected for ActionInfo [[email protected], ip=101.101.100.100, actionType=LOGIN, timestamp=1354547689586]"; verify(collector, times(1)).emit((List<Object>) Arrays.asList(alert)); }